ECON 214: Intermediate Macro (2024/25, T2) Assignment 4 due on March 19th Intertemporal Consumption Choice Consider the problem of Max who earns income and consumes during the two periods of his life. In the first period he earns an income of , consumes and pays taxes (superscript. y for “young”), and in the second period he earns , consumes and pays taxes (o for “old”). He can borrow and save as much as he wants at an interest rate r as long as he does not leave any wealth or debt after period two. Max chooses consumption and saving to maximize his utility where ρ is the discount rate. 1. Write down Max’s intertemporal budget constraint. 2. Solve the intertemporal optimization problem and show that (Hint: follow the strategy we used in class to show the relationship between and . Then use this in the intertemporal budget constraint find expressions for and that depend on exogenous variables only.) Now assume that income income is =100 in the first period and is =143 in the second period. Taxes are =10 and =11. The interest rate is equal to the discount rate, r=ρ=0.1. 3. Find Max’s optimal consumption levels for the two periods. How much is he borrowing or saving in the first period? Let’s check how optimal consumption behavior. depends on some of the exogenous variables. In each case, give a short explanation of what happens (one sentence or so). 4. Temporary vs. permanent income shocks: How does consumption in both periods change in response to i. a temporary increase of income by 21 in the first period only, ii. a temporary expected increase of income by 21 in the second period only, and iii. a permanent increase of income by 21 in both periods? 5. The interest rate: How does consumption in both periods change in response to an increase in the interest rate from 0.1 to 0.2? Is it optimal to save more or less in the first period? 6. Taxes: How does consumption in both periods change if taxes are reduced to zero in the first period, but doubled to 22 in the second period? Is it optimal to save more or less in the first period? Does the Ricardian equivalence hold?
COURSEWORK (Individual) Module Title :Trends in Management Module Code :SMO008 Programme:Human Resource Management Business Administration International Business with Language Instructions to students: 1. This coursework (report) comprises 40% of final module mark. 2. This coursework contains three cases. Please do analysis of each question respectively. 3. The report must be written in English. 4. The whole document must be saved in MS Word. The first page of your document must be a completed standard cover sheet (available on the programme LMO page). The report must use 1.5 line spacing and Times New Roman font, and a font size of 12 points. 5. Please try your best to provide constructive and critical analysis towards each case. Please do not plagiarize and failure to do so will be deemed academic misconduct and will be dealt with accordingly. 6. The deadline of individual written coursework (report) submission is 17:00 Friday on 16(th) May, 2025, Beijing Time. 5% of the total marks available for the assessment shall be deducted from the assessment mark for each working day after the submission date, up to a maximum of five working days. Work received more than five working days after the submission deadline will receive a mark of zero. Case 1: Macro-level management (33marks) (200-300 words) TikTok is a globally popular social media platform. that allows users to create, share, and discover short-form. video content. Launched in 2016 by the Chinese company ByteDance, TikTok has quickly become one of the most downloaded apps worldwide, particularly among younger audiences. Its success is driven by its advanced algorithm, which personalizes content recommendations, and its ability to foster viral trends and challenges. Despite its rapid growth, TikTok faces intense competition from other social media platforms and regulatory challenges in various markets. Questions: (1) Please investigate and summarise TikTok's most recent strategies, ensuring that all information sources are properly cited. (10 marks) (2) Evaluate TikTok's strategy using Porter’s Five Forces Model and SWOT Analysis. (23 marks) Case 2: Mid-level management (33marks) (200-300 words) General Motors (GM) is considered to be a notable example of a company currently going through a significant stage of organisational change. Facing various sources of pressure, GM undergoes a major transformation from an automaker that designs and produces traditional internal combustion engine vehicles (ICE) to one that makes electric ones their priority. GM has committed to becoming carbon-neutral by 2040 and plans to phase out ICE vehicles by 2035. The company shifts its focus by heavily investing in its electric vehicles (EV) development, with a goal of launching 30 new EV models globally by 2025. To achieve that goal, GM is now emphasizing fostering an innovative culture and encouraging mental agility to be able to compete in the rapidly evolving automotive industry. Employees are provided with numerous opportunities to be trained and upskilled to work on EV technologies, software development, and battery systems. New manufacturing facilities are being built and new strategic partnerships are being negotiated and arranged to elevate the company's competitiveness. The workforce is also being reshaped to make sure of the success of these updated organisational objectives. GM's decision highlights how organisations must adapt to both external and internal pressure to sustain in a rapidly changing industry. The survival of GM will depend on the collective ability of its leader and workforce to execute this change effectively. Questions 1) Organizational change is driven by multiple factors, please list and elaborate on the potential forces that are motivating GM's major organisational change. (18 marks) 2) In the change process, what are some potential barriers that can hinder GM's effective change? (15 marks) Case 3: Micro-level management (34marks) (200-300 words) GreenTech Innovations, an AI robotics firm with 850 employees from 40 nationalities, faces significant challenges in managing its diverse workforce. While the workforce's diverse nature enhances organizational innovation, it has simultaneously led to persistent cross-cultural conflicts that severely undermine team collaboration. Many questions existed in this company. Despite high diversity metrics, inappropriate leadership approaches have caused a 25% delay in a flagship AI project. Employee satisfaction has plummeted from 88% to 65% over two years, exacerbated by an incentive system prioritizing individual coding speed over cross-cultural cooperation, leaving remote workers (40% of staff) feeling undervalued. Employees report experiencing heightened daily job demands without corresponding motivational strategies. Recently, turnover rates have risen sharply, particularly in multicultural teams, necessitating urgent action to align diversity initiatives with productivity goals. Questions: (1) As GreenTech's HR Director, identify the most critical issue demanding resolution in this case and justify your reason. (14 marks) (2) Propose an evidence-based motivation plan addressing the prioritized issue. (20 marks) Assessment Criteria: Coursework - Written Report tandingand Application70%+Excellent, outstandingperformanceAn excellent pieceofwo . es raised bytherequirementsdemonstrates robustjudgment inreachingconclusionsshows anexcellent level of analysis,evaluation andinsightis very wellstructured toa high-qualitywrittenstandardis very well prese ich:demonstrates very good knowledge, understanding andapplication ofthe issuesraised by the requirementsdemonstrates very goodjudgment inreachingconclusionsshows a very goodlevelofanalysis,evaluationandinsightis wellstructured and achievesagoodwrittenstandardis well presented to ch:demonstrates good knowledge, understandin raised bytherequirementsdemonstrates goodjudgment inreachingconclusionsshows a fairlevelofanalysis,evaluationandinsightis logically structuredandachievesareasonablewritten standardis reasonably well present nceAsatisfactory piece ofwork which:demonstrates an acceptableknowledge,understandingand application oftheissuesraised by therequirementsdemonstrates adequatejudgment inreachingconclusionsis mainly descriptive withlittleanalysis,evaluation andinsightpartially lackstructure and has weaknessesinthewritten communicationhas presentationweaknesses
Homework 7 – Quantitative Reasoning II (30pts) Import the following data sets in R: MeasuresofAmerica_QR_II MeasuresofAmerica_QR_IIand CEREALS CEREALS Below you'll see various questions asking you use various statistical tests. For each questions: Clearly state the null and alternative hypothesis. Explain your answer using the output of your test and relevant statistical concepts and reasoning. Submit both the R input and output with each of your answers Add visuals for Bonus points 1/ Consider the CEREALS data set and answer the following questions (10pts) a/ Does the average fat content of cereals deviate from 1.0g significantly? b/ Does the fat content of Hot and Cold Cereals differ significantly? c/ Is there a significant difference between Manufactures in fat content? Also determine the the mean fat content of each manufacturer. (BONUS: do the same for Carbohydrate content +5pts) BONUS: Add informative visualizations of the data made in Tableau (+5pts) 2/ Consider the MeasuresofAmerica Data (10pts) a/ Does the proportion of states that voted democratic in the 2016 presidential election significantly differ from your expectation? First explain what proportion you would reasonable expect and then test if the observed proportion significantly different. b/ Is there a dependence between legality of Cannabis and level of minimum federal wage in the United States (Cannabis_Legal, Min_Wage_Fed ) BONUS: Is there a significant difference between regions in the proportion of states within the region where cannabis is illegal? What if we only look at NorthEast vs South? (+5pts) BONUS: add informative visualizations for each of these made in Tableau (+5pts) 3/ Consider the MeasuresofAmerica Data and answer the following questions: (10pts) a/Make a linear regression model between the following two variables (X.Smoking, X.BingeDrink). Determine the correlation value, and make a scatter plot with the trendline in TABLEAU. Is there a strong correlation between the two variables? What about the fit of the data to the linear model? b/ Make a Multiple Linear regression model that predicts level of Childhood Poverty (X.CHLDRNPVRTY based on 3 or more other quantitative variables of your own choice. Which factors contributes positively and which negatively? Do you think there is strong correlations? Which factors seem to contribute most?
Department of Digital Humanities IASC 1F02: Being Human in a Digital World Online Course Spring Session 2025 Course Description This course is designed to engage with students in an investigation of how emerging digital technologies shape human identities, relationships and lifestyles. This course attempts to appeal to students from various backgrounds by discussing a wide variety of topics. These topics include, but are not limited to, citizenship, education, labour, entertainment, globalization, health, privacy and security. This course will conclude with a discussion of how future technologies will potentially affect society and conceptions of humanness. Our course discussions address topics and themes that are guided by the following questions: • What does it mean to be human? What does the human experience involve? • What does the Digital World encompass? How pervasive is the digital world in our lives? • What happens when Humanity and Digital Worlds intersect and overlap? • How do emerging digital technologies shape human identities, relationships, and lifestyles - for better or worse? Course Readings All readings are available within Brightspace. Evaluation Overview Ten Weekly Reflections: 10 x 3% = 30% Assignment 1 = 20% Assignment 2 = 25% Assignment 3 = 25% D1 Spring Registration closes: May 12, 2025. Last day to withdraw from a Spring D1 course (without academic penalty): June 20, 2025. CUPE 4207 & Brock University acknowledge the land on which we gather is the traditional territory of the Haudenosaunee and Anishinaabe peoples. This territory is covered by the Upper Canada Treaties and is within the land protected by the Dish with One Spoon Wampum Agreement. How this Course Works • This course is a full year course of 10 weeks with ten modules. Brightspace is the primary means through which you will access course content and submit your assignments. Everything that the student needs for each module is found in Brightspace. • New Modules always start on a Monday, which is when the Module Assignment is 'released' to students. For each module: read the assigned readings, the module notes provided (under contents) and complete the assignment by the due date. • This course is Asynchronous (not in real time). There are no face-to-face components. All correspondence is through email with your assigned teaching assistant. Some online/virtual office hours will be available. Details will be posted to Brightspace. • This course syllabus provides students with a schedule of all the required readings for the term, in addition to the assignment schedule with due dates and course policies. The syllabus contains everything you need to know, so please it read it carefully several times. The contents ofthe syllabus are also found in Brightspace throughout the course site. A copy of an updated syllabus is always available in the Content Tab in Brightspace. • There are no exams in this course. • There are no make-up assignments or extra-work for extra credit. Our Role - Instructor & Teaching Assistants • This course has one instructor, a course Coordinator, and eight teaching assistants (TAs). Each student registered for a seminar when they registered for the course. Your seminar is a group of 20 students and is lead by a Teaching Assistant who is your point of contact for the term. You must contact your own teaching assistant with any course related questions; please do not email other TAs or the instructor if they are not your assigned TA. • Our goal for this course is to facilitate a positive, asynchronous online learning experience about what it means to be human in today's digital world. We won't be reminding you to do the assignments or that you are enrolled in the course. We will, however, be available to you via email if you need help with the course material, the assignments, or any Brightspace 2 questions (to the best ofour ability). We do not pre-read or pre-grade assignments. Please have specific questions prepared for your TA and be as detailed as you can in your email. Your Seminar and Point of Contact Seminar 1 & 2: Maya Karanouh [email protected] Seminar 3 & 4: Mohammed Asgari [email protected] Seminar 5: Hani Hedayati [email protected] Seminar 6: Derek Veenhof [email protected] Seminar 7: Renan Santiago [email protected] Seminar 8: Stu Gritter [email protected] Seminar 9: Alyssa Best [email protected] Seminars 10-13: Dinah Nichol [email protected] Seminar 14: Tracy Kennedy [email protected] Email Etiquette • You are to email your TA first if you have any questions. If you find that you need to email your Teaching Assistant - your Point of Contact - please include the following: o In the subject line include IASC1F02 and some topic indicator. Please provide your seminar number in your email. o You must only use your Brock Email for correspondence in this course - no Gmail, Hotmail, Yahoo etc. • Avoid writing an email like you're sending a text message. Please provide a polite salutation, such as Hello, Good Morning, Greetings etc. Avoid colloquial expressions, such as "Hey!" or "How's things?". • Please don't send the email without providing your name and seminar number somewhere. • Please allow 48 hours (excluding weekends) for a response from your Point of Contact. We will always do our best to respond as soon as we can. We normally operate within a 24 hour response time, and sometimes a little longer during peak grading times. If we've gone too long, we might have missed or misfiled your email in error - so send another note. • Please be respectful and abide by the Student Code of Conduct. We will not tolerate any harassment, verbal abuse, condescending or berating behavior. and dialogue. Remember to dialogue politely with your Instructor and TA - we are here to teach, guide, and help you succeed in this course. Any behaviors and interactions that fall outside of the code of conduct will be addressed by the course Instructor, Department chair, and/or Dean of Humanities. Your Role in this Course • We understand that there are many students taking this course as an elective or context credit and that this is not your home department - Welcome! Try to read and/or watch everything that's provided to you in the course for a robust course experience. Can you skate through without doing the readings & module notes? Sure - but remember, you're paying to learn something and have an experience! The material provided to you help you learn & explore the intersections of humans and the digital world, which you are ultimately a part of in some way. • Students are expected to adhere to the academic expectations, guidelines and standards within the Humanities, regardless of your home department. Remember that different departments and faculties may have different expectations and criteria for success than your home department. • Essay writing is an important evaluation criterion for this course, and it is a skill that is needed and utilized in the digital world. The more coherent and persuasive you can be with your standpoints and assertions, the more you will be heard and respected - online and offline. This is so important in a world of false news. • Please ensure that you are familiar with the layout of Brightspace. • Please make sure you have reliable technology and internet access to take this course and complete the work. Be mindful of your wireless connection when you are uploading assignments, as the connection can drop and impede with your submission. • If you are taking this course remotely and not in Eastern Standard Time, please ensure you keep the time zone in mind when submitting your work on time. This is your responsibility. • We are not responsible for your hardware (tablets, Smartphones, laptops, desktop) or internet access. Please plan accordingly and submit your assignments on time. Use IT Services if you're struggling. You MUST double check that your assignments have uploaded/posted properly. Log out and back in to and check. Please do not email your TA asking to check 'if it went through ok'. • We advise that you complete all that is required well in advance of the due date should you run into problems, especially technical problems. It is your responsibility to ensure that you complete all required tasks and assignments by the due date and time. We will not accommodate late submissions due to technical problems of any sort (gadgets or access) - don't leave your submission to the last minute. This is your responsibility, and not your TAs. • We recommend that you put the assignment due dates into your digital calendar and set reminders for yourself. Because of the somewhat self-guided digital nature of the course, 4 students sometimes forget about their assignments. This is an important digital skill set to learn. How You Will be Evaluated in this Course All reflections and assignments are found in the ‘Assignments’ tab in Brightspace. Weekly Module Reflections • Each module is one week and includes one Module Reflection Assignment worth 3% to complete. There are a total often Module Reflection Assignments (30%). • These Module Reflection Assignments are pass/fail (3/3 or 0/3) and will be submitted in the Assignments tab in Brightspace. You need to ensure that you are following the instructions and providing what is asked for in the instructions in order to receive full marks. • Reflection submissions are between 400-500 words and must be in essay format. • The module reflections are due at the end of the module/week - by Monday morning at 9am (which is when the next module starts, and the next assignment is released). The only exception to this is Reflection #10, which is due the last day of class on Fri, July 18th. • Module reflections (1-9) will be open five days past the due date (to close on Fridays). At that time the assignment will close/no submissions will be accepted (see notes about late penalties and extensions below). • More details will be provided in the instructions. Critical Thinking Assignments • There are three larger assignments that are focused on critical or creative thinking. They will be submitted in the Assignments tab in Brightspace. More details will be provided in theinstructions. The assignments will be open seven days past the due date and at that time the assignment will close on Brightspace. • The Assignments are worth, as follows: o Assignment #1 = 20% Due Sunday, June 1st by 11:59 PM o Assignment #2 = 25% Due Sunday, June 22nd by 11:59 PM o Assignment #3 = 25% Due Sunday, July 13th by 11:59 PM Assignment Schedule 9amAssignment #1Sunday, June1st by11:59 PMReflection #3Monday, June 2nd by 9amReflection #4Monday, June 9th by9amReflection #5Monday, June16th by 9amAssignment #2Sunday, June 22nd by11:59 PMReflection #6Monday, June 23rd by 9amReflection #7Monday, June 30th by9amReflection #8Monday, July 7th by9amAssignment #3Sunday, July13th by11:59 PMReflection #9Monday, July14th at9amReflection #10Friday, July18th by 5pm
PHIL 215/ARBUS 202 Professional and Business Ethics Spring 2025 Course Description Calendar Description for PHIL 215 / ARBUS 202 Study of ethical and moral issues that typically arise in professional and business activity. What responsibilities to society at large do people in such business and professional activities as teaching, engineering, planning, architecture, and accounting have? How far should professional autonomy extend? PHIL 215: View requirements for PHIL 215 ARBUS 202: View requirements for ARBUS 202 Description This course is an introduction to professional and business ethics. Ethics, broadly speaking, is the branch of philosophy that seeks to analyze principles that apply in the moral evaluation of human conduct. We are (in part) economic animals who trade with each other in the hopes of making ourselves better off. And insofar as our actions affect the well-being of others, what we do falls under the purview of ethics. In the context of this course we will look specifically at ethical issues and principles of conduct that are relevant to professional and business contexts. Topics covered in this course are: Fundamentals of moral theory Ethical decision-making Corporate social responsibility Equality and discrimination Social action problems Markets and the environment Ethical issues in advertising Business governance Strategic negotiation Whistle-blowing and ethics codes Learning Outcomes By the end of this course students should be able to: understand and explain the fundamentals of moral theory; assess the strengths and weaknesses of different moral theories; identify ethical problems in complex professional and business related contexts; apply ethical concepts and principles to particular business and professional situations; evaluate alternative, ethically relevant, choices and defend a plausible course of action; explain the roles of professional codes of conduct and codes of ethics in real world contexts; and evaluate arguments for logical and factual strength.
ME331L Date: May 2nd, 2025 Subject: The tank system stores pressurized air pressure blowdown. Introduction The purpose of this experiment was to verify that the air release from a pressurized tank through different sized holes can be modeled as a first-order differential system. It can be modeled because the early stages of the blowdown process have a predictable exponential pressure drop, which is characteristic of a first-order system. To support this, data on pressure and temperature were collected using two different sensing methods: a thermocouple and a pressure transducer. Both sensors were calibrated and used to capture the response of a pressurized air tank during blowdown through different sized orifices. The pressure and temperature data were recorded at a rate of 10 Hz using an Arduino and MATLAB. This data was then processed and fitted to a first-order model to analyze the blowdown behavior. and calculate the discharge coefficient. The memo compared the model’s predictions to the experimental data to verify the accuracy of the isothermal assumption and the system’s behavior. with different orifice sizes. Experimental Methods To support this experiment, a pressurized air tank was set up to study the blowdown process through three different size orifices: small, median and large. The tank was setup with two sensors: a thermocouple to measure the temperature inside the tank and a pressure transducer to measure the dynamic pressure during blowdown. The thermocouple was calibrated by comparing its output to known temperature values using the EGT-K amplifier, and the pressure transducer was calibrated by matching its output to the Bourdon pressure gauge readings from 80 psig to 0 psig to ensure accurate measurements. The output from each sensor was processed using a custom function for MATLAB. Pressure and temperature data were recorded at a rate of 10 Hz, with approximately 4200 samples collected for each orifice size tested. After calibration, the tank was pressurized, and blowdown was initiated through small, medium, and large orifices. Pressure and temperature data were recorded simultaneously throughout the experiments. This data was then analyzed and compared to theoretical models to assess the system’s behavior. and validate the assumption that the blowdown process is isothermal, meaning the temperature inside the tank remains constant throughout the release of air. This assumption is made to simplify the model, as it allows the system’s behavior. to be modeled using a first-order differential system, making the calculations more manageable and theoretically predictable. Results and analysis: Figure 1. Calibration of pressure transducer Figure 1 shows the pressure transducer has a strong linear relationship between the raw counts and pressure. The raw pressure data from the sensor matches closely with the counts from the Arduino. The uncertainty interval and Scheffe Band cover a consistent range across the data points, suggesting that the uncertainty in the measurements is relatively uniform. across the full range of counts. This indicates that the deviation observed in Fig.1 is likely due to minor measurement error that affects the entire range of pressure readings. Figure 2. Discharge Coefficient vs. Orifice Diameter with Uncertainty Intervals. Figure 2 that the discharge coefficient appears to remain relatively consistent across the range of orifice diameters tested, with values slightly varying between 0.7 and 0.9. With the diameter increases, the discharge coefficient decreases, meaning that the flow of the air through the orifices may be decreasing, which might be caused by measurement error or nonideal orifice edges. Still the trend indicates that, for the given experimental setup, changes in the orifice diameter have effect on the discharge coefficient. Figure 3. Pressure decay over time for 3 different orifices: large, medium, and small. The actual data is compared to the theoretical model based on a first-order exponential decay. The pressure decay can be described by the formula for the time constant (τ): where volume of the tank is V , the discharge coefficient is C , and the initial temperature is T0. The small orifice shows the best match between the actual data and the theoretical model, meaning the model works well because the flow is slower, and the pressure drop follows the expected pattern. The small orifice likely has a smaller C since the flow through smaller openings is less influenced by factors like turbulence and friction, making the pressure decay match the theoretical curve more accurately. For the medium and large orifices, the deviation between actual and theoretical data increases, which can be explained by the fact that frictional losses and compressibility effects become more significant in larger orifices where the flow rate is higher. As these factors are not included in this first-order system model, the pressure drop behavior. is less predictable for median and larger orifices. Figure 4. Comparison of experimental temperature data with isothermal and adiabatic models for different orifice sizes In Fig 4, the isothermal model remains nearly constant because it assumes that the temperature stays the same during the blowdown process. On the other hand, the adiabatic model describes a system where no heat is exchanged with the environment. The formula for adiabatic temperature variation is: Where T is the temperature at any time, T0 is the initial temperature, γ is the specific heat ratio, t is the time, τ is the time constant. For the small orifice, the flow rate is slower, leading to a larger τ, meaning the pressure and temperature decay more slowly over time. This slower decay means it takes longer for the pressure and temperature to reach the same level as the large orifice. For the large orifice, where the air flow is faster, the temperature drop is more significant, and the adiabatic model becomes more relevant. The medium orifice shows a temperature drop somewhere between. Hence, smaller orifices align closer with the isothermal assumption due to slower changes in pressure and better heat exchange with the environment. Conclusion This experiment evaluated the pressure blowdown behavior. of a pressurized air tank through different sized orifices, comparing the experimental data with isothermal and adiabatic models. The results showed that the isothermal model worked well for smaller orifices, where the flow was slower and the temperature stayed almost constant. However, the adiabatic model explained the behavior. better for larger orifices, where the faster flow caused the temperature to drop more. The analysis showed that the first-order model works well for smaller orifices, but for larger ones, we need to consider factors like friction and compressibility to improve accuracy. In conclusion, the experiment confirmed that while simple models can provide good insights, more complex models are needed for larger orifices, and reliable data is essential to check the assumptions and predictions of these models.
Department of Mechanical and Construction Engineering Faculty of Engineering and Environment Coursework Specification-Component 2 1 Module Information 1.1 Module Title Fluids & Energy 1.2 Module Code KB5038 1.3 Module Level and Credit Points Level 5, 20 Credit Points 1.4 Module Leader Dr Mohammad Rahmati 1.5 Coursework Title Energy and Fluids in Industry: Problem Solving 1.6 Assessment Component Number (on Module Specification) Component 002 1.7 Assessment Weighting (on Module Specification) 70 % 1.8 Coursework Specification Author Dr Mohammad Rahmati and Dr Yolanda Sanchez Vicente, 1.9 Academic Year and Semester(s) SEM2 2024-25 2 Coursework Submission and Feedback 2.1 Release Date of Coursework Specification to Students Week commencing 27th Feb 2025 2.2 Mechanism Used to Disseminate Coursework Specification to Students Assessment and Submission folder on Blackboard module 2.3 Date and Time of Submission of Coursework by Students Students will submit the assessment on 22nd May 2025 before 23:59 2.4 The mechanism for Submission of Coursework by Students Blackboard digital submission portal in Assessment and Submission folder on Blackboard module 2.5 Return Date of Unconfirmed Internally Moderated Mark(s) and Feedback to Students 20 working days after the assessment deadline 2.6 The mechanism for Return of Unconfirmed Internally Moderated Mark(s) and Feedback to Students Turnitin digital submission portal and/or My Grades on Blackboard module. 3 Assessment Details 3.1 Module Learning Outcomes (MLOs) Assessed by Coursework Knowledge & Understanding: MLO1. Relate knowledge of mathematics, statistics, natural science, and engineering principles to broadly defined problems relating to fluids and energy systems. Intellectual / Professional skills & abilities: Personal Values Attributes MLO3. Apply creativity and curiosity to analyse broadly defined fluids and energy problems reaching substantiated conclusions. 3.2 Coursework Overview The assessment consists of two mechanical engineering projects (Project 1- Turbomachinery and Project 2-Heat Transfer) involving energy and fluids. After you have completed these two individual projects. You must complete the two projects described on page 4 and submit a single digital file with your report. 3.3 Expected Size of Submission You need to submit a technical report of maximum 12 page. The report should include figures, graphs and calculation. This is equivalent to 3500 words. Please note that if you submit more than this, only the first 7 pages of your submission will be assessed. A title, contents page and any reference will be included in this page count. 3.4 Referencing Style You are to write your coursework using the Cite Them Right version of the Harvard referencing system. An online guide to Cite Them Right is freely available to Northumbria University students at https://www.citethemrightonline.com/ 3.5 Assessment Criteria The marks for each component are described on Table 2 Table 2. Marks for the different components Component Description % Project 1 Turbomachinery 40 Project 2 Heat Transfer 40 General Presentation of report 20 4 Guidance for Students on Policies for Assessment The University has several policies for assessment. The following information, which is available to you from the link below, provides guidance on these policies, including relevant procedures and forms. (1) Assessment Regulations and Policies (a) Assessment Regulations for Taught Awards (b) Group Work Assessments Policy (c) Moderation Policy (d) Retention of Assessed Work Policy (e) Word Limits Policy (2) Assessment Feedback (a) Anonymous Marking Policy (3) Late Submission of Work and Extension Requests (4) Personal Extenuating Circumstances (5) Technical Extenuating Circumstances (6) Student Complaints and Appeals (7) Academic Misconduct (8) Student Disability and Unforeseen Medical Circumstances Project 1. Aerofoil and turbomachinery: Using the NACA four-digit aerofoil series, design a blade or wing suitable for a specific application (e.g., wind turbine, aircraft wing, propeller, or any turbomachinery). Research and analyse online data for lift and drag coefficients of various NACA aerofoil profiles under different Reynolds numbers and angles of attack. Based on your analysis, recommend the most suitable aerofoil for the chosen application, justifying your choice with performance data and reasoning. a) Research and Data Analysis: Define the chosen application and its specific requirements, such as efficiency, stability, or power output. Collect and analyse data for various NACA four-digit aerofoils from online resources or simulation tools, focusing on lift-to-drag ratio, stall characteristics, and other key performance indicators. b) Design Justification: Compare the performance of different aerofoils based on the data collected and explain the rationale behind selecting the final aerofoil for the application. Highlight how the aerofoil meets the requirements of the chosen application. c) CAD Design: Create a 3D model of the design using SolidWorks, incorporating the selected aerofoil profile. The model should be scaled to 1/100 and tailored to the application. Include detailed screenshots and a description of the design process. d) Wind Tunnel Testing Setup: Describe the conditions required to test the scaled model in a wind tunnel of your choice. This should include specifications such as flow speed, Reynolds number, and adjustments for scaling effects. Justify the choice of wind tunnel and explain how the conditions will simulate real-world performance. Project 2. Heat Exchanger: A counter-flow heat exchanger is used to cool compressed air from 550 K to 315 K using water available at (290 + y) K. Note: The y is the last number of your student number. For example, w30027530 would give Y=0 a) Overall Heat Transfer Coefficient (U) The convective heat transfer coefficient on the waterside is 1 kW/m²·K, while on the air side, it is 0.04 kW/m²·K. Assuming the thermal resistance of the tube wall is negligible. -Calculate the overall heat transfer coefficient, U -Determine the percentage increases in U if both the waterside and air-side convective heat transfer coefficients are doubled. Discuss the effect of the heat transfer coefficients on the Overall Heat Transfer Coefficient (U) b) Heat Transfer and Area Required Assume the mass flow rates of water and compressed air, respectively. Base your assumptions on real-world examples found in the literature. Then: - Calculate the total heat transfer and determine the required heat transfer area. -Critically analyse the calculated total heat transfer. Discuss the practical considerations and design implications for implementing this heat transfer area within the heat exchanger. c) Outlet Temperature with Reduced Water Flow Rate Reduce the water flow rate. The heat transfer area and overall heat transfer coefficient remaining unchanged: -Estimate the outlet temperature of compressed air. Use an iterative approach for the Log Mean Temperature Difference (LMTD), starting with an assumed outlet temperature. It is advised to use excel or MATLAB to perform the calculations, explain each step in the calculation. - Discuss how temperature of compressed air changes. d) SolidWorks Drawing • Draw a detailed 3D and 2D SolidWorks heat exchanger model using the area calculate in b), including critical features and annotations.
218.325 POST-CONTRACT FINANCIAL ADMINISTRATION Semester 1, 2025 ASSIGNMENT TWO INSTRUCTIONS: Assignment Type Group Assignment You may have a maximum of THREE students in each group. However, if you wish to work alone, you may do so. But no changes to the marking criteria. Number of Questions 05 (Answer ALL questions) Total marks allocated 100 Contribution of the assignment to the final course grade 40% Submission deadline Thursday, 29 May 2025, no later than 11:50 pm Submissions Online through Stream Ms Excel file MUST be submitted for all the questions. Writing tasks can be in MS Word. Learning outcomes covered LO2 - Prepare post-contract cost forecasting, cost monitoring and reporting. LO3 - Administer financial aspects of construction post- contracts and sub-contracts, including payment claims, variations and final accounts. QUESTION 01 - POST-CONTRACT CASH FLOW (30 MARKS) Once the project was awarded to Hogwarts Construction, the Construction Manager asked you to prepare the cash flow forecasting for the project. The planning engineer has prepared the detailed construction programme, and the Table 01 data was passed on to you. In addition to that, the following details are from the contract document. Retention Retention is deducted according to the guideline in NZS 3910: 2023 Estimated profit of the project 20% Defects liability period 3 months Payment claim vs certified payment Payment claims amount and the certified payments are the same, with no adjustments (GST is not required to be calculated) Task 01 (5 marks) - Submission: Excel file Using MS Excel, the above information calculate the following for the project from the 1st month to the final completion of the project. If any assumptions are required, please list them clearly. a) Cumulative budget b) Cumulative payment claims c) Cumulative revenue d) Cumulative expenditure e) Cumulative capital Task 02 (4 marks) - Submission: Excel file Looking at the calculations, the project team requested an advance payment to reduce the negativity of the cash flow at the beginning of the project. Therefore, using the advance payment information given below, recalculate the task 02 items. Advance payment 10% of the Contract Sum Advance Recovery The Advance will be recovered 25% from each monthly payment before deducting the retentions. The advance payment recovery will not start until the overall progress reaches 10% a) Advance recovery b) Cumulative payment claims with advance c) Cumulative revenue with advance d) Cumulative capital with advance Task 03 (6 marks) - Submission: Excel file Looking at the material calculations for each month, the construction manager requested you to consider the material on-site and off-site to reduce the negativity on the cash flow even further. The following table shows the material cost for each month. Assume that these materials will be purchased in the previous month. You can include the material cost as an advance for the previous month's payment claim. Month Material cost for each month (NOT cumulative) 1 63,344.32 2 274,492.43 3 443,410.27 4 570,097.84 5 654,555.14 6 696,782,16 7 696,778.92 8 654,545.41 9 570,081.62 10 443,387.57 11 274,463,24 12 112,606.54 Using the above material costs, calculate the following: a) Cumulative payment claims with advance + material advances b) Cumulative revenue with advance + material advances c) Cumulative capital with advance + material advances Task 04 (8 marks) - Submission: Excel file Using the calculations in Task 01 and Task 02, create graphs to show the following: a) Cumulative budget curve b) Cumulative revenue curve c) Cumulative revenue with the advance curve d) Cumulative revenue with the advance + material advances curve e) Cumulative expenditure curve f) Cumulative capital curve (sawtooth diagram) g) Cumulative capital with the advance curve (sawtooth diagram) h) Cumulative capital with the advance + material advances curve (sawtooth diagram) Task 05 (7 marks) - Submission: Word file Using your answers for Tasks 01, 02, 03 and 04, explain the expected behaviour of the project cash flow. (100 - 200 words) QUESTION 02 - POST-CONTRACT COST CONTROL (20 MARKS) The project reached the end of the 5th month, and 30% of the project is completed. Task 01 (5 marks) - Submission: Excel file Using the information from question 01 above, calculate the following. a) Cumulative Planned value (PV) at the end of the 5th month b) Cumulative Actual Cost (AC) at the end of the 5th month c) Cumulative Earned Value (EV) at the end of the 5th month d) Cost Variance (CV) and Schedule Variance (SV) at the end of the 5th month e) Cost Performance Index (CPI) and Schedule Performance Index (SPI) at the end of the 5th month Task 02 (3 marks) - Submission: Excel file Draft the information into an S-curve chart to show the status of the project. Label the PV, AC, EV, CV, SV and BAC on the curve. Task 03 (2 marks) - Submission: Excel file What is the expected completion date if Hogwarts Construction wants to maintain the same SPI and CPI for the remaining part of the project? (List any assumptions made) Task 04 (2 marks) - Submission: Excel file What is the expected estimate at completion (EAC) at the end of the project if Hogwarts Construction wants to maintain the same SPI and CPI for the remaining part of the project? Task 05 (3 marks) - Submission: Excel file What efficiency/ performance rate is to be maintained to finish the project (To Complete Performance Index)? You have to calculate all the possible options. Task 06 (5 marks) - Submission: Word file Using your answers for tasks 1 to 5, provide a cost update explaining the project’s current status and forecasting for the rest of the project. Evaluate all the TCPIs from task 5 and decide which is the most feasible option with an explanation. QUESTION 03 - CLAIMS PREPARATION (VARIATIONS) (20 MARKS) The attached is the layout plan of the proposed house for Mr & Mrs Potter. The principal has suggested a few changes to the current design based on their requirements, as mentioned below. Contract Administrator Hermione issued a site instruction (SI no. 10) for variations as below. SI-10 is attached in Annexure A. Task 01 (5 marks) - Submission: Excel file • Take off the quantities for the variation items. You may use either CostX or MS. Excel. However, you need to show the quantities and how you measured them clearly. Task 02 (10 marks) - Submission: Excel file • Prepare the valuation for the variation. • Clearly list out any assumptions you have made. • You may use the template attached with the brief. • Processing charges 2% of the aggregated additions and omissions without considering the negative signs. • The cost data required for these calculations is provided in the table below. • Clearly list out any assumptions you have made. Task 03 (5 marks) - Submission: Word file Using the above calculations, prepare a Variation Order (VO). QUESTION 04 - CLAIMS PREPARATION (EOT) (20 MARKS) The programming engineer has conducted the delay analysis for the variation under the SI-10 (question 03 above) and two other variations. According to the planning engineer, the delay is expected to be 20 working days in total for all three variations. a) Due to the SI-10 variation in question 03, the Delay affected the progress on site starting at the 29th week. Extension of time is for 9 working days granted under the variation order. b) Due to receiving revised ground levels that caused a delay in the start of the second week, extension of time was granted for 3 working days under variation order 01. c) Due to the late approval of the mechanical services subcontractor by the Contract Administrator, a delay occurred at the beginning of the 12th week. An extension of 12 working days was granted under the Variation order. Task 01 (10 marks) - Submission: Word file Prepare a notice of delay to the Contract Administrator highlighting the relevant clauses from NZS 3910. Task 02 (10 marks) - Submission: Excel file Based on the Preliminary & General section of the BOQ attached in Annexure B, calculate the time-related cost claim for the Extension of Time. QUESTION 05 - CRITICAL REFLECTION (10 MARKS) Each group member should create a video to critically reflect to show their understanding of the assignment tasks done by each student. You are NOT required to make any PowerPoint presentations. ONLY a video in MP4 format is to be submitted. This should include the following. a) What is your involvement and role in the group assignment? b) What was your reflection on the work you did for the assignment? • You will get marks based on how you demonstrated your understanding of the work you did. If you just read a script through the presentation, you may get less marks. • Video for each member should not exceed more than 5 minutes. • You may combine all the videos of the group members and attach them as 1 file using video editing software. • You MUST NOT use AI to create the video and voice recording. Your face and voice MUST be clear. • If you work alone on the assignment, you MUST still submit the presentation with your reflection. Submission: MP4 file
ECON20532 Macroeconomic Analysis 4 Spring 2019 1 Tutorial 2 1.1 Question 1 Let and for every period t, where z and n are both greater than 1. The money created each period is used to finance a lump-sum subsidy of goods to each young person. a. Find the equation for the intertemporal budget constraint for an individ-ual in the monetary equilibrium. Graph it. Show an arbitrary indifference curve tangent to the set and indicate the levels of c1 and c2 that would be chosen by an individual in this equilibrium. b. On the graph you drew in part a, draw the feasible set. Take advantage of the fact that the feasible set line goes through the monetary equilibrium Label your graph carefully, distinguishing between the budget and feasible sets. c. Prove that the monetary equilibrium does not maximize the utility of the future generations. Support your assertion with references to the graph you drew of the budget and feasible sets. 1.2 Question 2 Consider the following economy. Individuals are endowed with y units of the consumption good when young and nothing when old. The fiat money stock is constant. The population grows at rate n. In each period, the government taxes each young person T goods. The total proceeds of the tax are then distributed equally among the old who are alive in that period. a. Write down the first- and second-period budget constraints facing a typ-ical individual at time t. (Hint: Be careful; remember that more young people than old people are alive at time t .) Combine the constraints into a lifetime budget constraint. b. Find the rate of return on fiat money in a stationary monetary equilib-rium. c. Does this government policy have any effect on an individual's welfare?
COMP5310 Project Stage 2 Develop and evaluate a predictive model Due: 11:59PM on 15th of May 2025 (Week 11) This assignment is worth 25% of the final mark of the unit of study. GROUPS This stage is done with the same group members you worked with for Stage 1. However, under exceptional circumstances, an alternative group may be created by the tutor when a group is reduced in size due to members discontinuing this unit. If this applies to you, please email the unit coordinator maryam.khaniannajafab[email protected] or the TAs: [email protected] or w[email protected] to discuss this. Note: Each member of the group is required to complete individual tasks, but the project will be submiCed as a combined effort. The final project will be marked as a whole, with both individual and group components contribuHng to the final grade. All assessments will be based on the single, submiCed document. Dispute resolution If, during the course of the assignment work, there is a dispute among group members that you can’t resolve or that will impact your group’s capacity to complete the task well, you need to inform. the unit coordinator [email protected] or the TAs: [email protected] or [email protected]. Make sure that your email specifies the group name and is explicit about the difficulty; also, make sure this email is copied to all group members (including anyone you are complaining about). We need to know about problems in 3me to help fix them, so set early deadlines for group members, and deal with non-performance promptly (don’t wait till a few days before the work is due to complain that someone is not delivering on their tasks). If necessary, the coordinator will split a group and leave anyone who didn’t participate effectively in a group by themselves (they will need to achieve all the outcomes on their own). This op3on is only available up un3l Thursday Week 9, which is the last day with time to resolve the issue before the due date. For any group issues that arise aRer this time, you will need to try to resolve the problem on your own, and you will continue to be treated as a single group. If someone doesn’t provide the material required for the report, or their material is not of the agreed standard, you should still have the report show what that person did. Their section of the report may be empty if they don’t produce anything, or it may have material but not enough. In such cases, please put a “Note to marker” on the front page of the report, which describes the circumstances. That way, we can consider how best to apply the marking scheme. Note that it is not expected or sensible for other members to do the work that someone failed to deliver. PROJECT Overview The objective of Stage 2 of the project is to build a robust predictive model using the clean dataset obtained in Stage 1. This stage will involve advanced predictive modelling techniques, as well as thorough model evaluation and optimisation processes. Important Notes: 1. You MUST work in the same groups you worked on during Stage 1. 2. Further cleaning of the dataset, addiHon of previously dropped columns, and or removal of columns are permiCed if you wish. 3. Each member must use a different modelling technique to develop their predicHve model. 4. Changing of target variable and research quesHon is also permiCed, if the group chooses to do so. DELIVERABLES Report The report must have a maximum of 3 pages for each individual section and maximum of 3 pages for the group section (including both group components 1 and 2) for a group of 2, and a maximum of 4 pages for the group section for a group of 3. You must use the high-level headings, as provided below, to indicate the different sections and sub-sections of the report. You must use line spacing of at least 1.15pt, margins of at least 1.8cm, and body font size of at least 10pt. The goal is to convey the problem clearly and concisely. The report should be in PDF format, named using the following convention: “GroupX_A2_Report.pdf”, where X is your group number. DO NOT SUBMIT A FOLDER THAT IS NAMED GroupX_A2_Report. It must have a front page that gives the group number, and the list of members involved (giving their SIDs AND unikeys, NOT their names). The body of the report must have a structure as follows: Group Component 1 The report must begin with a group section including: 1. Topic and research question: Describe the research problem comprehensively, emphasizing its significance in the domain. All members must agree upon and aim to answer the same research question. Clearly articulate the research question and highlight its implications for various stakeholders. Discuss how addressing this question could lead to actionable insights or improvements in decision-making for the stakeholders. 2. Dataset: Provide a detailed overview of the dataset and discuss any challenges, class imbalances, and or biases present in the data and how they might impact the modelling process. 3. Setup 3.1. Modelling agreements: Identify an a`ribute that you will all make predictions about and agree on at least two measures of success for the predictive models you will be producing. These measures should go beyond standard accuracy metrics and may include areas under the receiver operating characteristic curve (AUC-ROC), F1-score, precision-recall curves, etc. Explain the rationale behind these measures and their suitability for the research question. 3.2. Data division: Describe the process of how you divided your data into training, validation (if applicable), and test sets. Explain the rationale behind the data division, considering strategies like temporal validation or stratified sampling. Individual Component The report must include a dedicated section for each group member. Each section should clearly state the member's Unikey to identify their individual contribution / component: The report must include a dedicated individual secHon for each group member. Each secHon should clearly state the member's Unikey to idenHfy their individual secHons in the report (THIS IS A UNIKEY: ABCD1234). DO NOT PROVIDE STUDENT ID OR STUDENT NAME TO IDENTIFY ANY OF THE SECTIONS. 1. Predictive model Note: Each member must choose a different predicHve modelling technique. 1.1. Model Description: Name and describe your technique, discuss the assumptions underlying this technique, and critically evaluate their validity in the context of the dataset. Highlight the strengths and limitations of the chosen technique and justify its suitability for the research question and dataset characteristics. Modelling techniques not covered in the tutorial sessions, such as neural networks (CNNs, LSTMs, RNNs, GANs, etc) or including bagging or gradient boosting techniques (GBM, XGBoost, LightGBM, CatBoost, AdaBoost, etc.) are preferred. 1.2. Model Algorithm: Provide a detailed explanation of the algorithm powering your chosen technique, including its underlying principles, such as (but not limited to) mathematical equations, hyperparameters, and potential variations. Using pseudocode or flowchart diagrams, provide the step-by-step execution of the algorithm. (You can type the pseudocode in Jupyter Notebook and put the screenshot of the pseudocode here. You cannot put the screenshot of the pseudocode in the appendix. If you do, it will not be marked). If you choose to draw a flowchart, you can create it on any online tool or so`ware and aCach its screenshot here. You must put the screenshot of the flowchart diagram here, in the main report. If you put it in the appendix, it will not be marked. 1.3. Model Development: Describe the process of building the predictive model, including advanced data preprocessing techniques such as feature scaling, dimensionality reduction (e.g., Principal Component Analysis), or feature engineering. Discuss the selection of model-specific functions and hyperparameters, providing theoretical justification and empirical validation. Also, you will identify the Python functions and chosen parameters you selected and what they mean. Note: You don’t have to include the code in the report, as you will submit it separately. 2. Model Evalua3on and Op3miza3on 2.1. Model Evalua3on: Perform. a comprehensive evaluation of your model's performance using the agreed-upon measures of success. Interpret the results in the context of the research question and dataset characteristics, considering factors such as class imbalance, noise, and interpretability. Discuss the implications of the evaluation metrics and identify potential areas for improvement. 2.2. Model Op3misa3on: Explore advanced optimisation techniques to further enhance your model's performance, explaining your choices clearly. This may involve hyperparameter tuning using techniques like grid search. Group Component 2 Finally, a second group section at the end of the report should include: 1. Discussion: Engage in a critical discussion on the strengths and limitations of each modelling technique employed by group members. Compare and contrast the performance of various models quantitatively and qualitatively. Reflect on the broader implications of model selection for addressing the research question effectively. 2. Conclusion: Synthesize the findings from individual model evaluations and provide a recommendation on the most effective predictive model for answering the research question. Justify your recommendation based on empirical evidence, theoretical considerations, and domain knowledge. Propose potential avenues for future research, including data collection strategies, model refinement techniques, and interdisciplinary collaborations.
ECON 101 Introduction to Microeconomics Spring 2025 Course Description Calendar Description for ECON 101 This course provides an introduction to microeconomic analysis relevant for understanding the Canadian economy. The behaviour of individual consumers and producers, the determination of market prices for commodities and resources, and the role of government policy in the functioning of the market system are the main topics covered. View requirements for ECON 101 The course comprises the theoretical essentials of microeconomics and will serve as a prerequisite for virtually every economics class that you will endeavour to take in the future. The course will cover the theory of consumer choice, the economics of production, and will consider different market structures from perfect competition through various types of imperfect competition. There is a voluminous amount of material to cover in this course. We will attempt to get as far through the topic list as our limited time will allow. PREREQUISITES: A strong work ethic and a keen desire to learn. Learning Outcomes By the end of this course, students should be able to understand the need for people to make choices and to work together towards overcoming the universal problem of scarcity; appreciate the relevance of economics in a changing world; develop the capacity to apply critical reasoning to economic issues; apply elements of microeconomic theory to understand how consumers and producers make rational decisions; describe different market structures, production, and costs; analyze conceptual problems; and decompose problems into their economic parts.
COMP4403 - Compilers and Interpreters Assignment 2 Due date: 3pm (15:00) Friday 23rd May, 2025 This is an individual assignment which involves modifying the LALR assignment 2 compiler for the PL0 language to add record types, operations on records, and procedures with function results. Assignment Compiler Files All sources for the assignment PL0 compiler are available as a2.zip (below). Please be sure to use the version for this assignment and not the one used for the tutorials or another assignment. There are differences (like the lexical tokens you need for this assignment are only defined in the assignment version). · a2.zipMon 5 May 2025 18:49:52 AEST Save this .zip file and follow the instructions for setting up a compiler project in IntelliJ · Setting up and running PL0 in IntelliJFri 14 Feb 2025 16:55:17 AEST · Brief documentation on assignment 2 filesFri 14 Feb 2025 16:55:17 AEST · Here is the documentation for o Java CUP [HTML] o JFlex [HTML] For the most part you will not need these. Please pay attention to course Blackboard announcements, and ensure you follow the course discussion board (https://edstem.org/) for any updates and further information on the assignment. · Do not use imports for external packages other than those in java.util.*. Note that IntelliJ may offer the option of importing an external package to resolve an issue; please avoid accepting this option because it will often add an erroneous import that you will not need. Such imports lead to the compilation failing in the environment in which your compiler will be assessed because that environment does not include the external libraries. Please check you are not importing external libraries before submitting. · You must only modify the files that must be submitted (see below). · You must not modify any other files because we will be testing your implementation using the existing other files with your submitted files. · Please do not reformat the files because we would like to just print the differences between the originals and the versions you hand in. · Please keep the length of lines in your files below 100 characters, so that we can print them sensibly. · Please avoid using non-standard characters, e.g. Chinese characters, including in the comments. Non-standard characters are not accepted by the Java compiler used to test your assignment and all comments should be readable by the person assessing your assignment. · Please remove any debugging output before your assignment is submitted because debugging output will cause your program to fail our automated testing of your assignment. · Either avoid using tabs or set your tabs stops to 4 spaces (this is the default for IntelliJ/Eclipse) so that your files will print sensibly. Read the fine print in detail before you start! And, most important, when you have finished implementing the assignment, come back and reread the fine print again. Overview Records types Records are similar to C structs (and very simple Java classes). They only have fields (no methods). A record type may be declared in a type definition. In the following declaration type Pair = record first: int; second: int end; List = record value: Pair; next: List end; Pair is a record type that contains fields first and second, both of type integer, and List is a record type that contains field value of type Pair and next of type List. One may declare a variable to be of a record type: var x : Pair; list: List; An instance of a record may be created using a new expression. For example, x := new Pair(1,2); list := new List(new Pair(3,4), nil); assigns to variable x a new (dynamically allocated) record of type Pair with fields first and second initialised to values 1 and 2, respectively, and assigns to variable list a new record of type List with field value assigned to a new record (with fields first and second initialised to values 3 and 4) and field next set to nil, where nil is the special record constant for a null record. Fields of an instance of a record may accessed and assigned appropriate values. For example: x.first := 11; x.second := 22; list.next := new List(nil, nil); list.next.value := x; // record assignment (list.next.value and x now refer to the same record) x.first := 100; x.second := 99; write list.next.value.first; // writes 100 write list.next.value.second; // writes 99 After the record assignment list.next.value := x both list.next.value and x refer to the same record, and so, for example, after the assignment x.first := 100 both x.first and list.next.value.first will have the same value (100). Records of the same type may also be compared, but only for equality and inequality, so after the above assignments the comparison if list.next.value = x then if list.next.next != nil then write -1 else write 98 else write -2; will write 98. nil can be treated as having the same type as any defined record type, and so may be compared (for equality and inequality) with any defined record type. Two records are only equal if they refer to the same record. Procedures with function results Procedures may now optionally specify a result type. We use the term function to refer to a procedure with a result type. Functions can be used as part of an expression. For example, in the code var n: int; // A function fact with result type of int procedure fact(): int = var f: int; begin if n = 0 then return 1 else begin n := n-1; f := (n+1)*fact(); n := n+1; // restore n return f end end; begin n := 5; write fact() // writes 120 end the function fact returns the value of factorial n, e.g., when the body of the main method is executed, it writes out the value of the factorial of 5. Syntax Changes The reserved keywords "record", "new", and "return" have already been added to the lexical analyser as the tokens KW_RECORD, KW_NEW and KW_RETURN and the symbol "." has been added as token PERIOD. They have also been added to the terminals definitions in PL0.cup. The syntax for type definitions (Type) is extended with an additional alternative for record types. The syntax is given here in EBNF, but you won't be able to use the EBNF directly in the parser generator Java-CUP. (You will need to convert the productions from EBNF to BNF.) Type → TypeIdentifier | SubrangeType | RecordType RecordType → "record" Fields "end" Fields → Field { ";" Field } Field → IDENTIFIER ":" TypeIdentifier A procedure may now optionally have a result type. We'll call a procedure with a result type a function. The new syntax for a procedure declaration follows. ProcedureDef → ProcedureHead "=" Block ";" ProcedureHead → "procedure" IDENTIFIER "(" ")" [ ":" TypeIdentifier ] A function's result is returned via a return statement. Statement → ... | "return" Condition A reference to a field of a record can be used as an LValue either within an expression or on the left side of an assignment, and both a "new" expression and a function call can now be used as a Factor in an expression. LValue → IDENTIFIER | LValue "." IDENTIFIER Factor → ... | "new" TypeIdentifier "(" ExpList ")" | IDENTIFIER "(" ")" ExpList → Condition { "," Condition } Note that a field of a record may itself be of type record. Hence the above syntax has an LValue before the "." rather than an IDENTIFIER. The Parser Generator Java-CUP The parser specification for the compiler is specified in the file PL0.cup. You will need to add productions (and their associated actions) to the specification and then run the parser generator Java-CUP (manually or automatically) to generate the files CUPParser.java and CUPToken.java. Do not modify these two Java files directly (even if you think you understand them (do you really?)) - remake them from PL0.cup. You should make the compiler before you change anything just to see what forms of messages to expect. When you make the compiler (before you modify it) there will be some warning messages about the terminal symbols like ILLEGAL being declared but never used; these are to be expected at this stage. Any new warning/error messages will be significant. Beware that if there are Java-CUP errors reported, the Java files for the parser will not be generated, so check for Java-CUP errors first. There is HTML documentation for Java-CUP available from the class web page (with the assignment). The Scanner Generator JFlex All the lexical tokens for this version of the compiler have already been added to the lexical analyser. The file Lexer.java is automatically generated by the scanner generator JFlex from PL0.flex; again, do not modify Lexer.java - remake Lexer.java from PL0.flex. Both Java-CUP and JFlex are available with the assignment files on the course web page, with instructions on how to run them in IntelliJ. Java archives for Java-CUP and JFlex are part of the IntelliJ project for the assignment. Static Semantic Restrictions Records The names of fields of a record must be distinct. All of the type identifiers used for fields must be defined type identifiers. A field of a record may be of any type, including a record type. In Type.java a class RecordType has already been added to represent record types within the compiler. The rule for well formedness of a record type is given below. ∀ i,j ∈ 1..n • i ≠ j ⇒ idi ≠ idj ∀ j ∈ 1..n • syms ⊢ typeof(tj) = Tj syms ⊢ typeof(record id1: t1; id2: t2; ... idn: tn end) = RecordType([ (id1, T1), (id2, T2), ... , (idn, Tn) ]) For a new record expression new id(e1, e2, ... en ) its type identifier id must be a record type and it gives the type of the constructed record. The expressions e1, e2, ... en in the new expression must match the fields of the record in the order in which they were declared in the record type declaration. Each expression must be assignment compatible with its corresponding field: id ∈ dom(syms) syms(id) = TypeEntry(RecordType([ (id1, T1), (id2, T2), ... , (idn, Tn) ])) ∀ j ∈ 1..n • syms ⊢ ej : Tj syms ⊢ new id(e1, e2, ... en ) : RecordType([ (id1, T1), (id2, T2), ... , (idn, Tn) ]) For a reference to a field of a record, e.idj, LValue expression e must have a record type, and idj must be a field of that record. The type of the field reference e.idj is a reference to the field type of idj in the record: syms ⊢ e : RecordType([ (id1, T1), (id2, T2), ... , (idn, Tn) ]) j ∈ 1..n syms ⊢ e.idj : ref(Tj) Note that the type of e.idj is ref(Tj) rather than Tj so that a reference to a field of a record can be used as an LValue (i.e. it can be used the left side of an assignment). Assignments between records are allowed, provided the left and right sides of the assignment are of the same type. Two types are considered equivalent if they are the same type identifier, or if one is a type identifier, B, that is defined as equal to another type identifier, A, i.e., type A = record x: int; y: int end; B = A; [This makes the implementation simpler than doing structural equivalence of records.] Comparison of records is supported for equality and inequality only, provided the types are equivalent. If T is declared as a record type (i.e., some type RecordType([ (id1, T1), (id2, T2), ... , (idn, Tn) ])) then the equality and inequality operators have the following additional types. = : T x T → boolean ≠ : T x T → boolean An exception here is the special constant nil which is a record value that is compatible with all record types. The constant nil has already been defined. It is of the special record type NIL_TYPE, which is compatible with any defined record type. Hence for any type identifier id, id ∈ dom(syms) syms(id) = TypeEntry(RecordType([ (id1, T1), (id2, T2), ... , (idn, Tn) ])) syms ⊢ nil :RecordType([ (id1, T1), (id2, T2), ... , (idn, Tn) ]) Procedures with function results Although the keyword "procedure" is used for both, here we'll use the term function to refer to a procedure with a result type and procedure to refer to a procedure without any result type. A function must only be called in an expression (Factor), and the type of a function call is the result type of the function being called. A (non-function) procedure must only be called in a call statement. The name of a procedure/function must be distinct from all constants, variables, types, and other procedures/functions declared in the declaration scope (as already). A function returns its result via a return statement of the form. return exp The expression exp must be assignment compatible with the result type of the function. A return statement is not valid in a non-function procedure. Dynamic Semantics Records Records are dynamically allocated via a new record expression. As such, the value of a record will be an absolute (i.e. global) address: the address where the values of the fields of the record are stored. The value of a record will be nil until it has been otherwise assigned. When one record is directly assigned to another record of the same type, such as in rec2 := rec1 then the value (an absolute address) stored by rec2 will become the same value (an absolute address) stored by rec1. Hence, following the assignment, rec1 and rec2 will refer to the same record object in memory. Two records of the same type are equal only if their value is the same absolute address, and they are not equal otherwise. The expression new id(e1, e2, ... en ) dynamically allocates space on the heap to store all of the fields of the record, and it stores the given values of those fields in that dynamically allocated space. Objects dynamically allocated via a new record expression have a life time that is not restricted to that of the variable to which they were allocated. For example, a new record may be created within a procedure and assigned to a local variable within that procedure. Provided that variable's value (the absolute address of the allocated record) is assigned to a variable or field that is accessible via variables global to the procedure, before the procedure exits, the object will remain accessible. Although we dynamically allocate records via the new expression, we won't implement garbage collection of objects that are no longer accessible. A field reference, e.g. r.x, acts like a variable of the type of the field and hence can be used on either the left or right sides of assignments. If the value of a record is nil when an attempt is made to reference one of its fields, then this is a run time error and the stack machine should be stopped with an exit code of StackMachine.NIL_RECORD. Variables of a record type are local variables and hence are allocated on the stack just like any other local variable. The main difference from scalar variables is that the value stored in the local variable will be the absolute address of a record. The absolute address of the record (unless it is nil) can then be used to access the fields of the record. Procedures with function results For a procedure/function call, the statements in the body of the called procedure/function are executed. For a function call, the expression in a return statement is evaluated and left on top of the stack after the return from the function. If the execution of a function (but not procedure) gets to the end of the function without encountering a return statement, a run time error with a code of StackMachine.NO_RETURN occurs. A procedure implicitly returns after the statements in the body of the procedure have been executed. Object Code The PL0 compiler generates code for the Stack Machine. A description of the stack machine is available in StackMachineHandout.pdf. See also the file StackMachine.java (near the end) for details of the instruction set. Dynamic allocation of records There is an instruction, ALLOC_HEAP, which assumes that there is an integer on the top of the stack that represents the size of the object to be allocated. It pops that value from the stack and replaces it with the absolute address of a newly allocated object of that size. The stack machine does not support disposing objects or garbage collection. If there is insufficient space then ALLOC_HEAP will fail with a "memory overflow" message. In the implementation of the stack machine there is a single array representing the whole of memory: the stack (the bottom end of the array) and the heap of dynamically allocated objects (the top end). If either pushing onto the stack reaches the lower limit of the heap, or allocating on the heap reaches the top of the stack, then there is insufficient memory and the program aborts (with the same error message in both cases). You need to be aware that the instructions LOAD_FRAME, STORE_FRAME, LOAD_MULTI and STORE_MULTI expect an address that is an offset from the frame. pointer for the current (procedure) scope. You can use instruction TO_LOCAL to convert an absolute address into an address relative to the current frame. pointer. Procedures with function results The Stack Machine provides features to help implement procedure/function calls. · The CALL instruction assumes that the top of the stack contains the address of the procedure/function to be called and the second top of stack has been set up with the static link for the call. It pops and remembers the address of the procedure/function (but leaves the static link on the stack where it is -- it becomes the first word of the new stack frame). It then pushes the frame. pointer onto the stack to form. the dynamic link, and sets the frame. pointer to the address of the (already set up) static link. Finally it pushes the return address (location of the instruction after the call) onto the stack and branches to the (saved) address of the procedure/function. · The RETURN instruction exits from a procedure/function. It automatically deallocates all the local variables (not parameters), pops the return address into the program instruction counter (pc), restores the frame. pointer (fp) from the dynamic link, removes the dynamic and static links, and branches to the return address. It is suggested that you implement a procedure/function call as follows. Your generated code should: · For a function, allocate space on the stack for the function result. Note that the function result on the stack can be directly accessed from within the function by using negative offsets from the frame. pointer. (The ALLOC_STACK instruction can be used to allocate locations on the runtime stack.) · Set up the static link -- this is already done in the current code for procedures. · Call the procedure/function (genCall may be of use for both the previous step and this step). Reporting runtime errors Under exceptional circumstances, the STOP instruction can be used to stop execution of the stack machine. The top of the stack is popped to get an exit code. Types and space Your implementation should not assume that the space required for all types is one word. The space required for an element of any given type, which has been resolved, can be accessed using the getSpace method of Type. Additional stack machine instructions Additional instructions (not in the Stack Machine handout) STORE_STACK and LOAD_STACK have been added to the Stack Machine. You do not have to use these instructions, however you may find them useful. For a precise description of their behaviour, refer to StackMachine.java. STORE_STACK: The value of the second top of the stack is stored at the (absolute) address given by the stack pointer minus one (sp-1), minus the top of the stack. The two values on the stack are popped. LOAD_STACK: The top of the stack is replaced with the contents of the memory location whose (absolute) address is given by the stack pointer minus one (sp-1), minus the top of the stack. Tests Some tests are available in the test-pgm directory (in a2.zip), and can be used to help you to debug your code. All of the tests can be run together using the Test_LALR configuration. You can also individually run a test using PL0_LALR on a selected PL0 program. The test cases of the form. test-base*.pl0 are useful for regression testing, to make sure that you haven't broken any existing functionality in the compiler, and the other tests can help you find bugs in the new compiler features. Student Misconduct Students are reminded of the University's policy on student misconduct, including plagiarism. See the course profile and the School web page https://eecs.uq.edu.au/current-students/student-guidelines/student-conduct You are expected to protect your files so that they are not readable by other users. Your assignment is expected to be your own individual work and must not include code copied from other students, current or past. You are also reminded not to post your (partial) solutions to assignments to any place accessible by others (before or after the assignment deadline), including the course discussion board or emailing to other students. If you need that sort of help consult the lecturer and/or tutor. Note that course discussion board allows private posts to the instructors. This assignment compiler is provided solely for the purposes of doing this assignment and your solutions must never be shared, especially publicly, even after completion of the course. Such publication would be considered both student misconduct and a breach of copyright. This assessment task evaluates students' abilities, skills and knowledge without the aid of generative Artificial Intelligence (AI) or Machine Translation (MT). Students are advised that the use of AI or MT technologies to develop responses is strictly prohibited and may constitute student misconduct under the Student Code of Conduct. Late Submission See the course profile for details. If there are documented medical or exceptional circumstances that will affect your ability to complete the assignment by the due date, then you can apply for an extension (up to 7 days). Extensions to non-exam assignments must be requested via my.UQ. You can find instructions on how to submit your request online. If the assignment is submitted after the deadline, without an approved extension, a late penalty will apply. A penalty of 10% of the maximum possible mark will be deducted per 24 hours from time submission is due for up to 7 days. After 7 days, you will receive a mark of 0. Submission Please keep the length of lines in your files below 100 characters, so that we can print them sensibly. You should avoid using tabs or set your tabs stops to 4 spaces so that when we print them (with tab stops set to 4 spaces) they will print sensibly. Do not forget to remove any code generating debugging output and any rogue external imports before submission. You must submit your completed assignment electronically through the assessment section of the course BlackBoard site (the BlackBoard Assessment page rather than the course web pages). You need to submit the following list of individual files (not a .zip or any other form. of archive file) for evaluation and marking. Note that file names are case-sensitive. · PL0.cup · ExpNode.java · ExpTransform.java · StatementNode.java · StatementTransform.java · StatementVisitor.java · StaticChecker.java · CodeGenerator.java You can submit your assignment multiple times, but only the last copy submitted will be retained for marking. Assessment The assignment is marked out of a total of 20 marks. Marks will be allocated as follows: · 5 - Syntax analysis and tree building · 7 - Static semantics checking · 8 - Code generation Marks will be awarded for the correctness of the changes to each category. Readability and modular structure will also be criteria. For readability, we expect that you follow good software engineering practice, such as appropriate choices of variable names, consistent indentation, appropriate comments where needed, etc. For modularity we expect you introduce new methods where it makes sense to help structure the program and to avoid unnecessary duplication of code. Use of generic Java utility interfaces (like Set, Map, List, Queue, ...) and their implementations (like HashSet, ..., TreeMap, ..., LinkedList, ...) is encouraged. We expect you to produce well structured programs that are not unnecessarily complex, both structurally (e.g. complex control flow that is hard to follow), and in terms of execution time and space requirements, (e.g. an O(n) algorithm is preferred to an O(n2) algorithm, and a O(log n) algorithm is even better). We will not be concerned with the quality of syntactic error recovery because the parser generator CUP takes care of that for the most part, but you must handle semantic errors appropriately, including handling the situation when there is a syntax error, i.e., your compiler should not crash because of a syntax error. Your assignment files will be compiled in the context of the remaining assignment files and put through a sequence of tests. The total mark for this assignment will be limited by the overall success of the development in the following way: · The program submitted does not compile: Maximum 10/20. · The program submitted will not correctly handle any test case with the new facilities: Maximum 13/20. You are not required to correct any bugs that may exist in the original compiler. However, we would appreciate being informed of any such bugs that you detect, so that we can correct them, or any improvements to the compiler you might like to suggest.
CYB 235 Final Project Deadline: 11:59 pm on May. 15, 2025 SUBMISSION CHECKLIST: 1. Cisco Packet Tracer .pkt file 2. Project report 3. Recorded video 4. Peer evaluation report Final Project Description: An International manufacturing company has a manufacturing department, a warehousing department, a design department, a sales department, and a finance department. The manufacturing department and warehousing department locate in Asia, the design department locates in US, and the sales and finance department locate in Europe. The number of computers in each department does not exceed 100. Design a computer network that fulfills the following 11 requirements: 1. The sales department has a website; 2. The website can be accessed by all departments; 3. The manufacturing department has a file transfer server for the design department to download and upload design documents; 4. Only the clients in the manufacturing and design departments can access the file transfer server in the manufacturing department, and other departments cannot access the file transfer server; (Hint: try to config the access-list) 5. The finance department has a web server, but it can only be accessed by the clients inside the finance department, and the machines in other departments cannot access the server; (Hint: try to config the access-list) 6. Web server and file transfer server can be accessed by domain name; 7. The IP addresses of the same department belong to the same network segments; 8. The IP addresses of different departments belong to different network segments; 9. Each location of this company belongs to an autonomous system; thus, there should be three autonomous systems. 10. Non-server computers of various departments use DHCP to configure IP network address. 11. Add an IoT network to any of department, such as smart building, smart fire alarm system. According to the above descriptions: 1. Design a computer network (including network topology and detailed address table); 2. Use Packet Tracer to implement the designed network and verify whether it meets the requirements; 3. Write a project report with complete content, coherent logic and clear presentation; 4. Record a video showcasing your project, ensuring that the video also include the presenter.
HST 121: Global History to 1750 Summer I 2025 Course Description: This course introduces students to global history from the thirteenth century through 1750 by focusing on social, economic, political, intellectual, and religious developments in Asia, the Middle East, Africa, Europe and the Americas. We will explore the Mongols’ conquest across Eurasia, the spread of Islamic empires from Central Asia to the Atlantic, the technological transfers in the Indian Ocean and Mediterranean worlds, the trans-Atlantic slave trade and European colonialism. What types of exchanges were facilitated by maritime trade and trade diasporas? How were human interactions with their environment circumscribed by climate change and disease? Course themes include empire, disease, environment, slavery, religion, state-formation, and the rise of global trade. Topics will be covered thematically in general chronological order. This is an online course. Everything you need to successfully complete this class is available online, on Blackboard. (http://blackboard.syr.edu). You are REQUIRED to purchase the e-textbook. Assignments (quizzes, exams, document questions, links to videos and lectures) are all posted on Blackboard. If you have not used Blackboard before, or have difficulty using it, please take advantage of its help features and online tutorials. Learning Outcomes: · Acquire a broad understanding of global historical developments that helped shape the modern world from 1300 to 1750. · Provide students with a framework of world civilization that lies outside the general narratives of national histories. · Think critically about historical debates on topics such as religion, imperialism, environmental change, slavery and state-formation. · Introduce students to the critical analysis of primary and secondary sources. · Promote awareness of different cultures and countries while helping students relate to unfamiliar people and places, promoting better global citizenship. There are no prerequisites for the course. Required Texts - Buy online access to e-textbook: Felipe Fernandez-Armesto, The World, A Brief World History - Any other readings will be posted on Blackboard. Course Requirements Quizzes: 25% There will be 5 weekly quizzes (one every week, except for the week of the final exam). These quizzes will be on textbook material, the course powerpoints and video lectures. Each quiz has 10 multiple choice questions. Weekly writing activities: 25% Students will be expected to complete 5 writing assignments (one every week, except for the week of the final exam). Each of these assignments will be different, but will involve some sort of academic or creative writing that will require you to engage with the textbook and primary source material readings. Details will be provided each Sunday by 5pm, at the start of each week. These will be graded on a 10-point grading scale. · Grades in the “A” range (9-10) are reserved for work that is exceptional, showing original thoughtfulness in dealing responsibly with the course material and combining breadth and specificity appropriately in terms of both argument and evidence. Additionally, grades in the “A” range apply to work that uses language accurately and effectively (yes, spelling and punctuation matter, as does the “ordering” of ideas). · Grades in the “B” range (8) apply to work that is distinguished by clarity and individual “sparkle” in engaging the course material in service to appropriate argumentation, even if the layout of analysis, evidence, and interpretation could use more polish. Again, the use of language matters. · Grades in the “C” range (7) apply to work that is competent and acceptable (although a “C-” is an indication of marginal competency and acceptability at best) but narrower of scope and responsible originality than work in the “distinctive” grade range of “B.” · Grades in the “D” and “F” range (5-6) apply to work that is unacceptable and incomplete 0 (zero) grade: applies to work that is not submitted Film Analysis Project: 25% 25 % of the grade is based on a written project you will complete, based on the a film which you will watch (noted in syllabus calendar). Your project should show that you have watched the film and have understood the main points and storylines of the film. Total points 50. More information about the film project will be distributed on the Sunday of the week of the due-date. Final Exam: 25% This exam will include objective and essay sections and will be distributed online during the last week of the course. Academic Integrity The Syracuse University Academic Integrity Policy holds students accountable for the integrity of the work they submit. Students should be familiar with the Policy and know that it is their responsibility to learn about instructor and general academic expectations with regard to proper citation of sources in written work. The policy also governs the integrity of work submitted in exams and assignments as well as the veracity of signatures on attendance sheets and other verifications of participation in class activities. Serious sanctions can result from academic dishonesty of any sort. Please note: plagiarism is considered a major offense and is unacceptable in this course. A failing final grade for the course should be expected. There is no negotiation possible for a better grade. You are plagiarizing when you use someone else’s words as your own. THIS INCLUDES COPYING AND USING INTERNET SOURCES WITHOUT CITATION. When using someone else’s words, be sure to use the proper quotation and citation methods. Info on plagiarism can be found at: http://researchguides.library.syr.edu/content.php?pid=28194&sid=205457 As a matter of policy, late submission of assignments or examinations is not accepted. Late quizzes, exams and essays will be deducted a letter grade per day. Be mindful that all assigned written work is necessary for completion of the course. Please note also that all grades on assignments and examinations are final. Grades are earned; not negotiated. FINAL GRADES: As 100-90 (A- 93-90) Bs 90-80 (B+ 87-89 B 84-86 B- 80-83) Cs 80-70 (C+ 77-79 C 74-76 C- 70-73) Ds 70-60
FINE 130 Introduction to Digital Imaging Spring 2025 Course Description Calendar Description for FINE 130 This online course is an introduction to current imaging software that students use to explore contemporary topics through digital imaging. This course is taught from a fine arts perspective. View requirements for FINE 130 FINE 130: Introduction to Digital Imaging is a studio-based Fine Arts course taught asynchronously online. This online digital course is designed to introduce students to current digital imaging software, techniques, trends, and processes that historical and contemporary artists use to create original image based artworks. Students are encouraged to produce creative image-based projects throughout the term. FINE 130 is taught from a Fine Arts perspective. This course gives students introductory instruction and experience in creating original artwork using digital imaging tools and software and helps students develop a visual language to discuss their own work through artist statements. While students will attain a degree of familiarity and comfort with the tools and techniques used to create digital artwork, there is a strong emphasis on content, conceptualization, and originality. This will be considered in the evaluation of student projects. Through online lectures, tutorials and discussions, students will gain an understanding of the language used to discuss digital technologies and a critical context for the politics, power, and history of digital technologies and image making, and the impact of technologies on contemporary art practices. This online course was authored and developed by Natalie Hunter, with instructional design and multimedia development support provided by the Centre for Extended Learning. Further media production was provided by Instructional Technologies and Multimedia Services. Learning Outcomes By the end of this course students should be able to: Demonstrate successful use of core digital imaging tools and techniques like image compositing, masking, retouching, text, painting and drawing tools, and various other tools through hands on experience with industry standard digital imaging software. Complete the work that is asked of you with increasing confidence and comfort through accumulative skill building. Assess and critique digital imaging strategies and techniques in peer assessment writing assignments. Develop a critical eye in relation to the elements and principles of design and contemporary image making techniques and practices. Develop a critical eye in relation to the elements and principles of design and contemporary image making techniques and practices. Develop visual language skills and a vocabulary in composition through the creation of original artwork and written statements. Discuss the historical precedents and artistic movements that continue to influence the explosion and ubiquity of images in our digitally saturated culture. Apply the digital processes, tools, and methodologies that contemporary artists use in their art practices to your own creative artworks with originality and critical thought.
Program Consoles (CT5PROGC) Module Code: M20199 GENERAL ASSESSMENT INFORMATION Assessment 1 (100%): Individual or Group (your choice), Mandatory Video plus Optional Report • Assessment length depends on size of group. • Submit Online. Submission box and dates are on Moodle. • This coursework qualifies for the 48hr assessment extension. Short Description: The coursework is either completed individually or as a group and consists of a video, plus an optional report, which combine to demonstrate and evaluate your artefact, and reflect on your progress in the module. This coursework constitutes 100% of your marks for this module and will assess Learning Outcomes 1-4 of the module description. Second Attempt: Repeat the above coursework. MODULE ABSTRACT, LEARNING OUTCOMES AND KEY DATES Program Consoles (CT5PROGC) Abstract The primary aim of this module is to expose you to various aspects of current-gen console development, including the hardware considerations and the programming issues associated with consoles, as well as how to improve the performance of software. The module adopts a problem-based learning approach - you will often find yourself in unfamiliar, unspecific or difficult territory as this is a common occurrence in professional games development situations. Do not expect to be told exactly what to do, or how to do it - as second year university students you need to be working towards becoming independent learners. Your analytic and problem-solving skills will be put to the test, as will your patience, but with regular attendance, effort and cooperation with peers you will no doubt succeed. Learning Outcomes On successful completion of this module, students should be able to: LO 1 Work within the practical restrictions of software creation for consoles. LO 2 Implement a software artefact capable of executing on a development console. LO 3 Utilise a methodical approach to improve the performance of software artefacts. LO 4 Utilise industry-standard tools and documentation effectively. Key Dates Formative Peer Review of your Work in Progress: You will be using the taught sessions to show your coursework progress so far. You will be getting formative feedback on your work almost every week. Assessment 1 (100%): Video and/or Report Due in near the end of the module. Details and online submission via port.ac.uk/moodle ASSESSMENT 1 BRIEF Your task is as follows: For this coursework you can choose to work on any current-gen console tech that we have available. We have lots of PS5 and Switch devkits, so you should choose one of these platforms. The taught materials provided on Moodle will focus primarily on PS5 though, so if you are not particularly confident then we suggest you choose PS5. There will be some Switch guidance too, and some of the PS5 discussion is applicable to Switch, but for a more hand-holding approach please choose PS5. New for this year: We have been given a specific project idea from Sony for students to use! You are not required to do this, but any students/groups using the Sony brief will have the opportunity for their work to be sent to Sony for viewing and feedback at the end of the project. The brief can be found on Moodle, and please note all of the assessment information in this document still applies. Either individually or in groups (your choice), you should create a small demo that shows your confidence with the tools and a number of libraries from your chosen platform’s SDK. The scale and scope of the demo (number of tools/libraries etc) should depend on the number of people involved in the submission, for example: Size of Group Number of Libraries 1 2 to 3 2 2 to 3 (in depth) 3 3 to 4 4 3 to 4 (in depth) 5 3 to 4 (excellent) Note that the above numbers are suggestions for targets and are for indication only, it all depends on your own ability and the quality and depth of the specific implementation – you can ask for feedback on this as the module progresses. The artefact does not need to be a full game, just a demonstration that you have got different libraries working together harmoniously in some way, and are capable with the various tools provided. You can either create something from scratch or take an existing sample file and migrate features into this. Both options are challenging for different reasons, and it is going to take around 8 hours per week of effort from each team member in order to produce something of the appropriate standard. You are free to work with people who are not in the same timetabled session as you but it will be up to you to coordinate this as a group and you MUST attend your own timetabled session at the very least, or you will be noted down as absent. You are not required to submit the actual demo code. You are required to submit a video, and if you would prefer to do the evaluation / reflection part in writing, a report too. So this means that you can do EITHER: • A short video demonstrating the artefact in action plus a substantial report containing all of the required discussion. OR • A longer video demonstrating the artefact and also presenting the required discussion via voiceover and slides. Either way your sources need to be referenced in APA format, and either way the submission should cover the following topics: • LO1: Discuss the practicalities of working with devkits and how you worked well (or not) to overcome any associated problems. Comparing with other platforms we have available (i.e. PS5 vs Switch) would be a big advantage – were the issues you had representative of “typical” console development? • LO2: Demonstrate the artefact and show how well (or not) it makes use of the various libraries in the chosen platform’s SDK. You should screencap and submit some video footage from the devkit using the tools provided, even if you are submitting a report-based analysis. • LO3: Show a methodical, quantitative approach to how you have made the code perform. better – how you define “better” is up to you, but you should base this on actual numerical evidence e.g. capture it through profiling tools, gathering data before and after optimisation. • LO4: Evaluate your understanding and performance with regard to the documentation and tools available, demonstrating how it helped you succeed (or not). Again, evidence of specific comparison with equivalent platforms would be advantageous. The required length for the video/report (+/- 10%) is as follows: Size of Group Length of Video (minutes) Length of Report (words) 1 7 1500 2 10 OR 2000 3 13 2500 4 16 3000 5 20 3500 Important note about group work: If you are working as a group you will need to let the lecturer know (by email: [email protected]) the names and student numbers of all people in the group. Similarly, if anyone joins/leaves the group you need to let us know – marks for groups will only be awarded according to group info we have received by email. If we haven’t been informed of you joining a group we will assume you are submitting individually. If you are working as a group of 3 or more, the overall score for your group will be subject to a peer review process to determine individual marks for group members based on relative contribution to the project. Expectations for achievement will also be scaled to reflect the number of members in the group, and therefore the greater amount of person-hours available. ASSESSMENT 1 SUBMISSION DETAILS The hand-in information is as follows: The following items should be uploaded to the dedicated drop box on Moodle before the date and time specified. 1. Your video – unzipped, no bigger than 1080p in resolution, saved in a format/codec (e.g. mp4) that can be run in Windows Media Player without any additional downloads/plugins. Remember that even if you are submitting a report, we still need you to upload a video of your demo running! 2. Your report (if applicable), in Word or PDF format. 3. Peer review forms from each group member, if you are in a group of 3 or more. You can follow the handy guides here for help with recording and editing your video: https://www.youtube.com/watch?v=eyF99uVXRTQ Please be sure to TEST your video to make sure the audio quality is appropriate – If I can’t hear you, I can’t mark the work! Labelling Your Work: Your lecturers will see hundreds of pieces of assessment work a year. You must make sure your files are labelled clearly, indicating your student number and the contents. Example of Good Practice for labelling work: StudentNumber_Module_AssessmentName
Numerical Methods 2024/5: Individual Project Individual project F • This work will count for 50% of your final mark for Numerical Methods. • You must answer the question assigned to you . No marks will be awarded for answering other questions. • The mark breakdown is as follows . Analysis 60 Implementation & testing 20 Good programming practice 15 Overall presentation 5 Total 100 • The work does not require the use of external sources; any sources you do use (aside from the course materials) must be properly cited. • Store all files on One Drive or the M drive to protect against loss. • Save your Maple work regularly. Executing incorrect codes may cause Maple to become trapped in an infinite loop. If this happens, you can try pressing the interrupt button (①), but you may be forced to close the application and reload your work. • There is no requirement to type your analytical work; scans of handwritten work are equally acceptable provided they are properly organised and readable. • Submit work as a single pdf file. See the project guidance notes for instructions on merging and rearranging pdf files. • Your final submission must include a pdf export of your Maple worksheet. If you work the numerical calculations into a report (e.g. by copying parts into MS Word and adding appropriate explanations), you still need to include the Maple worksheet; just add it as an appendix at the end. • Invalid submissions (e.g. files in formats other than pdf) will be deleted. Students who make invalid submissions will be given another chance to submit, but this will be treated as late, and subject to standard university penalties (5% deduction for each day, and a mark of zero after five days) . The Cn quadrature rule for the interval [-1, 1] uses the points at which Tn-1 (t) = ±1 as its nodes (here Tn-1 is the Chebyshev polynomial of degree n - 1) . The C3 rule is just Simpson’s rule because T2 (t) = 2t2 - 1. (a) (i) Find the nodes and weights for the C5 quadrature rule. (ii) Determine the first nonzero coefficient Sj for the C5 rule. (iii) If the C5 rule and the five-point Newton–Cotes rule are applied on the same number of subintervals, what approximate relationship do you expect the two errors to satisfy? (iv) Suppose that the C5 rule has been applied on N subintervals, and that all of the function evaluations have been stored. How many new function evaluations are required to apply the C9 rule on the same set of subintervals? Justify your answer . (b) Consider the approximation where tq and wq are the nodes and weights for the Cn quadrature rule. Assume that n is odd, and let k = (n - 1)/2 . (i) Set g(t) = T2j(t), and then make the substitution t = cos θ to evaluate the integral. Hence show that (ii) Consider the operator It can be shown (proof: exercise for fun) that Apply Sk to the result of part (i) and hence show that This result should agree with your calculation from part (a) . (c) (i) Write a Maple procedure that takes as its arguments a function f , real numbers a and b and a number of subintervals, N . As its result, it should return the approximate value of calculated using the C5 rule. (ii) Test your procedure using and N = 10. Calculate a second estimate using the five-point Newton–Cotes rule, also with N = 10 . Verify that the ratio of the errors is in agreement with your theoretical prediction from part (a) . (iii) Repeat the calculations from part (ii) using a second integral chosen arbitrarily. Do not use a polynomial for f (x), but make sure there is no possibility of division by zero etc. The numerical methods package provides a five point Newton–Cotes procedure; you can also download the procedure code from Canvas (five_pt_NC. mw, in the quadrature section) .
COMS W4172: 3D User Interfaces and Augmented RealityAssignment 1—Spring 2025COMS W4172: 3D User Interfaces and AugmentedReality—Spring 2025Prof. Steven FeinerDate out: Thursday, February 6, 2025Date due: Tuesday, February 25, 2025 (Only one late day allowed)Figure 1. A real-life tilt mazeAssignment 1: A Maze YourselfIntroductionFor your first assignment, you will build from scratch a simple but fun tilt-controlled mazegame for a mobile phone using Unity. The inspiration is a physical marble maze (e.g., Figure 1),though we don’t expect your maze to look and act exactly like a physical one. This assignmentwill introduce you to Unity and mobile physics-based interaction using the device’s IMU (inertialmeasurement unit), requiring you to implement tilt-based motion, simple physics, and gamemechanics.Unity is a powerful development environment. However, that power comes at the price of asizable learning curve: You'll need to get comfortable with a workflow that may be different fromwhat you're used to, along with what will probably be an unfamiliar language, C# (although you1COMS W4172: 3D User Interfaces and Augmented RealityAssignment 1—Spring 2025should already know the basic object-oriented programming concepts underlying it). Therefore,please start as early as possible on this assignment, so you can explore and becomecomfortable with the Unity editor and begin designing your game enough in advance that you'llhave time to come to office hours if you need assistance. Remember to take advantage ofUnity's extensive online Manual and Scripting API Reference, its many free tutorials, and onlineQ&A such as Unity Discussions and StackOverflow.Please start by either working through the Unity Roll-a-Ball tutorial (or reviewing it if you’ve doneit previously) to familiarize yourself with the Unity workflow.Important: At most one of your four late days may be used on this first assignment, so, the latest youcan turn it in will be 11:59 pm Wednesday, February 26, using that single late day.Game OverviewThe goal is to navigate a marble through three different maze configurations, avoidingobstacles and collecting items before reaching the end zone as quickly as possible.● The player tilts their phone to control a marble (a sphere primitive) rolling through amaze.● The game features three different maze configurations, each with increasing difficulty.● The goal is to reach the end zone of the maze as quickly as possible while collectingitems.● Obstacles include walls, holes, gaps, doors, and rotating platforms.● A victory screen with a leaderboard that shows the completion time when the playerreaches the end zone as well as the number of items collected.Requirements1. Core Mechanics● Tilt-based movement (Tip: Check out the Unity Rigidbody component)○ The motion of the marble (which should roll rather than slide) should beimplemented using the Unity physics engine and feel natural and responsive.○ The marble should change speed and direction in response to gravity based onthe angle of your phone relative to the direction of gravity.■ You can implement this with the Input System attitude sensor.2COMS W4172: 3D User Interfaces and Augmented RealityAssignment 1—Spring 2025○ Implement a maximum effective tilt angle (30°) to prevent extreme motion. Inother words, even if the phone is tilted more than 30°, the marble should not actas if the tilt angle is greater than 30°.○ You should use one or more plane primitive objects for the floor and experimentto find appropriate values for friction (tip: check out Unity Physics Material).○ Changes in the position of the phone (e.g., moving/jerking the phone in anydirection, which could make a physical marble resting on the phone move)shouldn’t affect the marble.● Jumping○ The player should be able to tap on a jump button to make the marble jump afixed amount to a height that is limited to the radius of the marble.■ Ensure the marble cannot jump over walls nor “outside” of the maze bymaking the walls sufficiently high!○ It is up to you whether you allow the marble to “bounce” when it lands.○ Jumping should be realistic, using Unity physics (Rigidbody.AddForce). You candecide whether the direction of the force used for the jump is against gravity orperpendicular to the maze floor.○ Jumping should be disabled while the marble is in the air to prevent doublejumps.2. Obstacles & CollectiblesObstacles in the game include:● Walls: A wall is a static obstacle that the marble will bounce off. Test values of“Bounciness” for Physic Material to find an appropriate value.● Holes: A hole is an area on the floor that is large enough for the marble to fall through. Ifthe marble falls into a hole, it should reset to the start of the level.○ To make holes, you have multiple options. You can mix and match different-sizedplane primitives to make holes; holes don't have to be round (e.g., see Figure 2).○ Alternatively, you can make custom meshes with holes with Unity ProBuilder.○ You can easily detect if the marble has fallen through by adding a collider belowthe hole(s) in the coordinate system of the maze).3COMS W4172: 3D User Interfaces and Augmented RealityAssignment 1—Spring 2025Figure 2. You can create a square hole by arranging a set of plane primitives.● DoorsFigure 3. Example door and “door-opening” zone.A door is a dynamic obstacle that opens only when the marble rolls over a specific zoneon the floor associated with that door. The size of this zone should be similar to the sizeof a hole. You can place a door-opening zone near holes to increase the difficulty.4COMS W4172: 3D User Interfaces and Augmented RealityAssignment 1—Spring 2025● GapsFigure 4. Example gap.A gap is a missing portion of the floor bounded by walls such that the marble must jumpthe gap while rolling to pass between the portions of the floor that it separates. Youshould design a gap such that it’s impossible to get past it without jumping, even if youhave high speed. Similar to holes, if the marble falls into a gap, it should reset to thestart of the level. You should include some easier-to-jump-over narrow gaps and somemore challenging wide gaps that require more speed.● Rotating platforms:Figure 5. Example rotating platform.5COMS W4172: 3D User Interfaces and Augmented RealityAssignment 1—Spring 2025A rotating platform is intended to allow the marble to traverse a gap it could not normallypass. Start by creating a large gap that the player cannot jump across directly. In thecenter of this gap, place a circular disc (made from a primitive cylinder) to act as thecentral part of a rotating platform.● Position a cube so that it touches the edge (rim) of the disc.● The disc should rotate around its vertical axis, and the cube should orbit aroundthe disc, maintaining a constant distance from the center of the disc.● Ensure that two sides of the cube remain parallel to the gap’s edges while itrotates, so the cube maintains a consistent orientation during rotation.● To help the marble stay on track, add walls on the other two sides of the cube,making it harder for the marble to fall off while it’s on the moving platform.● Experiment with the size, height (relative to the maze floor), and distance(relative to the edges of the gap) of the top face of the cube to make your gameplayable by you and us!Collectibles in the maze allow players to score by collecting them.● Collectibles should be created from at least two different free assets, as describedbelow.● The collectibles should be placed strategically to encourage exploration.● The UI should display the number of items collected.● When the marble is within a set distance from a collectible (experiment with values), thecollectible should signify this visually and play a sound.● If the player taps on the collectible (see Physics.Raycast and theCamera.ScreenPointToRay() function) while the marble is within that set distance:○ The collectible should disappear from the scene.○ The collectible counter in the UI should be incremented.○ Visual and audio feedback should be provided (tip: Consider using a particlesystem for the visual effect).○ Unlike many games you may have played, collectibles should not be collectedwhen the marble touches them. Instead, the player collects a collectible bytapping it when the marble is sufficiently close, as described above.3. Levels, Camera, and LightsThe game features a series of three levels with different designs. The player unlocks the nextlevel by completing the previous level.Here is what each level should include:● Level 1: A small maze. The entire maze is visible from the camera. The only obstaclesare walls, holes, and gaps. Gaps must be jumped over, as shown in Figure 4. There6COMS W4172: 3D User Interfaces and Augmented RealityAssignment 1—Spring 2025should be at least three walls, three holes, and three gaps (at least one of which shouldbe wide).● Level 2: A small maze. The entire maze is visible from the camera. In addition to walls,holes, and gaps, doors and collectibles are introduced. There should be at least onedoor, and at least three walls, three holes, three gaps (at least one of which should bewide), and three collectibles.● Level 3: A larger maze where only part of the maze is visible. Implement an arrowindicator pointing in the direction of the end zone (see Section 4. UI and Game Flow).The camera should follow the player as they roll around the map. There should beat least one door, and at least three walls, three holes, three gaps (at least one of whichshould be wide), and three collectibles. At least one rotating platform should also beincluded (see Section 2 for details).Camera and Light Requirements● Projection: Please use perspective projection.● Position: Levels 1 and 2 should use a fixed camera to show the entire maze. A followingcamera should be used for level 3 to track the marble.● Camera angle: Assume the player is standing upright (relative to gravity) with a specificedge of the phone closest to them. The maze floor aligns with the plane of the phone,and the camera looks along a vector at a set angle relative to the direction of gravity.Feel free to experiment with different camera angles to ensure good visibility, especiallywith levels 1 and 2 in which camera position is fixed.● Arrow Indicator: Show an arrow pointing to the end zone when it's off-screen (level 3only).● Lights: Include at least one directional or point or spot light source overhead that is notattached to the maze coordinate system, so that objects are lit differently and shadowschange as the maze rotates. Don’t place point or spot lights too close to the maze.Figure 6. An example maze configuration, with holes and collectibles (coins) along the way.7COMS W4172: 3D User Interfaces and Augmented RealityAssignment 1—Spring 20254. UI and Game FlowYou should use the Unity UI to present the player with a Canvas object on the screen.● Start Screen○ Displays a start button and then a maze selection screen. In the beginning, theplayer can select only level 1. They can unlock levels 2 and 3 by clearing theprevious level.● In-Game UI○ Timer: Starts counting once the game begins.○ Collectible counter: Displays the number of items collected.○ Reset button: Allows the player to restart a level at any time.○ Jump button: Causes the marble to jump a fixed amount.○ Return to the start screen button.○ Arrow indicator: If the end zone is not visible, an arrow indicator shouldappear at the edge of the screen pointing toward it.○ Audio feedback: Should be provided when each of the following occurs:■ The marble is rolling.■ The marble hits a wall (with a sound whose amplitude is ideallyproportional to speed; use colliders).■ The marble jumps.■ A door is opened.■ A collectible is close enough to be collected.■ A collectible is collected.■ The marble reaches the end zone.(tip: you can easily find and download sound effects from YouTube!)● Victory Screen:○ Shows when the end zone is reached.○ Displays completion time and number of collectibles gathered○ Buttons for going to the next level, restarting the level, return to the startscreen. The go-to-next-level button won’t show if this is the last (third) level.● If the marble falls into a hole or gap, the level automatically restarts.5. Design● Use only 3D primitives except for collectibles. You should only use basic 3Dprimitives (e.g., spheres, cubes, cylinders) or objects created in ProBuilder for themarble and maze. For collectibles, you must use at least two distinct free assetsobtained from the Unity Asset Store or some other source, such as those listed in theIA Resource Page. Your assignment should use free assets only. You are welcome toadjust material colors, lighting, and scale to make objects visually distinct. Forexample, you can use different colored materials for the marble, floor, and walls.8COMS W4172: 3D User Interfaces and Augmented RealityAssignment 1—Spring 2025● Ensure the UI is optimized for mobile (easy-to-tap buttons, clear display).● Playability: Make sure that we (and you) can test your game by playing it through.The levels should not be overly difficult—ensure that a typical player can completeeach in between twenty seconds and two minutes. This will be especially importantfor making a video demo showcasing your work.6. Development Approach● Start simple: Implement basic movement first using the device tilt.● Gradually add features: Work in the following order:1. Create the layout for level 1. This will be your main testing ground.2. Implement basic physics-based movement with the Unity Rigidbody component.3. Add UI elements: Timer, collectible counter, restart button, jump button.4. Add jumping mechanics, making sure the marble cannot be made to jump againduring a jump or while in the air.5. Introduce obstacles (holes, gaps, doors, and the rotating platform).6. Implement raycasting for tap-to-collect collectibles.7. Refine camera movement: Ensure the camera follows the marble smoothly inlevel 3, with the marble remaining in the center of the screen.8. Create levels 2 and 3, and make sure the game logic (e.g., unlocking levels)works.9. Test extensively on your mobile device before submission.As a metric for progress, if you haven’t gotten to step 3 one and a half weeks before theassignment is due, please come to office hours for help.● Hierarchy & Object Organization: organize objects logically in the Unity hierarchy.The maze should be the parent object with obstacles, doors, and collectibles aschildren.● Testing Without a Mobile Device: Deploying and testing on an actual mobile devicecan take a long time. To save deployment overhead, you can interleave (but not omit)testing on a mobile device with either or both of the following:○ Play your game in Unity play mode. Implement substitute controls for Play Modein Unity. For example, use keyboard keys (e.g., arrow keys, WASD) tosimulate tilt. Note that substitute control is not required for yoursubmission but is highly recommended so you can test your gameefficiently.○ Play your game using Unity Remote. This is an app that you install on yourphone, allowing the application to run in the Unity editor, but display on yourphone and use its sensors for input, though with different performance thanrunning on the phone. Note: To use Unity Remote on an Android device, youmust have the Android SDK on your computer.9COMS W4172: 3D User Interfaces and Augmented RealityAssignment 1—Spring 2025HintsPlayability. Please be sure that you (and we) can last long enough to try all the features,remember that we will have little time to practice. Playability will be especially important formaking a video showing your work!Documentation. Before starting this assignment, please look through the Unity Manual, to get abetter feel for the Editor and see the reference page on Input for a comprehensive overview ofits functionality. You can also take advantage of some of the many other free Unity Tutorials (inaddition to Roll-a-Ball).Usability heuristics. Your application should be designed bearing in mind the Nielsen usabilityheuristics. We will not grade your work based on the aesthetics of the models. You should notuse any assets that are not free or any code/scripts written by others. Other than that, we will beevaluating your work with the heuristics in mind. Think about the feedback you provide to yourplayer. How do you want to show different game states to them?Hierarchy. Understanding rotation is crucial here. Note that when an object is rotated, itsdescendants will also rotate. Therefore, if you want object B to act as if it were a descendant ofobject A, but not be affected by A’s rotation (e.g., to have A rotate at a different rate than B), theeasiest way to do this is to create empty GameObject A′, make A and B both children of A′,where A is centered at A′ and B is offset from A′, and then rotate A and B individually. If you dothis, transforming A′ will transform all its descendants, but A and B can each rotateindependently.Model Files. Each model file you find for an asset will most likely not be of an appropriate scalerelative to the other objects you’re using. Therefore, be prepared to apply a scale transform toone or more of your models to bring them up or down to a reasonable size. In addition, note thatsome models may contain too many polygons for your mobile device to render your scene at areasonable frame rate. Before you get too enamored of any model, please try it out on yourdevice in context with the rest of your scene to make sure that it will work well. See also How doI fix the rotation of an imported model?Raycasting. When using the Physics.Raycast function, you will be returned a RaycastHitobject. The RaycastHit object contains a reference to a Collider. The Collider contains areference to the GameObject to which it is attached. You can use that reference to determinethe object with which a raycast collided through the screen. You should use raycasting for yourtouch-based input, so that when you touch the screen, a ray will be cast through the point youtouched (from the camera’s perspective.) You can accomplish this using theCamera.ScreenPointToRay() function.Rotation and orbiting. In Unity, the Transform.Rotate method specifies a relative orientationchange that will be composed with the current orientation. Transform.Rotate needs to be giventhe amounts to rotate as Euler angles about the X, Y, and Z axes, either as three separate floatsor as a Vector3. It will apply a rotation to the object about the Z-axis, X-axis, and Y-axis (in thatspecific order, as discussed in the Unity documentation). You should also read about and use if10COMS W4172: 3D User Interfaces and Augmented RealityAssignment 1—Spring 2025needed Transform.RotateAround. Please be sure that you understand the relativeTo parameterof Transform.Rotate and how Transform.{right, up, down} differ from Vector3.{right, up, down}.In strong contrast to the Transform.Rotate method, the Transform.{rotation, localRotation,eulerAngles, localEulerAngles} properties set the absolute orientation of a Transform (i.e., willoverride and ignore its current orientation) and do this in ways that offer many possibilities foryou to do the wrong thing. Beware: None of the elements of Transform.{rotation, localRotation}is an angle (they are the components of a quaternion) and none of the angles ofTransform.{eulerAngles, localEulerAngles} should be set individually or incremented! Pleaseread the preceding sentence over again!Play mode. While Play Mode provides a very useful way of debugging your app, it is not areliable indicator of how it will run on your mobile device. Make sure you test directly on yourdevice whenever you introduce a new imported asset. While debugging, you will want to includesecondary controls guaranteed to work on your desktop or laptop in Play Mode, such asInput.GetMouseButton(). Since these controls may affect performance slightly, you will want todisable them when running on your mobile device. (Or if you feel comfortable with your app’sperformance on your device, you can choose to support both modes.)Unity Remote. Unity Remote makes it possible to run an application in Play Mode on yourlaptop or desktop, while having its output and input appear on and be obtained from your mobiledevice, all without any need to deploy to that device. This can make debugging far morepleasant and less time consuming than it would be if you had to deploy every time you changedanything! However, it is important to note that Unity Remote will not provide a reliable indicatorof how the application will run on your mobile device and is known for having “issues.” This isespecially true regarding rendering and timing, since Unity Remote renders everything on thecomputer on which the editor is running and sends the rendered content as compressed imagesthrough the cable to your mobile device. As with Play mode, make sure you test directly on yourdevice whenever you introduce a new imported asset. Note also that Unity Remote provides theability to change the compression and resolution of the generated graphics, improvingappearance at the expense of computational overhead. We strongly encourage you to use UnityRemote, provided you deploy frequently when you make changes to test the ‘real’ app.How to submitPlease turn in a compressed/zipped file containing your entire project, remembering to includeany needed data files. You can do this by navigating to the directory where your Unity projectsare stored and compressing it there. This file will contain:1. Your Unity project in its entirety.1. Do not include the app executable (or the XCode project for iOS).2. Your well-commented code.3. Your readme.txt file that includes11COMS W4172: 3D User Interfaces and Augmented RealityAssignment 1—Spring 20251. Your name2. UNI3. Computer platform (Computer OS & OS Version)4. Unity version5. Mobile platform, OS version, and device name6. Description of your project, what you did, and how you accomplished it. Pleasealso mention mandatory functionalities you were not able to implement, if any.7. About one page on how you applied the Nielsen usability heuristics.8. Any problems you overcame (both coding and technical)9. A list of the free assets you used.4. Finally, the URL of a brief video, five minutes maximum, demonstrating your application’sfeatures with you narrating it. You won’t get graded on video content shown after thefive-minute mark. While we are not expecting a painstakingly scripted production, pleasepractice before recording it and do some simple editing to remove unnecessary pauses.Submit this as a link in your README file and the CourseWorks File Upload comment toan unlisted video on YouTube or Google Drive. The upload time of your video on one ofthese two sites will be the time at which we will consider it to have been submitted.Please follow the naming convention “YOURUNI_Assignment1.zip” for your submission. Nameyour video “YOURUNI_Assignment1,” upload it as an unlisted video on YouTube, and includethe URL in your submission, as described below. Submission should be done throughCourseWorks, following these steps:1. Log into CourseWorks.2. Select Assignments from the navigation pane on the left.3. Click the Submit Assignment button in the top right corner.4. The Submit Assignments page will load. Choose your zipped project using the browsedialog window that appears after pressing “Choose File.”5. After choosing your project, copy the URL of your unlisted video upload into theComments field beneath the File Upload section.6. Press “Submit.”Please submit well before the deadline since CourseWorks can sometimes become busy andslow. You can resubmit multiple times. (Note: CourseWorks will save your previous comments,so you don’t need to re-enter your URL if it has not changed, but CourseWorks will clear yourprevious upload from the File Upload section.) You can add a file you previously uploaded byclicking “Click here to find a file you've already uploaded,” expanding the Unfiled folder andselecting your file, then pressing “Submit.”Immediately after uploading your submission to CourseWorks, please check it bydownloading it, creating a new project with which to test it, and reading through itsREADME.txt file. We will not accept as an excuse that you accidentally uploaded thewrong file. We also regret that we cannot accept files that are on your computer or flashdrive, even if they appear to have the correct date.12COMS W4172: 3D User Interfaces and Augmented RealityAssignment 1—Spring 2025Important: Unity projects tend to be large, which means uploading them to CourseWorks cantake longer than expected. Do not wait until the last few minutes to submit your project. Toavoid any last-minute technical issues, give yourself at least an hour of buffer time to ensureyour submission is uploaded successfully and on time.Remember, you can use only a single late day on this assignment, so start early! And have fun!Grading RubricWe will provide a grading rubric shortly.13