<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>CS360 - general</title><link href="https://lums-cs360-web.github.io/lums-cs360/" rel="alternate"/><link href="https://lums-cs360-web.github.io/lums-cs360/feeds/general.atom.xml" rel="self"/><id>https://lums-cs360-web.github.io/lums-cs360/</id><updated>2026-01-19T00:00:00+05:00</updated><subtitle>Copyright @ CMPUT301 - University of Alberta</subtitle><entry><title>Course Outline Spring 2026</title><link href="https://lums-cs360-web.github.io/lums-cs360/general/outline.html" rel="alternate"/><published>2026-01-19T00:00:00+05:00</published><updated>2026-01-19T00:00:00+05:00</updated><author><name>LUMS</name></author><id>tag:lums-cs360-web.github.io,2026-01-19:/lums-cs360/general/outline.html</id><summary type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019 …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019.
status: published
summary: Lecture, Labs, Contact Information, Lecturer, Teaching Assistants, Course Content, Course Description, Prerequisites, Objectives and Learning Outcomes, Course Topics, Learning Resources, Course Schedule, Required Textbook and/or Other Major Course Materials, Recommended or Optional Learning Resources, Course Fees, On-Line Homework Disclaimer, Academic Success Centre, Faculty of Science Student Services, Grade Evaluation, Letter Grades, Statement of Expectations for AI Use, Re-Evaluation of Term Work, Re-examination, Past or Representative Evaluative Material, Labs, Participation, Policies for Late and Missed Work, Late Policy, Non-medical Protected Grounds, Missed Term Work: Assignments, Labs, Quizzes, Project Parts, Midterm Exams, Missed Term Work: Participation, Deferred Final Examination, Required Technology, Labs Assignments and Project, Lecture Participation, Remote Delivery Considerations, Technology Requirements, Recordings of Synchronous Activities, Home-Based Lab Activities, Student Resources for Remote Learning, Student Responsibilities, Academic Integrity and Student Conduct, Contract Cheating and Misuse of University Academic Materials or Other Assets, Contract Cheating: CS Courses, Academic Integrity Issues Related to Minor Formative Assessments, Appropriate Collaboration, Citation, Solo Effort: Participation Exercises, Quizzes, Exams, Confidential: Exams, Consultation: Assignments, Labs, Teamwork: Group Projects, Intellectual Violence, Exam Conduct, Lecture Conduct, Students Eligible for Accessibility-Related Accommodations, Recording and/or Distribution of Course Materials, On-Campus Computer Labs, Recording and/or Distribution of Course Materials, Learning and Working Environment, Feeling Stressed, Anxious, or Upset?, Student Self-Care Guide, Land Acknowledgement, Administrative, Policy about Course Outlines, Disclaimer, Update History, Copyright&lt;/p&gt;
&lt;hr&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#course-instructors"&gt;Course Instructors&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#dr-abdul-ali-bangash"&gt;Dr. Abdul Ali Bangash&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#dr-suleman-shahid"&gt;Dr. Suleman Shahid&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#safa-salam"&gt;Safa Salam&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#lecture-information"&gt;Lecture Information&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#labs-online-615pm-to-830pm-wedthur"&gt;Labs: Online 6:15pm to 8:30pm Wed/Thur&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;CS360: Software Engineering&lt;/strong&gt;  &lt;br&gt;
&lt;strong&gt;Spring 2026&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id="course-instructors"&gt;Course Instructors&lt;/h4&gt;
&lt;h5 id="dr-abdul-ali-bangash"&gt;Dr. Abdul Ali Bangash&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Email:&lt;/strong&gt; &lt;a href="mailto:abdulali@lums.edu.pk"&gt;abdulali@lums.edu.pk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Office:&lt;/strong&gt; 9-G20A  &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Office Hours:&lt;/strong&gt; TBA  &lt;/li&gt;
&lt;/ul&gt;
&lt;h5 id="dr-suleman-shahid"&gt;Dr. Suleman Shahid&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Email:&lt;/strong&gt; &lt;a href="mailto:suleman.shahid@lums.edu.pk"&gt;suleman.shahid@lums.edu.pk&lt;/a&gt;  &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Office:&lt;/strong&gt; 9-G46A  &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Office Hours:&lt;/strong&gt; TBA  &lt;/li&gt;
&lt;/ul&gt;
&lt;h5 id="safa-salam"&gt;Safa Salam&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Email:&lt;/strong&gt; &lt;a href="mailto:safa.salam@lums.edu.pk"&gt;safa.salam@lums.edu.pk&lt;/a&gt;  &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Office:&lt;/strong&gt; 9-G48 &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Office Hours:&lt;/strong&gt; Mon/Wed 10-12pm Fri 3-5PM &lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id="lecture-information"&gt;Lecture Information&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Lecture Room:&lt;/strong&gt; SDSB B3  &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lecture Time:&lt;/strong&gt; Tuesday &amp;amp; Thursday, 01:00 PM – 02:15 PM  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Teaching Assistant(s):&lt;/strong&gt; Available on LMS &lt;/p&gt;
&lt;h4 id="labs-online-615pm-to-830pm-wedthur"&gt;&lt;strong&gt;Labs:&lt;/strong&gt; Online 6:15pm to 8:30pm Wed/Thur&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;COURSE CONTENT&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Calendar Description:&lt;/strong&gt; &lt;br&gt;
As an introduction to software engineering, this course is about building software effectively. You will apply good practices, effective design techniques, and development tools within a team project to create an application with a graphical user interface.&lt;/p&gt;
&lt;p&gt;The focus is largely practical, with broad coverage in topics such as: object-oriented design, user interfaces, unit testing, design patterns, and refactoring.&lt;/p&gt;
&lt;p&gt;Communication skills, team dynamics, working with a "customer", and creativity are also important factors in the course project. The knowledge, skills, and experience you gain will be invaluable in your future software development projects.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Course Objectives and Expected Learning Outcomes:&lt;/strong&gt;&lt;br&gt;
We will learn about applying software engineering concepts to design and implement interactive applications.&lt;/p&gt;
&lt;p&gt;One effective way to build such applications is to apply object-oriented design and use software components. To be useful to end users, the design of these applications must also be guided by usability principles. The course involves a team project in building a well-designed Java/Android application with a sophisticated graphical user interface.&lt;/p&gt;
&lt;p&gt;By the end of this course, you will have a strong background in basic software engineering concepts. Also, you will have the skills to implement interactive applications in Android. You will learn to propose and think critically about software and user interface designs.&lt;/p&gt;
&lt;p&gt;Students are expected to participate in all classes and labs.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;LEARNING RESOURCES&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Required Course Materials:&lt;/strong&gt;&lt;br&gt;
This course does not have a required textbook. There are a number of excellent resources for this course, available as electronic books or through open access on the Web. See the course LMS for links.&lt;/p&gt;
&lt;p&gt;Images reproduced in lecture slides have been included under section 29 of the Copyright Act, as fair dealing for research, private study, criticism, or review. Further distribution or uses may infringe copyright on these images.&lt;/p&gt;
&lt;p&gt;In addition to fair dealing, the Copyright Act specifically exempts projected displays by educational institutions for the purposes of education or training on the premises of the education institution.&lt;/p&gt;
&lt;p&gt;Copyright regulations, however, prohibit me from distributing complete copies of the lecture slides on the course site.&lt;/p&gt;
&lt;p&gt;You may assume that any code examples we provide to you are public domain and free for you to take without attribution, unless they are licensed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Recommended or Optional Learning Resources:&lt;/strong&gt;&lt;br&gt;
See the resources page on the course webpage.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Course Schedule &amp;amp; Assigned Readings:&lt;/strong&gt;&lt;br&gt;
See the online live schedule here: &lt;a href="https://docs.google.com/spreadsheets/d/1WXOvrmoseOKpqhYd16F1AkesHH3Ew_GlPVFuwbTS_4Y/edit?usp=sharing"&gt;https://docs.google.com/spreadsheets/d/1WXOvrmoseOKpqhYd16F1AkesHH3Ew_GlPVFuwbTS_4Y/edit?usp=sharing&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Other Course Fees:&lt;/strong&gt;&lt;br&gt;
Students will be required to use the online service Firebase in order to complete the coursework and course project. The expected fees are $0, however, Firebase may assess fees if storage, bandwidth, user, or operation limits are exceeded. One member of the group will be required to supply payment information. It is the responsibility of the student to pay for any Firebase charges. If you are unable to pay these fees, you must contact your TA and instructor immediately. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;On-Line Homework Disclaimer:&lt;/strong&gt; &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Online homework is a component of this course and is provided by a third-party company. Please be aware that this company will be storing assessment information that may be associated with you. As a way to protect your personal information, you may be assigned a random ID to enter into the system. Only the random ID, performance on the online homework, and the affiliation to the LUMS for this random ID will be conveyed to the company. You are not required to provide any additional personal information to this company. If you have concerns about this, please contact the instructor of the course.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Firebase (Google) - See "Course Fees" above.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Registration in the system and any monetary transactions are of your own accord and not the responsibility of the University.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Students should be mindful of protecting their personal information and should be aware of how their personal information might be used and/or shared.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Students MUST NOT use their LUMS email to register into the system and instead should use a non-identifying email address or account.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;REMOTE DELIVERY CONSIDERATIONS&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hybrid Synchronous Delivery:&lt;/strong&gt;&lt;br&gt;
There are no online lectures or recorded lectures. Lectures are in person.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GRADE EVALUATION&lt;/strong&gt;&lt;/p&gt;
&lt;!-- | Assessment | Weight | Collaboration Policy | Date |
| :---- | ----- | ----- | ----- |
| Participation | 8% | Solo Effort | Most Lectures |
| Labs | 5% | Consultation | Fridays 5:00pm |
| Assignment 0 | 1% | Consultation | \~ Week 3 - 2025-09-19 5pm |
| Project Part 0 | 1% | Teamwork | \~ Week 3 - 2025-09-19 5pm |
| Assignment 1 | 8% | Consultation | \~ Week 4 - 2025-10-01 5pm|
| Project Part 1 | 1% | Teamwork | \~ Week 4 - 2025-09-30 5pm |
| Project Part 2 | 5% | Teamwork | \~ Week 6 -  2025-10-14 5pm|
| Project Part 3 | 10% | Teamwork | \~ Week 9 - 2025-11-07 5pm |
| Project Part 4 | 16% | Teamwork | \~ Week 13 - 2025-12-01 5pm |
| Midterms | 15% x 3 \= 45% | Confidential | MT1 \~ Week  4 2025-09-26 MT2 \~ Week  8 2025-10-24 MT3 \~ Week 14 2025-12-05 | --&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: left;"&gt;Assessment&lt;/th&gt;
&lt;th style="text-align: left;"&gt;Weight&lt;/th&gt;
&lt;th style="text-align: left;"&gt;Collaboration Policy&lt;/th&gt;
&lt;th style="text-align: left;"&gt;Date&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Participation&lt;/td&gt;
&lt;td style="text-align: left;"&gt;8%&lt;/td&gt;
&lt;td style="text-align: left;"&gt;Solo Effort&lt;/td&gt;
&lt;td style="text-align: left;"&gt;Most Lectures&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Labs&lt;/td&gt;
&lt;td style="text-align: left;"&gt;5%&lt;/td&gt;
&lt;td style="text-align: left;"&gt;Consultation&lt;/td&gt;
&lt;td style="text-align: left;"&gt;Tuesdays 5:00pm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Assignment 0&lt;/td&gt;
&lt;td style="text-align: left;"&gt;1%&lt;/td&gt;
&lt;td style="text-align: left;"&gt;Consultation&lt;/td&gt;
&lt;td style="text-align: left;"&gt;~ Week 3 - 2026-02-05 5pm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Project Part 0&lt;/td&gt;
&lt;td style="text-align: left;"&gt;1%&lt;/td&gt;
&lt;td style="text-align: left;"&gt;Teamwork&lt;/td&gt;
&lt;td style="text-align: left;"&gt;~ Week 3 - 2026-02-05 5pm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Assignment 1&lt;/td&gt;
&lt;td style="text-align: left;"&gt;8%&lt;/td&gt;
&lt;td style="text-align: left;"&gt;Consultation&lt;/td&gt;
&lt;td style="text-align: left;"&gt;~ Week 5 - 2026-02-17 5pm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Project Part 1&lt;/td&gt;
&lt;td style="text-align: left;"&gt;1%&lt;/td&gt;
&lt;td style="text-align: left;"&gt;Teamwork&lt;/td&gt;
&lt;td style="text-align: left;"&gt;~ Week 5 - 2026-02-16 5pm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Project Part 2&lt;/td&gt;
&lt;td style="text-align: left;"&gt;5%&lt;/td&gt;
&lt;td style="text-align: left;"&gt;Teamwork&lt;/td&gt;
&lt;td style="text-align: left;"&gt;~ Week 8 - 2026-03-10 5pm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Project Part 3&lt;/td&gt;
&lt;td style="text-align: left;"&gt;10%&lt;/td&gt;
&lt;td style="text-align: left;"&gt;Teamwork&lt;/td&gt;
&lt;td style="text-align: left;"&gt;~ Week 10 - 2026-03-26 5pm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Project Part 4&lt;/td&gt;
&lt;td style="text-align: left;"&gt;16%&lt;/td&gt;
&lt;td style="text-align: left;"&gt;Teamwork&lt;/td&gt;
&lt;td style="text-align: left;"&gt;~ Week 14 - 2026-04-19 5pm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Midterms&lt;/td&gt;
&lt;td style="text-align: left;"&gt;45%&lt;/td&gt;
&lt;td style="text-align: left;"&gt;Confidential&lt;/td&gt;
&lt;td style="text-align: left;"&gt;MT1 - 20% - 2026-03-12&lt;br&gt;MT2 - 25% - 2026-04-23&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Grades are unofficial until approved by the Department and/or Faculty offering the course.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Midterm Dates&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;50 minute exams at:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Midterm 1&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;March 12, 2026 &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Midterm 2&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;April 23, 2026 &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Re-examination:&lt;/strong&gt; &lt;br&gt;
There is no possibility of a re-examination in this course.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Course Grades Obtained by Undergraduate Students&lt;/strong&gt;:&lt;br&gt;
This table reflects the GPA Point Value and Descriptor (e.g., Excellent, Good) for each Letter Grade.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: left;"&gt;Descriptor&lt;/th&gt;
&lt;th style="text-align: left;"&gt;Letter Grade&lt;/th&gt;
&lt;th style="text-align: left;"&gt;Grade Point Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Excellent&lt;/td&gt;
&lt;td style="text-align: left;"&gt;A+&lt;/td&gt;
&lt;td style="text-align: left;"&gt;4.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Excellent&lt;/td&gt;
&lt;td style="text-align: left;"&gt;A&lt;/td&gt;
&lt;td style="text-align: left;"&gt;4.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Excellent&lt;/td&gt;
&lt;td style="text-align: left;"&gt;A-&lt;/td&gt;
&lt;td style="text-align: left;"&gt;3.7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Good&lt;/td&gt;
&lt;td style="text-align: left;"&gt;B+&lt;/td&gt;
&lt;td style="text-align: left;"&gt;3.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Good&lt;/td&gt;
&lt;td style="text-align: left;"&gt;B&lt;/td&gt;
&lt;td style="text-align: left;"&gt;3.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Good&lt;/td&gt;
&lt;td style="text-align: left;"&gt;B-&lt;/td&gt;
&lt;td style="text-align: left;"&gt;2.7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Satisfactory&lt;/td&gt;
&lt;td style="text-align: left;"&gt;C+&lt;/td&gt;
&lt;td style="text-align: left;"&gt;2.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Satisfactory&lt;/td&gt;
&lt;td style="text-align: left;"&gt;C&lt;/td&gt;
&lt;td style="text-align: left;"&gt;2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Satisfactory&lt;/td&gt;
&lt;td style="text-align: left;"&gt;C-&lt;/td&gt;
&lt;td style="text-align: left;"&gt;1.7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Poor&lt;/td&gt;
&lt;td style="text-align: left;"&gt;D+&lt;/td&gt;
&lt;td style="text-align: left;"&gt;1.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Minimal Pass&lt;/td&gt;
&lt;td style="text-align: left;"&gt;D&lt;/td&gt;
&lt;td style="text-align: left;"&gt;1.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Failure&lt;/td&gt;
&lt;td style="text-align: left;"&gt;F or F4&lt;/td&gt;
&lt;td style="text-align: left;"&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Note: F4 denotes eligibility of a student to apply for a re-examination in a course.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Course Grades Obtained by Graduate Students:&lt;/strong&gt;&lt;br&gt;
This table reflects the GPA Point Value and Descriptor (e.g., Excellent, Good) for each Letter Grade.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: left;"&gt;Descriptor&lt;/th&gt;
&lt;th style="text-align: left;"&gt;Letter Grade&lt;/th&gt;
&lt;th style="text-align: left;"&gt;Grade Point Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Excellent&lt;/td&gt;
&lt;td style="text-align: left;"&gt;A+&lt;/td&gt;
&lt;td style="text-align: left;"&gt;4.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Excellent&lt;/td&gt;
&lt;td style="text-align: left;"&gt;A&lt;/td&gt;
&lt;td style="text-align: left;"&gt;4.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Excellent&lt;/td&gt;
&lt;td style="text-align: left;"&gt;A-&lt;/td&gt;
&lt;td style="text-align: left;"&gt;3.7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Good&lt;/td&gt;
&lt;td style="text-align: left;"&gt;B+&lt;/td&gt;
&lt;td style="text-align: left;"&gt;3.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Good&lt;/td&gt;
&lt;td style="text-align: left;"&gt;B&lt;/td&gt;
&lt;td style="text-align: left;"&gt;3.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Satisfactory&lt;/td&gt;
&lt;td style="text-align: left;"&gt;B-&lt;/td&gt;
&lt;td style="text-align: left;"&gt;2.7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Satisfactory&lt;/td&gt;
&lt;td style="text-align: left;"&gt;C+&lt;/td&gt;
&lt;td style="text-align: left;"&gt;2.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Failure&lt;/td&gt;
&lt;td style="text-align: left;"&gt;C&lt;/td&gt;
&lt;td style="text-align: left;"&gt;2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Failure&lt;/td&gt;
&lt;td style="text-align: left;"&gt;C-&lt;/td&gt;
&lt;td style="text-align: left;"&gt;1.7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Failure&lt;/td&gt;
&lt;td style="text-align: left;"&gt;D+&lt;/td&gt;
&lt;td style="text-align: left;"&gt;1.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Failure&lt;/td&gt;
&lt;td style="text-align: left;"&gt;D&lt;/td&gt;
&lt;td style="text-align: left;"&gt;1.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;Failure&lt;/td&gt;
&lt;td style="text-align: left;"&gt;F&lt;/td&gt;
&lt;td style="text-align: left;"&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Statement of Expectations for AI Use:&lt;/strong&gt;&lt;br&gt;
You MUST not submit work by LLMs as your own, that is plagiarism. This also applies to other "AI" and Generative Models: ChatGPT, Lex, Page, DALL-E2, Google BARD/Gemini, Microsoft Bing/Copilot, and others. If you use LLMs you must cite it. This includes the corporation that made the AI, the AI, Subject, and Date. For example:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;// The following function is from Microsoft, Copilot, &amp;quot;How do I write a merge sort in JavaScript?&amp;quot;, 2023-08-31&lt;/span&gt;

&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;mergeSort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;array&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;If you use LLMs you must cite it, but it's probably better to Google what it tells you and find a real citation because:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;LLMs like ChatGPT are wrong a lot.&lt;/strong&gt; It does not understand computer science. It understands how to form sentences and paragraphs well enough to be convincing, but it doesn't actually understand what anything it is saying means. When it has the choice between two answers, with opposite meanings, it will pick the answer that looks more like things it has seen before, not the answer that is more correct. This means you need to double-check that what it tells you is actually correct.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;StackOverflow is always a better resource&lt;/strong&gt; than Large Language Models such as ChatGPT, Copilot, Bard/Gemini, etc., but of course if you use code from StackOverflow or any other website, &lt;strong&gt;you must cite it.&lt;/strong&gt; This is because other human programmers will usually check and downvote, remove, or fix bad information on StackOverflow. No one is checking the output of LLMs: if an LLM lies to you, no one will ever know.&lt;/p&gt;
&lt;p&gt;ChatGPT and similar services are recording everything you tell it, and tracking you. Using ChatGPT/Bing/Bard etc. they are recording everything you say and how the LLM responds to you. There is no privacy.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChatGPT example from another course:  &lt;/li&gt;
&lt;li&gt;Me: "What is the difference between the b and j pseudoinstruction in RISC-V?"  &lt;/li&gt;
&lt;li&gt;ChatGPT: "... The b instruction is actually a shorthand for the more general beq (branch if equal) instruction, which compares two registers and branches if they are equal. However, &amp;gt; &amp;gt; in the case of b, one of the registers is always x0 (the zero register), so the comparison &amp;gt; is always false, effectively causing an unconditional jump. ...the key difference between b &amp;gt; and j is that b is a relative branch instruction that jumps to a location within a limited range, while j is an absolute jump instruction that can jump to any address within the range of the program counter."  &lt;/li&gt;
&lt;li&gt;There are 3 problems with this answer:  &lt;/li&gt;
&lt;li&gt;b is not shorthand for beq: RARS replaces it with jal -- the actual replacement depends on the assembler used and the situation it is used in.  &lt;/li&gt;
&lt;li&gt;This also makes ChatGPT's conclusion about relative limited range jumps and absolute jumps wrong. All jumps and branches in RISC-V are relative, short range jumps except jalr. RARS also (at least in every case I've seen) translates j to jal, not jalr, and jal is also a short-range, relative jump.  &lt;/li&gt;
&lt;li&gt;If b gets translated to beq x0, Y, label then what guarantees that the other register isn't also zero? The comparison with beq x0, Y cannot always be false, despite what ChatGPT claimed. This really doesn't make any sense. It would make more sense for it to be translated to bne x0, x0, label ... but that's the opposite instruction of what ChatGPT claimed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Re-evaluation of Term Work:&lt;/strong&gt;&lt;br&gt;
Any questions or concerns about marks on a particular assignment must be brought to the attention of the instructor &lt;em&gt;(not a TA)&lt;/em&gt; within 7 calendar days of its return date. After that, we will not consider remarking or re-evaluating the work. So do not expect anyone to re-evaluate all the work you did all term long in the hopes of getting a higher final grade.&lt;/p&gt;
&lt;p&gt;However, clerical errors such as incorrectly computing or recording a mark may be raised at any time prior to 2 business days following the final exam. It is the student's responsibility to confirm that their term work has been recorded properly.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;POLICIES FOR LATE AND MISSED WORK&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Late Policies:&lt;/strong&gt;&lt;/p&gt;
&lt;!-- **Absence Form:**  
This course uses a Google form to request excused absences for term work. This form needs to be filled out by students if they wish to request an excused absence for any deliverable. Emails to instructors or TAs **will not be accepted** as timely notification for an excused absence. --&gt;

&lt;p&gt;&lt;strong&gt;Missed Term Work/Final Exam Due to Non-medical Protected Grounds (e.g., religious beliefs):&lt;/strong&gt;&lt;br&gt;
When a term assessment or final exam presents a conflict based on non-medical protected grounds, students must apply for a petition from OSA. Students can review their eligibility and choose the application process specific for Accommodations Based on Non-medical Protected Grounds.&lt;/p&gt;
&lt;p&gt;It is imperative that students review the dates of all course assessments upon receipt of the course syllabus, and apply AS SOON AS POSSIBLE to ensure the timely application of the accommodation. Students who apply later in the term may experience unavoidable delays in the processing of the application, which can affect the accommodation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Missed Labs:&lt;/strong&gt; &lt;br&gt;
Labs are due Friday at 5PM on the same week the lab was presented. Project meetings are due at the time of the meeting, and they are included in the lab mark. Failure to attend and actively participate in project meetings will result in a lab mark of zero.&lt;/p&gt;
&lt;p&gt;The 2 lowest marks for Labs (including project meetings) will be dropped when calculating the course mark. No late labs will be accepted. Failure to complete a lab (or to attend a project meeting) on time for any reason will result in a mark of zero. Please note that you can miss 2 labs (or project meetings) without penalty.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Missed Lecture Participation:&lt;/strong&gt;&lt;br&gt;
Participation exercises will be available at most lectures.&lt;/p&gt;
&lt;p&gt;The 6 lowest marks for lecture participation will be dropped when calculating the course mark. No late participation will be accepted. Failure to complete a participation exercise on time for any reason will result in a mark of zero. Please note that you can miss 6 lectures without penalty.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Missed Assignments, Project Parts, Quizzes, Midterm Exams:&lt;/strong&gt;&lt;br&gt;
A student who cannot complete an assignment, project part, quiz, or midterm exam, due to incapacitating illness, severe domestic affliction or other compelling reasons must contact the instructor within two business days of missing the assessment, or as soon as possible, to request an excused absence using the absence form. If an excused absence is granted, then the deliverable weight will be split and shared over other deliverables in the same category. If a Midterm exam is missed, then its weight will be split and shared over the other Midterm exams. An excused absence is a privilege and not a right. There is no guarantee that an absence will be excused. Misrepresentation of facts to gain an excused absence is a serious breach of the Student Academic Integrity Policy. In all cases, instructors may request adequate documentation to substantiate the reason for the absence at their discretion.&lt;/p&gt;
&lt;p&gt;Failure to complete an assignment or contribute to a project part without an excused absence will result in a raw score of zero or a proportional score reduction.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Additional information regarding missed Midterm Exams:&lt;/strong&gt;
If Midterm 3 is missed, then it will be replaced by a deferred exam that will include an oral examination component. The time of this deferred + oral exam will be determined individually between student and instructor. &lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;STUDENT RESPONSIBILITIES&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Academic Integrity and Student Conduct:&lt;/strong&gt; &lt;br&gt;
LUMS is committed to the highest standards of academic integrity and honesty, as well as maintaining a learning environment that fosters the safety, security, and inherent dignity of each member of the community, ensuring students conduct themselves accordingly. Students are expected to be familiar with the standards of academic honesty and appropriate student conduct, and to uphold the policies of the University in this respect.&lt;/p&gt;
&lt;p&gt;Students are particularly urged to familiarize themselves with the academic policy, and avoid any behaviour that could potentially result in suspicions of academic misconduct (e.g., cheating, plagiarism, misrepresentation of facts, participation in an offence) and non-academic misconduct (e.g., discrimination, harassment, physical assault). Academic and non-academic misconduct are taken very seriously and can result in suspension or expulsion from the University.&lt;/p&gt;
&lt;p&gt;All forms of academic dishonesty are unacceptable at the University. Unfamiliarity of the rules, procrastination or personal pressures are not acceptable excuses for committing an offence. Listen to your instructor, be a good person, ask for help when you need it, and do your own work -- this will lead you toward a path to success. Any academic integrity concern in this course will be reported to the College of Natural and Applied Sciences.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;"Integrity is doing the right thing, even when no one is watching"&lt;/em&gt; -- C.S. Lewis&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Contract Cheating and Misuse of University Academic Materials or Other Assets:&lt;/strong&gt;&lt;br&gt;
Contract cheating describes the form of academic dishonesty where students get academic work completed on their behalf, which they submit for academic credit as if they had created it themselves. Contract cheating may or may not involve the payment of a fee to a third party, who then creates the work for the student.&lt;/p&gt;
&lt;p&gt;Examples include:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Getting someone to write an essay or research paper for you.  &lt;/li&gt;
&lt;li&gt;Getting someone to complete your assignment or exam for you.  &lt;/li&gt;
&lt;li&gt;Posting an essay, assignment, or exam question to a tutorial or study website; the question is answered by a "content expert", then you copy it and submit it as your own answer.  &lt;/li&gt;
&lt;li&gt;Posting your solutions to a tutorial/study website, public server, or group chat and/or copying solutions that were posted to a tutorial/study website, public server, or group chat.  &lt;/li&gt;
&lt;li&gt;Sharing your login credentials to the course management system (e.g., Canvas) and allowing someone else to complete your assignment or exam remotely.  &lt;/li&gt;
&lt;li&gt;Using an artificial intelligence bot or text generator tool to complete your essay, research paper, assignment, or exam solutions for you (without the instructor's permission).  &lt;/li&gt;
&lt;li&gt;Using an online grammar checker to "fix" your essay, research paper, assignment, or exam solutions for you (without the instructor's permission).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Contract cheating companies thrive on making students believe that they cannot succeed without their help; they attempt to convince students that cheating is the only way to succeed.&lt;/p&gt;
&lt;p&gt;Uploading the instructor's teaching materials (e.g., course outlines, lecture slides, assignment, or exam questions, etc.) to tutorial, study, or note-sharing websites or public servers is a copyright infringement and constitutes the misuse of University academic materials or other assets. Receiving assignment solutions or answers to exam questions from an unauthorized source puts you at risk of receiving inaccurate information.&lt;/p&gt;
&lt;p&gt;Receiving assignment solutions or answers to exam questions from an unauthorized source puts you at risk of receiving inaccurate information.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Additional Examples of Contract Cheating:&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: left;"&gt;Logging in as someone else Sharing your login credentials Sharing your anonymous ID Using someone else's anonymous ID Allowing someone else to log in as you Representing yourself as someone else Having someone else represent themselves as you&lt;/th&gt;
&lt;th style="text-align: left;"&gt;On other LUMS services and linked services: Zoom gmail Google Chat, Drive, ... Lab computers Wi-Fi ... On an external service, website, or app: repository hosting services: GitHub, GitHub Classroom, Bitbucket, GitLab, ... live quiz services: Mentimeter, ... Textbook websites/apps KnowledgeTree/MasteryGrids online tutorials online practice systems online homework systems&lt;/th&gt;
&lt;th style="text-align: left;"&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Misrepresenting authorship to a version control system such as git:  &lt;/li&gt;
&lt;li&gt;Forging git commit metadata (author, time, etc.)  &lt;/li&gt;
&lt;li&gt;Creating git commits where the author recorded did not create the changes being committed.  &lt;/li&gt;
&lt;li&gt;...  &lt;/li&gt;
&lt;li&gt;Submitting participation exercises for someone else.  &lt;/li&gt;
&lt;li&gt;Representing yourself as someone else, or having someone else represent themselves as you to an instructor, TA, or other LUMS employee.  &lt;/li&gt;
&lt;li&gt;Attending a lecture/lab/seminar for someone else.  &lt;/li&gt;
&lt;li&gt;Having someone else attend a lecture/lab/seminar for you.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Appropriate Collaboration:&lt;/strong&gt;&lt;br&gt;
Students need to be able to recognize when they have crossed the line between appropriate collaboration and inappropriate collaboration. If students are unsure, they need to ask instructors to clarify what is allowed and what is not allowed.&lt;/p&gt;
&lt;p&gt;Here are some tips to avoid copying on assessments:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Do not write down something that you cannot explain to your instructor.  &lt;/li&gt;
&lt;li&gt;When you are helping other students, avoid showing them your work directly. Instead, explain your solution verbally. Allowing your work to be copied is also considered inappropriate collaboration.  &lt;/li&gt;
&lt;li&gt;It is also possible that verbally discussing the solution in too much detail may result in written responses that are too similar. Try to keep discussions at a general or higher level.  &lt;/li&gt;
&lt;li&gt;If you find yourself reading another student's solution, do not write anything down. Once you understand how to solve the problem, remove the other person's work from your sight and then write up the solution to the question yourself. Looking back and forth between someone else's paper and your own paper is almost certainly copying and considered inappropriate collaboration.  &lt;/li&gt;
&lt;li&gt;If the instructor or TA writes down part of a solution in order to help explain it to you or the class, you cannot copy it and hand it in for credit. Treat it the same way you would treat another student's work with respect to copying, that is, remove the explanation from your sight and then write up the solution yourself.  &lt;/li&gt;
&lt;li&gt;There is often more than one way to solve a problem. Choose the method that makes the most sense to you rather than the method that other students happen to use. If none of the ideas in your solution are your own, there is a good chance it will be flagged as copying.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For programming assignments, powerful software tools are used to detect plagiarism. When the software tools indicate that there is similarity between two submissions, the submissions are reviewed by the instructor or teaching assistant. If the possibility that the standards for academic honesty were violated is confirmed, an investigation is started. Eventually the submitted solutions may be forwarded to the Faculty of Science Associate Dean of Students for further investigation and eventual sanctions.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Each student must be able to verbally describe their exam answers and code, line by line, to a professor or TA, if asked to do so. Your mark may be reduced if you aren't able to explain your own work satisfactorily.  &lt;/li&gt;
&lt;li&gt;For some substantial programming assignments and homework questions, students may discuss the concepts covered by the assignment with other students registered in the course as long as they do not share actual solutions or programming code.  &lt;/li&gt;
&lt;li&gt;All suspected cases of plagiarism will be forwarded to the Dean's office and thoroughly investigated. Receiving a low mark for work not completed is a far superior alternative to this process and its possible long-term consequences for your career.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All suspected cases of plagiarism and other forms of cheating are immediately referred to the Disciplinary Committee. Please do not put yourself or us into such an unpleasant situation. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Citations:&lt;/strong&gt;&lt;br&gt;
If you include code or ideas from someone who isn't you (including from a Generative AI or LLM) you must cite it. Here are examples of an appropriate citation:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;// The following function is from Microsoft, Copilot, &amp;quot;How do I write a merge sort in JavaScript?&amp;quot;, 2023-08-31&lt;/span&gt;

&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;mergeSort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;array&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;To cite something written by an entity such as a real person you must include the name of the author, the name of the resource, directions to the resource (like a URL). &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;/*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;This&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;was&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;made&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;by&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Gerald&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;gerald&lt;/span&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="n"&gt;example&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;X&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;at&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;https&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;//example/libX/src/lib/X.c 2015 */&lt;/span&gt;

&lt;span class="n"&gt;void&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;scrambleEggs&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Stackoverflow recommends you cite the author, the license, the title of the question, the url to the answer.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="cm"&gt;/* &lt;/span&gt;
&lt;span class="cm"&gt;   Author: Felix Too https://stackoverflow.com/users/4083076/felix-too&lt;/span&gt;
&lt;span class="cm"&gt;   Title: &amp;quot;Failed to install the following Android SDK packages as some licences have not been accepted&amp;quot; error&lt;/span&gt;
&lt;span class="cm"&gt;   Answer: https://stackoverflow.com/a/55641042&lt;/span&gt;
&lt;span class="cm"&gt;   Date: 2019-04-11&lt;/span&gt;
&lt;span class="cm"&gt;   License: CC-BY-SA 4.0 (International)&lt;/span&gt;
&lt;span class="cm"&gt;*/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Collaboration policy definitions:&lt;/strong&gt;&lt;br&gt;
The following are definitions for the different collaboration policies used in this course&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solo Effort:&lt;/strong&gt;&lt;br&gt;
Participation exercises fall under the department's &lt;em&gt;Solo Effort&lt;/em&gt; model unless announced by the instructor. &lt;em&gt;Solo Effort&lt;/em&gt; must be completed by the student registered in the course without external assistance from any individual or organization.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Students may only submit work authored by themselves.  &lt;/li&gt;
&lt;li&gt;Students &lt;strong&gt;may not&lt;/strong&gt; discuss or exchange solutions, steps, strategies, code, links, code, images, videos, output, comments, repositories, answers, etc.  &lt;/li&gt;
&lt;li&gt;Students &lt;strong&gt;may not&lt;/strong&gt; consult with other students on how to solve the problem, unlike the consultation model described below.  &lt;/li&gt;
&lt;li&gt;Students &lt;strong&gt;may not&lt;/strong&gt; submit a participation exercise, quiz, or exam without attending the relevant lecture, lab, seminar, or exam.  &lt;/li&gt;
&lt;li&gt;Students &lt;strong&gt;may not&lt;/strong&gt; share a participation exercise, quiz, or exam link (URL).  &lt;/li&gt;
&lt;li&gt;Students &lt;strong&gt;may not&lt;/strong&gt; represent themselves as someone else, (or have someone else represent themselves as the student) during lectures, labs, seminars, or exams.  &lt;/li&gt;
&lt;li&gt;Including in-person or over Zoom, or any other remote video, voice call, chat, or email service.  &lt;/li&gt;
&lt;li&gt;See Contract Cheating above.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Confidential:&lt;/strong&gt;&lt;br&gt;
Midterms and Final Exams are also &lt;em&gt;Confidential&lt;/em&gt; in addition to &lt;em&gt;Solo Effort&lt;/em&gt; as listed above.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Students &lt;strong&gt;may not&lt;/strong&gt; discuss the contents of the exam, except with instructors.  &lt;/li&gt;
&lt;li&gt;Students are not always able to take the exam at the same time, so do not discuss the contents of the exam even if you have already taken it!  &lt;/li&gt;
&lt;li&gt;No human, computer, electronic assistance is allowed of any sort, including AI chatbots, calculators, tutors, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Consultation:&lt;/strong&gt;&lt;br&gt;
Individual assignments and labs are under the department's Consultation model. That means you may discuss the labs with others, but you must create and submit a solution that is entirely your own work. If you consult with other students, you must list their names in a comment at the top of your submission or in your repository README, along with a brief description of the part(s) of the assignment you discussed.&lt;/p&gt;
&lt;p&gt;How to consult with other students without plagiarizing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Study the Course, Computing Science Department, CNAS, and University policies listed above regarding Academic Integrity.  &lt;/li&gt;
&lt;li&gt;All sources used must be cited.  &lt;/li&gt;
&lt;li&gt;If you use code snippets you must cite them, please see the examples above.  &lt;/li&gt;
&lt;li&gt;All sources of information used, e.g., books, websites, students you talked to etc., must be cited in your submitted file or repo README for each assignment.  &lt;/li&gt;
&lt;li&gt;If student A cites student B, then B should also cite A as consulted.  &lt;/li&gt;
&lt;li&gt;Individually develop your own solution for assignments and exercises. Submit only your own work for evaluation.  &lt;/li&gt;
&lt;li&gt;Each student is responsible for what is handed-in and must be able to explain it.  &lt;/li&gt;
&lt;li&gt;Students may only submit work authored by themselves. Work submitted by a student that is the work of someone else (e.g. another student or a tutor) either in part or in entirety is considered plagiarism.  &lt;/li&gt;
&lt;li&gt;You can freely discuss the steps and solutions with your classmates on a conceptual verbal level.  &lt;/li&gt;
&lt;li&gt;Limit discussion to be among students taking the current course, not students who took in earlier terms or other students. Consultation is a two-way process that benefits both sides.  &lt;/li&gt;
&lt;li&gt;Do not exchange any text, code, images, videos, output, comments, repositories, or detailed (low-level) step-by-step procedures.  &lt;/li&gt;
&lt;li&gt;Do not share solutions.  &lt;/li&gt;
&lt;li&gt;Do not give other students access to your solutions and do not seek access to other's solutions. This is considered plagiarism.  &lt;/li&gt;
&lt;li&gt;Do not show your code to classmates.  &lt;/li&gt;
&lt;li&gt;Do not look at a classmate's code.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Examples of consultation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Acceptable consultation example:  &lt;/li&gt;
&lt;li&gt;Student A has a problem with the code  &lt;/li&gt;
&lt;li&gt;Student A asks Student B for help  &lt;/li&gt;
&lt;li&gt;Student B explains the steps, concepts, or techniques they used to get their code working  &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Student A understands the fix&lt;/strong&gt;  &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Student A can reproduce and explain the fix.&lt;/strong&gt;  &lt;/li&gt;
&lt;li&gt;Student A submits the code  &lt;/li&gt;
&lt;li&gt;Acceptable consultation example:  &lt;/li&gt;
&lt;li&gt;Student A needs to make a grid for a board game program.  &lt;/li&gt;
&lt;li&gt;Student A asks Student B for help.  &lt;/li&gt;
&lt;li&gt;Student B explains that they "used two nested for loops, one for the vertical and one for the horizontal."  &lt;/li&gt;
&lt;li&gt;Student A implements two nested for loops using their own unique code.  &lt;/li&gt;
&lt;li&gt;Student A can use the for loops to fix similar problems, and they &lt;strong&gt;can explain why each piece of code is needed, along with how it works to solve the problem&lt;/strong&gt;.  &lt;/li&gt;
&lt;li&gt;Student A submits the code  &lt;/li&gt;
&lt;li&gt;Unacceptable consultation example:  &lt;/li&gt;
&lt;li&gt;Student A needs to make a grid for a board game program.  &lt;/li&gt;
&lt;li&gt;Student A asks Student B for help.  &lt;/li&gt;
&lt;li&gt;Student B sends the code they used to make the board game grid for their solution.  &lt;/li&gt;
&lt;li&gt;Student A copies Student B's code into their own solution, changing it a little.  &lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Student A submits the code&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Unacceptable plagiarism example:  &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Student A has a problem with the code  &lt;/li&gt;
&lt;li&gt;Student A asks Student B for help  &lt;/li&gt;
&lt;li&gt;Student B provides Student A with the code  &lt;/li&gt;
&lt;li&gt;Student A submits the code&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Teamwork:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;As long as you are a part of a group, you are responsible for everything in the group project, whether you participated in every component or not.  &lt;/li&gt;
&lt;li&gt;A group may only submit work authored by group members or appropriately cited and credited code that does not violate the author's license.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Intellectual Violence:&lt;/strong&gt;&lt;br&gt;
In this course, Intellectual Violence is considered bullying. Intellectual violence is when one teammate uses their skill, knowledge, or experience, to intimidate or control the other teammate(s) rather than sharing and helping them learn. Examples of Intellectual Violence&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Using complex terminology or concepts to make others feel inferior.  &lt;/li&gt;
&lt;li&gt;Dismissing or ridiculing colleagues’ ideas or contributions.  &lt;/li&gt;
&lt;li&gt;Withholding information to maintain a power imbalance.  &lt;/li&gt;
&lt;li&gt;Creating an environment where only certain knowledge or skills are valued.  &lt;/li&gt;
&lt;li&gt;Rejecting contributions without constructive feedback.  &lt;/li&gt;
&lt;li&gt;Imposing overly strict code standards.  &lt;/li&gt;
&lt;li&gt;Ignoring or delaying code reviews, pull requests, or commits.  &lt;/li&gt;
&lt;li&gt;Favouring contributions from certain team members.  &lt;/li&gt;
&lt;li&gt;Using harsh or condescending language in comments, code reviews, pull requests, issues, commit messages, etc.  &lt;/li&gt;
&lt;li&gt;Making contributors feel unwelcome.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Exam Conduct:&lt;/strong&gt;   &lt;/p&gt;
&lt;p&gt;Some key points to be aware of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Your student photo ID is required at exams to verify your identity.  &lt;/li&gt;
&lt;li&gt;Students must arrive at the specified time to take the exam. Once the exam has started, students must remain in the physical in-person or remote environment for at least 30 minutes. Students who arrive more than 30 minutes late for an in-person exam will not be permitted to take the exam. Students who arrive more than 30 minutes late for an online exam may have their exam attempt removed or disqualified by the instructor. In both cases, students may apply for a deferred examination.  &lt;/li&gt;
&lt;li&gt;All cell phones must be turned off and stored in your bags.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- **Accommodations for Students:**  
In accordance with the University of Alberta’s [Discrimination, Harassment, and Duty to Accommodate policy](https://www.ualberta.ca/en/alfresco/uappol/humanresources/discrimination-harassment-and-duty-to-accommodate/policy/discrimination-harassment-and-duty-to-accommodate-policy.pdf), accommodation support is available to eligible students who encounter limitations or restrictions to their ability to perform the daily activities necessary to pursue studies at a post-secondary level due to medical conditions and/or non-medical protected grounds. Accommodations are coordinated through the [Academic Success Centre](https://www.ualberta.ca/current-students/academic-success-centre/index.html), and students can learn more about eligibility on the [Register for Accommodations website](https://www.ualberta.ca/en/current-students/academic-success-centre/accessibility-resources/register/index.html). 

It is recommended that students apply ***AS SOON AS POSSIBLE*** in order to ensure sufficient time to complete accommodation registration and coordination. Students are advised to review and adhere to published deadlines for accommodation approval and for specific accommodation requests (e.g., exam registration submission deadlines). Students who request accommodations less than a month in advance of the academic term for which they require accommodations may experience unavoidable delays or consequences in their academic programs, and may need to consider alternative academic schedules. --&gt;

&lt;p&gt;&lt;strong&gt;Recording and/or Distribution of Course Materials:&lt;/strong&gt;&lt;br&gt;
Audio or video recording, digital or otherwise, of lectures, labs, seminars or any other teaching environment by students is allowed only with the prior written consent of the instructor or as a part of an approved accommodation plan. Student or instructor content, digital or otherwise, created and/or used within the context of the course is to be used solely for personal study, and is not to be used or distributed for any other purpose without prior written consent from the content authors.  &lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; &lt;br&gt;
Any typographical errors in this syllabus are subject to change and will be announced in class and/or posted on the course website. The date of final examinations is set by the Registrar and takes precedence over the final examination date reported in the syllabus.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Copyright&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dr. Abdul Ali Bangash, Department of Computer Science, Lahore University of Management Sciences (LUMS)(2025).&lt;/li&gt;
&lt;li&gt;Dr. Suleman Shahid, Department of Computer Science, Lahore University of Management Sciences (LUMS)(2025). &lt;/li&gt;
&lt;/ul&gt;</content><category term="general"/><category term="outline"/><category term="policy"/><category term="grading"/><category term="contact"/></entry><entry><title>Midterms</title><link href="https://lums-cs360-web.github.io/lums-cs360/general/midterms.html" rel="alternate"/><published>2025-09-09T00:00:00+05:00</published><updated>2025-09-09T00:00:00+05:00</updated><author><name>LUMS</name></author><id>tag:lums-cs360-web.github.io,2025-09-09:/lums-cs360/general/midterms.html</id><summary type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019 …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019.
copied from: Dr Abrahm Hindle (CMPUT301 - University of Alberta)
status: published
summary: Exam Practice Questions&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;The Midterm Exams consist of two exams, each with multiple questions,
taking about 10-20 minutes each. &lt;/p&gt;
&lt;p&gt;The midterm exams are closed book/closed notes. No collaboration
is allowed. Solo and Confidential.No cheat sheet is allowed.&lt;/p&gt;
&lt;h4 id="2026-times"&gt;2026 Times&lt;/h4&gt;
&lt;p&gt;1.5 hr exams:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Midterm 1&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;March 12, 2026 &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Midterm 2&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;April 23, 2026 &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5 id="topics"&gt;Topics&lt;/h5&gt;
&lt;p&gt;The exam topics involve everything covered or presented in class up until the
day of the midterm exam.&lt;/p&gt;
&lt;p&gt;The exam questions are very similar to our in class exercises.&lt;/p&gt;
&lt;h3 id="exam-practice"&gt;Exam Practice&lt;/h3&gt;
&lt;p&gt;Later exams are more directly relevant to your midterms. Answers will
not be provided, but you can post your answers for correction in the
discussion forum on slack.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/PracticeQuestions.pdf"&gt;PQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/Final-2015-Winter.pdf"&gt;W15HFQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/Midterm8.pdf"&gt;F15HMQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/Final-2015-Fall.pdf"&gt;F15HFQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/Midterm9-2016-Fall.pdf"&gt;F16HMQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/Final-2016-Fall.pdf"&gt;F16HFQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/Midterm10-2018-Fall.pdf"&gt;F18HMQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/Final-2018-Fall.pdf"&gt;F18HFQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/Midterm11-2020-Winter.pdf"&gt;W20HMQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/CMPUT301W20B_EB1_Final.pdf"&gt;W20HFQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/CMPUT301-Winter-2021-Midterm.pdf"&gt;W21HM1Q&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/CMPUT301-Winter-2021-Midterm2.pdf"&gt;W21HM2Q&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/CMPUT301-Winter-2021-Midterm3.pdf"&gt;W21HM3Q&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/CMPUT301W22Midterm1.pdf"&gt;W22M1Q&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/CMPUT301W22Midterm2.pdf"&gt;W22M2Q&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/CMPUT301W22Midterm3.pdf"&gt;W22M3Q&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/f22pmq.pdf"&gt;F22PMQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/f22pma.pdf"&gt;F22PMA&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/f22pfq.pdf"&gt;F22PFQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/f22pfa.pdf"&gt;F22PFA&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/f22pf2q.pdf"&gt;F22PF2Q&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/f22pf2a.pdf"&gt;F22PF2A&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/w23am1q1.html"&gt;W23AM1Q1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/w23am1q2.html"&gt;W23AM1Q2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/w23am1q3.html"&gt;W23AM1Q3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/w23am2q1.html"&gt;W23AM2Q1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/w23am2q2.html"&gt;W23AM2Q2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/w23am2q3.html"&gt;W23AM2Q3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/w23am3q1.html"&gt;W23AM3Q1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/w23am3q2.html"&gt;W23AM3Q2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/w23am3q3.html"&gt;W23AM3Q3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/w23hm1q1.html"&gt;W23HM1Q1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/w23hm1q2.html"&gt;W23HM1Q2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/w23hm1q3.html"&gt;W23HM1Q3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/w23hm2q1.html"&gt;W23HM2Q1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/w23hm2q2.html"&gt;W23HM2Q2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/w23hm2q3.html"&gt;W23HM2Q3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/w23hm3q1.html"&gt;W23HM3Q1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/w23hm3q2.html"&gt;W23HM3Q2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/w23hm3q3.html"&gt;W23HM3Q3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/w23hpmq1.html"&gt;W23HPMQ1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice/w23hm1a.html"&gt;W23HM1A&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="general"/><category term="resources"/><category term="reading"/><category term="references"/><category term="videos"/><category term="practice"/><category term="exams"/></entry><entry><title>CS360 Course Fall 2021</title><link href="https://lums-cs360-web.github.io/lums-cs360/general/outline_old.html" rel="alternate"/><published>2024-11-12T00:00:00+05:00</published><updated>2024-11-12T00:00:00+05:00</updated><author><name>LUMS</name></author><id>tag:lums-cs360-web.github.io,2024-11-12:/lums-cs360/general/outline_old.html</id><summary type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019 …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019.
status: published&lt;/p&gt;
&lt;h3 id="cs360-course-outline"&gt;CS360 Course Outline&lt;/h3&gt;
&lt;h4 id="general-information"&gt;General Information&lt;/h4&gt;
&lt;p&gt;Term: Fall 2021
Number of credits: 3 credits&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lecture (E)A1&lt;/strong&gt;
Date and Time: Monday-Wednesday-Friday 11:00-11:50 MT
Location: CCIS L2-190&lt;/p&gt;
&lt;p&gt;Labs start in the second week of classes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lab (E)D01&lt;/strong&gt;
Date and Time: Tuesday 17:00-19:50
Location: CSC B-10&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lab (E)D03&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Date and Time: Wednesday 17:00-19:50
Location: CSC B-02&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lab (E)D04&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Date and Time: Thursday 17:00-19:50
Location: NRE 2-003&lt;/p&gt;
&lt;h4 id="overview"&gt;Overview&lt;/h4&gt;
&lt;p&gt;As an introduction to software engineering, this course is about building software effectively. You will apply good practices, effective design techniques, and development tools within a team project to create an application with a graphical user interface.&lt;/p&gt;
&lt;p&gt;The focus is largely practical, with broad coverage in topics such as: object-oriented design, user interfaces, unit testing, design patterns, and refactoring.&lt;/p&gt;
&lt;p&gt;Communication skills, team dynamics, working with a "customer", and creativity are also important factors in the course project. The knowledge, skills, and experience you gain will be invaluable in your future software development projects.&lt;/p&gt;
&lt;h4 id="objectives"&gt;Objectives&lt;/h4&gt;
&lt;p&gt;We will learn about applying software engineering concepts to design and implement interactive applications.&lt;/p&gt;
&lt;p&gt;One effective way to build such applications is to apply object-oriented design and use software components. To be useful to end users, the design of these applications must also be guided by usability principles. The course involves a team project in building a well-designed Java/Android application with a sophisticated graphical user interface.&lt;/p&gt;
&lt;p&gt;By the end of this course, you will have a strong background in basic software engineering concepts. Also, you will have the skills to implement interactive applications in Android. You will learn to propose and think critically about software and user interface designs.&lt;/p&gt;
&lt;p&gt;Students are expected to participate in all classes and labs.&lt;/p&gt;
&lt;h4 id="course-topics"&gt;Course Topics&lt;/h4&gt;
&lt;p&gt;Software engineering:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;object-oriented analysis and development&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Unified Modeling Language&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;software processes&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;requirements&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;testing&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;design patterns&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;refactoring&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;tools&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;revision control&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="course-work-and-evaluation"&gt;Course Work and Evaluation&lt;/h4&gt;
&lt;p&gt;All assignments and project parts are due at 16:00 MT on the due date.&lt;/p&gt;
&lt;p&gt;Exams are synchronized.&lt;/p&gt;
&lt;p&gt;In the labs, the TAs will explain the submission process for lab exercises (typically online). Late submissions will not be accepted.&lt;/p&gt;
&lt;p&gt;|Individual Work  | Assignment 0| required | September 20 | Consultation | &lt;/p&gt;
&lt;!-- @LT-IGNORE:CONSECUTIVE_SPACES@ @LT-IGNORE:WHITESPACE_RULE@ --&gt;
&lt;p&gt;|Individual Work  | Assignment 1|8%        | September 27 | Consultation |&lt;/p&gt;
&lt;!-- @LT-IGNORE:CONSECUTIVE_SPACES@ @LT-IGNORE:WHITESPACE_RULE@ --&gt;
&lt;p&gt;|Individual Work  | Assignment 2|8%        | November 15 | Consultation | &lt;/p&gt;
&lt;!-- @LT-IGNORE:CONSECUTIVE_SPACES@ @LT-IGNORE:WHITESPACE_RULE@ --&gt;
&lt;p&gt;|Individual Work  | Participation|8%        | throughout | Consultation |&lt;/p&gt;
&lt;!-- @LT-IGNORE:CONSECUTIVE_SPACES@ @LT-IGNORE:WHITESPACE_RULE@ --&gt;
&lt;p&gt;|Individual Work  | Final Exam   |36%        | see &lt;a href="https://www.beartracks.ualberta.ca/"&gt;BearTracks&lt;/a&gt; | Consultation | &lt;/p&gt;
&lt;!-- @LT-IGNORE:CONSECUTIVE_SPACES@ @LT-IGNORE:WHITESPACE_RULE@ --&gt;
&lt;p&gt;|-------------------------------------------------------------------------|&lt;/p&gt;
&lt;!-- @LT-IGNORE:CONSECUTIVE_SPACES@ @LT-IGNORE:WHITESPACE_RULE@ --&gt;
&lt;p&gt;|Team Work  | Project Part 0 |required         | September 24 | Teamwork |&lt;/p&gt;
&lt;!-- @LT-IGNORE:CONSECUTIVE_SPACES@ @LT-IGNORE:WHITESPACE_RULE@ --&gt;
&lt;p&gt;|Team Work  | Project Part 1 |required         | October 1 | Teamwork |&lt;/p&gt;
&lt;!-- @LT-IGNORE:CONSECUTIVE_SPACES@ @LT-IGNORE:WHITESPACE_RULE@ --&gt;
&lt;p&gt;|Team Work  | Project Part 2 |8%               | October 15 | Teamwork |&lt;/p&gt;
&lt;!-- @LT-IGNORE:CONSECUTIVE_SPACES@ @LT-IGNORE:WHITESPACE_RULE@ --&gt;
&lt;p&gt;|Team Work  | Project Part 3 |12%               | November 5 | Teamwork |&lt;/p&gt;
&lt;!-- @LT-IGNORE:CONSECUTIVE_SPACES@ @LT-IGNORE:WHITESPACE_RULE@ --&gt;
&lt;p&gt;|Team Work  | Project Part 4 |20%               | November 29 | Teamwork |&lt;/p&gt;
&lt;!-- @LT-IGNORE:CONSECUTIVE_SPACES@ @LT-IGNORE:WHITESPACE_RULE@ --&gt;
&lt;p&gt;|Total      |                 |100%             |             |          |&lt;/p&gt;
&lt;!-- @LT-IGNORE:CONSECUTIVE_SPACES@ @LT-IGNORE:WHITESPACE_RULE@ --&gt;

&lt;h5 id="exams"&gt;Exams:&lt;/h5&gt;
&lt;p&gt;&lt;strong&gt;There is no possibility of a reexamination in this course.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The final exam is tentatively scheduled for: Monday, December 13 starting at 14:00.&lt;/p&gt;
&lt;p&gt;You must verify the date and time on BearTracks when the final exam schedule is posted.&lt;/p&gt;
&lt;h5 id="grade-evaluation"&gt;Grade Evaluation:&lt;/h5&gt;
&lt;p&gt;The individualized project score depends on the following main factors: how well your team did, the peer review forms of your team members, your completion of peer review forms, and the instructor and TAs' assessment of your individual contribution.&lt;/p&gt;
&lt;p&gt;The conversion of your total numeric coursework score to a final grade will be based on interpreting the guidelines of the descriptors, letter grading system, and four-point scale as defined in the University Calendar §23.4. That is, grades are assigned on what we judge to be "failure", "minimal pass", "poor", "satisfactory", "good", or "excellent" performance in the context of the class.&lt;/p&gt;
&lt;p&gt;We do not use a particular distribution to do the conversion, but instead use our judgement of how your score reflects mastery of the course material. That said, you generally need to be above the median to earn at least a 3.0 or B.&lt;/p&gt;
&lt;h4 id="course-materials"&gt;Course Materials&lt;/h4&gt;
&lt;p&gt;This course does not have a required textbook. There are a number of excellent resources for this course, available as electronic books or through open access on the Web. See the course eClass site for links.&lt;/p&gt;
&lt;p&gt;Images reproduced in lecture slides have been included under section 29 of the Copyright Act, as fair dealing for research, private study, criticism, or review. Further distribution or uses may infringe copyright on these images.&lt;/p&gt;
&lt;p&gt;In addition to fair dealing, the Copyright Act specifically exempts projected displays by educational institutions for the purposes of education or training on the premises of the education institution.&lt;/p&gt;
&lt;p&gt;Copyright regulations, however, prohibit me from distributing complete copies of the lecture slides on the course eClass site.&lt;/p&gt;
&lt;p&gt;You may assume that any code examples we provide to you are public domain and free for you to take without attribution, unless they are licensed.&lt;/p&gt;
&lt;p&gt;Please see the Final Exam page when posted for representative example questions.&lt;/p&gt;</content><category term="general"/><category term="labs"/><category term="policy"/><category term="grading"/></entry><entry><title>CS360 Course Fall 2021 Old Lab Recordings</title><link href="https://lums-cs360-web.github.io/lums-cs360/general/old_recordings.html" rel="alternate"/><published>2024-11-12T00:00:00+05:00</published><updated>2024-11-12T00:00:00+05:00</updated><author><name>LUMS</name></author><id>tag:lums-cs360-web.github.io,2024-11-12:/lums-cs360/general/old_recordings.html</id><summary type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019 …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019.
status: published&lt;/p&gt;</content><category term="general"/><category term="labs"/><category term="policy"/><category term="grading"/></entry><entry><title>CS360 Course Old Project Problem Descriptions</title><link href="https://lums-cs360-web.github.io/lums-cs360/general/old_project_description.html" rel="alternate"/><published>2024-11-12T00:00:00+05:00</published><updated>2024-11-12T00:00:00+05:00</updated><author><name>LUMS</name></author><id>tag:lums-cs360-web.github.io,2024-11-12:/lums-cs360/general/old_project_description.html</id><summary type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019 …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019.
status: published&lt;/p&gt;
&lt;p&gt;You are to design and implement a simple, attractive, and easy-to-use Android application to satisfy the follow goals. Your design must be flexible enough to allow future developers to extend or migrate it.&lt;/p&gt;
&lt;p&gt;To assist in meal planning, we want a mobile application that allows one to track their food storage, record their recipes, plan their meals for several days, and prepare shopping lists.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Needs in (Partial) User Story Form&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;User needs are expressed in the form of partial user stories:
As a &lt;role&gt;, I want &lt;goal&gt;.&lt;/p&gt;
&lt;p&gt;These descriptions may change to correct omissions and clarify noticed issues. Talk to the customer and propose options, rather than making what might be an unwarranted assumption or interpretation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ingredient Storage&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;US 01.01.01
As a meal planner, I want to add an ingredient, with a brief description, best before date, location, amount, unit, and ingredient category.&lt;/p&gt;
&lt;p&gt;US 01.02.01
As a meal planner, I want to view an ingredient and its details.&lt;/p&gt;
&lt;p&gt;US 01.03.01&lt;/p&gt;
&lt;p&gt;As a meal planner, I want to edit the details of an ingredient.&lt;/p&gt;
&lt;p&gt;US 01.04.01
As a meal planner, I want to delete an ingredient.&lt;/p&gt;
&lt;p&gt;US 01.05.01
As a meal planner, I want to see a list of my ingredients.&lt;/p&gt;
&lt;p&gt;US 01.06.01
As a meal planner, I want to sort the list of ingredients by description, best before date, location, and ingredient category.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Recipes&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;US 02.01.01
As a meal planner, I want to add a recipe, with title, preparation time, number of servings, recipe category, comments, photograph, and list of ingredients.&lt;/p&gt;
&lt;p&gt;US 02.02.01
As a meal planner, I want to add an ingredient to a recipe, with a brief description, amount, unit, and ingredient category.&lt;/p&gt;
&lt;p&gt;US 02.03.01
As a meal planner, I want to delete an ingredient from a recipe.&lt;/p&gt;
&lt;p&gt;US 02.04.01
As a meal planner, I want to view a recipe and its details.&lt;/p&gt;
&lt;p&gt;US 02.05.01
As a meal planner, I want to edit the details of a recipe, including the ingredients.&lt;/p&gt;
&lt;p&gt;US 02.06.01
As a meal planner, I want to delete a recipe.&lt;/p&gt;
&lt;p&gt;US 02.07.01
As a meal planner, I want to see a list of my recipes.&lt;/p&gt;
&lt;p&gt;US 02.08.01
As a meal planner, I want to sort the list of recipes by title, preparation time, number of servings, or recipe category.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Meal Plan&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;US 03.01.01
As a meal planner, I want to make a meal plan, for several upcoming days of meals, based on choosing from my recipes or individually from my ingredient storage.&lt;/p&gt;
&lt;p&gt;US 03.02.01
As a meal planner, I want to scale my recipes to adjust the number of servings for the meal plan.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Shopping List&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;US 04.01.01
As a meal planner, I want to view a shopping list of ingredients that I need to buy, based on my ingredient storage and meal plan.&lt;/p&gt;
&lt;p&gt;US 04.02.01
As a meal planner, I want each ingredient on the shopping list to show its description, amount, unit, and ingredient category.&lt;/p&gt;
&lt;p&gt;US 04.03.01
As a meal planner, I want to sort the shopping list of ingredients by description or  category.&lt;/p&gt;
&lt;p&gt;US 04.04.01
As a meal planner, I want to note that I have picked up an ingredient on the shopping list.&lt;/p&gt;
&lt;p&gt;US 04.05.01
As a meal planner, I want to add ingredients I have picked up to my ingredient storage, reminding me to complete details like location, actual amount, and unit.&lt;/p&gt;</content><category term="general"/><category term="labs"/><category term="policy"/><category term="grading"/></entry><entry><title>CS360 Course Old Project Problem Descriptions Fall 2024</title><link href="https://lums-cs360-web.github.io/lums-cs360/general/old_project_description_f24.html" rel="alternate"/><published>2024-11-12T00:00:00+05:00</published><updated>2024-11-12T00:00:00+05:00</updated><author><name>LUMS</name></author><id>tag:lums-cs360-web.github.io,2024-11-12:/lums-cs360/general/old_project_description_f24.html</id><summary type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019 …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019.
status: published&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Warning: This is subject to change!&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="qr-code-event-check-in-system"&gt;QR Code Event Check-In System&lt;/h3&gt;
&lt;p&gt;You are to design and implement a simple, attractive, and easy-to-use Android application to satisfy the following goals. Your design must be flexible enough to allow developers to extend or migrate it.&lt;/p&gt;
&lt;h3 id="description"&gt;Description:&lt;/h3&gt;
&lt;p&gt;Create an event management system where attendees check in using QR codes on their mobile devices. Organizers can track attendance, manage event details, and send notifications.&lt;/p&gt;
&lt;h3 id="features"&gt;Features:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;QR Code Scanning:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Attendees can use the app to scan event-specific QR codes for quick and seamless check-ins.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Firebase Integration:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Utilize Firebase for storing event details, attendee lists, and real-time check-in status updates.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Multi-User Interaction:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Distinguish between organizers and attendees with different app roles and permissions.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Geolocation Verification (Optional):&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Optionally use geolocation to verify that attendees are physically present at the event location during check-in.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Image Upload:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Allow organizers to upload event posters and attendees to upload profile pictures for a more personalized experience.&lt;/p&gt;
&lt;h3 id="scenario"&gt;Scenario:&lt;/h3&gt;
&lt;p&gt;Update for Project 3:&lt;/p&gt;
&lt;p&gt;John, an event organizer, opens the QRCheckIn app for an upcoming tech conference. He generates a unique QR code for the event. Potential attendees browse the events and notice John's event, they view the event poster, and then click sign up to indicate they will attend the event as an attendee. As attendees arrive, they use the app to scan the QR code, automatically checking them into the conference. The app updates John's dashboard in real-time, showing the current attendance. John can also send push notifications to all attendees through the app.&lt;/p&gt;
&lt;p&gt;Scenario for Project 2:
 John, an event organizer, opens the QRCheckIn app for an upcoming tech conference. He generates a unique QR code for the event. As attendees arrive, they use the app to scan the QR code, automatically checking them into the conference. The app updates John's dashboard in real-time, showing the current attendance. John can also send push notifications to all attendees through the app.&lt;/p&gt;
&lt;p&gt;# Actors:&lt;/p&gt;
&lt;p&gt;Organizer: a person who organizes the event and is in control of an event&lt;/p&gt;
&lt;p&gt;Attendee: a person who attends the event&lt;/p&gt;
&lt;p&gt;Administrator: the entity that is responsible for the infrastructure that the game runs on.&lt;/p&gt;
&lt;h3 id="glossary"&gt;Glossary:&lt;/h3&gt;
&lt;p&gt;QR Code: a scannable code, either a barcode, a QR code, or other code scannable by Zebra crossing libraries or google QR code scanning libraries.&lt;/p&gt;
&lt;h3 id="user-stories"&gt;User Stories:&lt;/h3&gt;
&lt;p&gt;User needs are expressed in the form of partial user stories:&lt;/p&gt;
&lt;p&gt;As a &lt;role&gt;, I want &lt;goal&gt;.&lt;/p&gt;
&lt;p&gt;These descriptions may change to correct omissions and clarify noticed issues. New requirements will be introduced for the final project part.&lt;/p&gt;
&lt;h3 id="organizer"&gt;Organizer:&lt;/h3&gt;
&lt;p&gt;US 01.01.01 As an organizer, I want to create a new event and generate a unique QR code for attendee check-ins.&lt;/p&gt;
&lt;p&gt;US 01.01.02 As an organizer, I want the option to reuse an existing QR code for attendee check-ins.&lt;/p&gt;
&lt;p&gt;US 01.02.01 As an organizer, I want to view the list of attendees who have checked in to my event.&lt;/p&gt;
&lt;p&gt;US 01.03.01 As an organizer, I want to send notifications to all attendees through the app.&lt;/p&gt;
&lt;p&gt;US 01.04.01 As an organizer, I want to upload an event poster to provide visual information to attendees.&lt;/p&gt;
&lt;p&gt;US 01.05.01 As an organizer, I want to track real-time attendance and receive alerts for important milestones.&lt;/p&gt;
&lt;p&gt;US 01.06.01 As an organizer, I want to share a generator QR code image to other apps so I can email or update other documents with the QR code.&lt;/p&gt;
&lt;p&gt;US 01.07.01 As an organizer, I want to create a new event and generate a unique promotion QR code that links to the event description and event poster in the app.&lt;/p&gt;
&lt;p&gt;US 01.08.01 As an organizer, I want to see on a map where users are checking in from.&lt;/p&gt;
&lt;p&gt;US 01.09.01 As an organizer, I want to see how many times an attendee has checked into an event.&lt;/p&gt;
&lt;p&gt;[New for Part 3] US 01.10.01 As an organizer, I want to see who is signed up to attend my event.&lt;/p&gt;
&lt;p&gt;[New for Part 3] US 01.11.01 As an organizer, I want to OPTIONALLY limit the number of attendees that can sign up for an event.&lt;/p&gt;
&lt;h3 id="attendee"&gt;Attendee:&lt;/h3&gt;
&lt;p&gt;US 02.01.01 As an attendee, I want to quickly check into an event by scanning the provided QR code.&lt;/p&gt;
&lt;p&gt;US 02.02.01 As an attendee, I want to upload a profile picture for a more personalized experience.&lt;/p&gt;
&lt;p&gt;US 02.02.02 As an attendee, I want to remove profile pictures if need be.&lt;/p&gt;
&lt;p&gt;US 02.02.03 As an attendee, I want to update information such as name, homepage, and contact information on my profile.&lt;/p&gt;
&lt;p&gt;US 02.03.01 As an attendee, I want to receive push notifications with important updates from the event organizers.&lt;/p&gt;
&lt;p&gt;US 02.04.01 As an attendee, I want to view event details and announcements within the app.&lt;/p&gt;
&lt;p&gt;US 02.05.01 As an attendee, I want my profile picture to be deterministically generated from my profile name if I haven't uploaded an profile image yet.&lt;/p&gt;
&lt;p&gt;US 02.06.01 As an attendee, I do not want to login to the app. No username, no password.&lt;/p&gt;
&lt;p&gt;[New for Part 3] US 02.07.01 As an attendee, I want to sign up to attend an event from the event details (as in I promise to go).&lt;/p&gt;
&lt;p&gt;[New for Part 3] US 02.08.01 As an attendee, I want to browse event posters/event details of other events.&lt;/p&gt;
&lt;p&gt;[New for Part 3] US 02.09.01 As an attendee, I want to know what events I signed up for currently and in and in the future.&lt;/p&gt;
&lt;h3 id="both"&gt;Both:&lt;/h3&gt;
&lt;p&gt;US 03.02.01 As a user, I want the option to enable or disable geolocation tracking for event verification.&lt;/p&gt;
&lt;h3 id="administrator"&gt;Administrator:&lt;/h3&gt;
&lt;p&gt;US 04.01.01 As an administrator, I want to be able to remove events.&lt;/p&gt;
&lt;p&gt;US 04.02.01 As an administrator, I want to be able to remove profiles.&lt;/p&gt;
&lt;p&gt;US 04.03.01 As an administrator, I want to be able to remove images.&lt;/p&gt;
&lt;p&gt;US 04.04.01 As an administrator, I want to be able to browse events.&lt;/p&gt;
&lt;p&gt;US 04.05.01 As an administrator, I want to be able to browse profiles.&lt;/p&gt;
&lt;p&gt;US 04.06.01 As an administrator, I want to be able to browse images.&lt;/p&gt;
&lt;p&gt;[New for Part 3 stories do not need to be addressed in Part 2]&lt;/p&gt;</content><category term="general"/><category term="labs"/><category term="policy"/><category term="grading"/></entry><entry><title>Group Assignment 5: Presentation Marking Rubric</title><link href="https://lums-cs360-web.github.io/lums-cs360/general/presentation-rubric.html" rel="alternate"/><published>2024-04-05T00:00:00+05:00</published><updated>2024-04-05T00:00:00+05:00</updated><author><name>LUMS</name></author><id>tag:lums-cs360-web.github.io,2024-04-05:/lums-cs360/general/presentation-rubric.html</id><summary type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019 …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019.
status: published&lt;/p&gt;
&lt;hr&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#this-is-currently-a-copy-of-the-402-presentation-requirements-and-needs-to-be-updated-for-301"&gt;This is currently a copy of the 402 presentation requirements and needs to be updated for 301&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#overview"&gt;Overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#requirements"&gt;Requirements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#marking"&gt;Marking&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#evaluating-deliverables-based-on-presentation-content"&gt;Evaluating Deliverables Based on Presentation Content&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3 id="this-is-currently-a-copy-of-the-402-presentation-requirements-and-needs-to-be-updated-for-301"&gt;This is currently a copy of the 402 presentation requirements and needs to be updated for 301&lt;/h3&gt;
&lt;h3 id="overview"&gt;Overview&lt;/h3&gt;
&lt;p&gt;The purpose of the presentation marking rubric is to outline precise evaluation criteria for the assessment of the group assignment 5 presentation. Its aim is to provide clear guidance to presenters, ensuring they have a thorough understanding of what is expected of them.&lt;/p&gt;
&lt;h3 id="requirements"&gt;Requirements&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Slides&lt;ul&gt;
&lt;li&gt;Make sure to use readable fonts.&lt;/li&gt;
&lt;li&gt;Use short phrases instead of paragraphs of text. Avoid crowded text-only slides.&lt;/li&gt;
&lt;li&gt;Use pictures, diagrams etc., whenever possible.&lt;/li&gt;
&lt;li&gt;Add slide numbers so that it is easy to ask questions about specific slides.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Delivering the talk&lt;ul&gt;
&lt;li&gt;Be positive and (pretend to be?) interested and excited.&lt;/li&gt;
&lt;li&gt;Speak loudly and clearly &amp;amp; avoid being monotonous.&lt;/li&gt;
&lt;li&gt;Face the audience and look at them and try to engage the audience.&lt;/li&gt;
&lt;li&gt;Make your talk entertaining (without overdoing it).&lt;/li&gt;
&lt;li&gt;Rehearse your presentation well enough that you don’t need to keep reading off your slides. If you are always reading off the slides, then  the audience could simply read your slides and not listen to you at all.&lt;/li&gt;
&lt;li&gt;Anticipate things you need to highlight and use boxes etc to highlight them on the slides.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Present the project to the class&lt;ul&gt;
&lt;li&gt;Your presentation must be targeted to the audience who are in the class.&lt;/li&gt;
&lt;li&gt;Presentations will be done by group.&lt;/li&gt;
&lt;li&gt;Presentation should be about 8 minutes, no more. Try NOT to wrap up the presentation really early. You MUST finish your presentation within the time constraints so please rehearse properly. You will lose 2 marks if you run over time.&lt;/li&gt;
&lt;li&gt;Presentation should cover all the aspects of group assignment 5 including the five points which should be in the report.&lt;/li&gt;
&lt;li&gt;You can use PowerPoint or Google Slides or whatever presentation software you like.&lt;/li&gt;
&lt;li&gt;You will need to present in lab in person during lab time.&lt;/li&gt;
&lt;li&gt;All group members will have to present.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;You must be able to answer questions about the presentation and your work so far&lt;ul&gt;
&lt;li&gt;You are expected to attend each other's presentations and ask questions.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="marking"&gt;Marking&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Presentation quality is marked by the below rubric (out of 20):&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Excellent (5)&lt;/th&gt;
&lt;th&gt;Good (4)&lt;/th&gt;
&lt;th&gt;Satisfactory (3)&lt;/th&gt;
&lt;th&gt;Unsatisfactory (2)&lt;/th&gt;
&lt;th&gt;Poor (1)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Slides&lt;/td&gt;
&lt;td&gt;Slides are clear, readable, and well-designed. Text is large enough to be seen from the back of the room. Figures are appropriately sized and labeled. No more than five bullet points per slide.&lt;/td&gt;
&lt;td&gt;Slides are mostly clear, readable, and well-designed. Text is large enough to be seen from most of the room. Figures are adequately sized and labeled. No more than seven bullet points per slide.&lt;/td&gt;
&lt;td&gt;Slides are somewhat clear, readable, and well-designed. Text is large enough to be seen from the front of the room. Figures are somewhat sized and labeled. No more than nine bullet points per slide.&lt;/td&gt;
&lt;td&gt;Slides are unclear, unreadable, or poorly designed. Text is too small to be seen from the back of the room. Figures are too large or too small and unlabeled. More than nine bullet points per slide.&lt;/td&gt;
&lt;td&gt;Slides are missing, illegible, or incomprehensible. Text is too small to be seen from anywhere in the room. Figures are irrelevant or absent. Too many bullet points per slide or no bullet points at all.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Organization&lt;/td&gt;
&lt;td&gt;Presentation has a clear introduction, body, and conclusion. Transitions between slides are smooth and logical. Main points are highlighted and supported by evidence.&lt;/td&gt;
&lt;td&gt;Presentation has an introduction, body, and conclusion. Transitions between slides are mostly smooth and logical. Main points are stated and supported by some evidence.&lt;/td&gt;
&lt;td&gt;Presentation has an introduction, body, and conclusion. Transitions between slides are somewhat smooth and logical. Main points are mentioned and supported by weak evidence.&lt;/td&gt;
&lt;td&gt;Presentation lacks a clear introduction, body, or conclusion. Transitions between slides are abrupt or illogical. Main points are unclear or unsupported by evidence.&lt;/td&gt;
&lt;td&gt;Presentation has no discernible structure or flow. Transitions between slides are nonexistent or confusing. Main points are missing or irrelevant.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Demonstration of quality evaluation&lt;/td&gt;
&lt;td&gt;Presenters demonstrate a comprehensive understanding of quality evaluation principles using SonarQube. Presenters provide a comprehensive and detailed overview of the current CI pipeline. Presenters offer insightful and well-reasoned advice on addressing current technical debt, providing clear justification and actionable recommendations. Presenters engage in a thorough and insightful discussion of metrics and tool changes, offering clear rationale and considerations for potential modifications.&lt;/td&gt;
&lt;td&gt;Presenters demonstrate a solid understanding of quality evaluation using SonarQube, with clear explanations and examples. Presenters provide a clear and informative discussion of the current CI pipeline, covering key aspects with sufficient detail. Presenters provide solid advice on addressing current debt, supported by logical reasoning and relevant examples. Presenters provide a coherent and informative discussion of metrics and tool changes, supported by logical reasoning and relevant examples.&lt;/td&gt;
&lt;td&gt;Presenters demonstrate a basic understanding of quality evaluation using SonarQube, but with some gaps in clarity or depth. Presenters provide an adequate overview of the current CI pipeline, though some areas may lack depth or clarity. Presenters provide basic advice on addressing current debt, though some aspects may lack depth or specificity. Presenters provide a basic overview of metrics and potential tool changes, though depth and justification may vary.&lt;/td&gt;
&lt;td&gt;Presenters demonstrate poor understanding of quality evaluation using SonarQube, with significant gaps or inaccuracies. Presenters provide a poor or incomplete description of the current CI pipeline, with significant gaps or omissions. Presenters provide limited or unclear advice on addressing current debt, with weak reasoning or insufficient detail. Presenters offer limited or unclear insights into metrics and tool changes, with weak justification or relevance.&lt;/td&gt;
&lt;td&gt;Presenters demonstrate little to no understanding of quality evaluation using SonarQube, with major inaccuracies or misconceptions. Presenters fail to effectively discuss the current CI pipeline, lacking coherence or relevant details. Presenters fail to provide meaningful advice on addressing current debt, lacking coherence or relevance. Presenters fail to effectively discuss metrics and tool changes, lacking coherence or substantive content.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ability to answer questions&lt;/td&gt;
&lt;td&gt;Presenters answer all questions from the audience correctly and confidently. Presenters provide additional information or examples when appropriate. Presenters are respectful and courteous to the questioners.&lt;/td&gt;
&lt;td&gt;Presenters answer most questions from the audience correctly and confidently. Presenters provide some additional information or examples when appropriate. Presenters are respectful and courteous to the questioners.&lt;/td&gt;
&lt;td&gt;Presenters answer some questions from the audience correctly and confidently. Presenters provide little additional information or examples when appropriate. Presenters are respectful and courteous to the questioners.&lt;/td&gt;
&lt;td&gt;Presenters answer few questions from the audience correctly and confidently. Presenters provide no additional information or examples when appropriate. Presenters are disrespectful or discourteous to the questioners.&lt;/td&gt;
&lt;td&gt;Presenters answer no questions from the audience correctly and confidently. Presenters provide irrelevant or inaccurate information or examples when appropriate. Presenters are rude or hostile to the questioners.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="evaluating-deliverables-based-on-presentation-content"&gt;Evaluating Deliverables Based on Presentation Content&lt;/h3&gt;
&lt;p&gt;We will use both the content of your report and presentation to grade the 5 points from the deliverables. The weight of the content of the presentation for the main grading is given below:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Quality evaluation using SonarQube (points 1 and 2):  7.5 out of 30&lt;/li&gt;
&lt;li&gt;Discussing current CI pipeline (point 3): 2.5 out of 10&lt;/li&gt;
&lt;li&gt;Advice on paying back current debt (point 4): 3.75 out of 15&lt;/li&gt;
&lt;li&gt;Discussion of metrics &amp;amp; tool changes (point 5): 2.5 out of 10&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Total presentation content grade: 16.25 out of 70&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Please note that this section is separate from the presentation marks, which will be graded out of 20 according to the rubric in the &lt;a href="#marking"&gt;table above&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;</content><category term="general"/><category term="labs"/><category term="policy"/><category term="grading"/></entry><entry><title>Individual</title><link href="https://lums-cs360-web.github.io/lums-cs360/general/individual.html" rel="alternate"/><published>2024-03-20T00:00:00+05:00</published><updated>2024-03-20T00:00:00+05:00</updated><author><name>LUMS</name></author><id>tag:lums-cs360-web.github.io,2024-03-20:/lums-cs360/general/individual.html</id><summary type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019 …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019.
status: published
summary: Individual Assignments, Participation&lt;/p&gt;
&lt;hr&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#assignments"&gt;Assignments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#late-submission-policy"&gt;Late Submission Policy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#participation"&gt;Participation&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#participation-exercises-are-marked-as-follows"&gt;Participation Exercises are marked as follows:&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3 id="assignments"&gt;Assignments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/individual/assignment0.html"&gt;Assignment 0: Getting started&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/individual/assignment1.html"&gt;Assignment 1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="late-submission-policy"&gt;Late Submission Policy&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;To ensure fairness and consistency for all participants, the following late submission policy applies for all assignments:&lt;/p&gt;
&lt;p&gt;Up to 1 hour late: 5% penalty&lt;/p&gt;
&lt;p&gt;More than 1 hour and up to 24 hours late: 10% penalty&lt;/p&gt;
&lt;p&gt;More than 24 hours and up to 48 hours late: 50% penalty&lt;/p&gt;
&lt;p&gt;More than 48 hours late: Submissions will not be accepted&lt;/p&gt;
&lt;p&gt;Late penalties are applied to the final evaluated score. Submissions are considered late based on the timestamp recorded by the submission system.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="participation"&gt;Participation&lt;/h3&gt;
&lt;p&gt;You can earn lecture participation credit by attending lecture on time and doing a lecture participation exercise. Instructions will be given during lecture.&lt;/p&gt;
&lt;!-- &lt;p class="warning"&gt;Do &lt;em&gt;not&lt;/em&gt; enter your real name, CCID, or student ID into Mentimeter.&lt;/p&gt; --&gt;

&lt;p&gt;These will be done on paper and you need to bubble in your student number. &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You must provide your student number to get credit. Failure to do so will not earn credit. &lt;!-- **Your codename can be found under feedback at the top of your grades in eClass.** --&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!--    * You will not get credit for your real name, CCID, or student ID! --&gt;
&lt;ul&gt;
&lt;li&gt;For lecture participation exercises, given N total exercises only N-6 will be counted. You can miss 6. No extensions, excused absences, or weight transfers are possible. See the &lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/outline.html#missed-term-work-participation"&gt;outline&lt;/a&gt; for more information.&lt;/li&gt;
&lt;/ul&gt;
&lt;!--
* Entering answers in Mentimeter without attending the course, either in-person or on Zoom will be considered a violation of the Student Academic Integrity Policy.
--&gt;
&lt;ul&gt;
&lt;li&gt;Entering answers for someone else will be considered a violation of the SAIP.  &lt;!--    * Sharing the Menti link with other students will be considered a violation of the SAIP. --&gt;&lt;ul&gt;
&lt;li&gt;See the &lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/outline.html#contract-cheating-cs-courses"&gt;outline section on contract cheating&lt;/a&gt; for more information.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="participation-exercises-are-marked-as-follows"&gt;Participation Exercises are marked as follows:&lt;/h4&gt;
&lt;p&gt;Given &lt;code&gt;N&lt;/code&gt; total exercises, count the number of sufficiently complete exercises (&lt;code&gt;M&lt;/code&gt;), calculate percent exercises as &lt;code&gt;100% * M / (N - 6)&lt;/code&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Failure 0: Write less than 50% of exercises&lt;/li&gt;
&lt;li&gt;Unsatisfactory 4: Write more than or equal to 50% of exercises &lt;/li&gt;
&lt;li&gt;Satisfactory 6: Write more than 60% of exercises &lt;/li&gt;
&lt;li&gt;Good 7: Write more than 70% of exercises &lt;/li&gt;
&lt;li&gt;Excellent 8: Write more than 80% of exercises&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you participate enough in discussion you can get 1 bonus mark to
your participation grade (not exceeding 7). You only get credit for
participation in your own section.&lt;/p&gt;</content><category term="general"/><category term="assignment"/><category term="grading"/></entry><entry><title>Group Project</title><link href="https://lums-cs360-web.github.io/lums-cs360/general/project.html" rel="alternate"/><published>2024-01-06T00:00:00+05:00</published><updated>2024-01-06T00:00:00+05:00</updated><author><name>LUMS</name></author><id>tag:lums-cs360-web.github.io,2024-01-06:/lums-cs360/general/project.html</id><summary type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019 …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019.
status: published
summary: 301 Group Project&lt;/p&gt;
&lt;hr&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#project"&gt;Project&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3 id="project"&gt;Project&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;IMPORTANT NOTICE&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Project meetings are mandatory for all group members.&lt;/strong&gt;&lt;br&gt;
There will be &lt;strong&gt;7&lt;/strong&gt; scheduled throughout the semester.&lt;br&gt;
&lt;strong&gt;Attendance will be recorded by the TA.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;5% of the total project marks are strictly allocated to meeting attendance.&lt;/strong&gt;&lt;br&gt;
Failure to attend meetings will result in a direct deduction from project marks.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/projects/project_problem_descr.html"&gt;Project Problem Description&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/projects/project_team.html"&gt;Project Teams&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/projects/project_demo.html"&gt;Project Demo Schedule&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/projects/project_part0.html"&gt;Project Part 0&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/projects/project_part1.html"&gt;Project Part 1&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/projects/project_part2.html"&gt;Project Part 2 -- Preparation&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/projects/project_part3.html"&gt;Project Part 3 -- Half-Way Checkpoint&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/projects/project_part4.html"&gt;Project Part 4 -- Final Checkpoint&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="general"/><category term="project"/><category term="grading"/></entry><entry><title>Labs</title><link href="https://lums-cs360-web.github.io/lums-cs360/general/labs.html" rel="alternate"/><published>2024-01-06T00:00:00+05:00</published><updated>2024-01-06T00:00:00+05:00</updated><author><name>LUMS</name></author><id>tag:lums-cs360-web.github.io,2024-01-06:/lums-cs360/general/labs.html</id><summary type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019 …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019.
status: published
summary: Lab Procedure, Lab Assignments, Lab Marking&lt;/p&gt;
&lt;hr&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#lab-schedule"&gt;Lab Schedule&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#lab-1"&gt;Lab 1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#lab-2"&gt;Lab 2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#lab-3"&gt;Lab 3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#lab-4"&gt;Lab 4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#lab-5"&gt;Lab 5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#lab-6"&gt;Lab 6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#lab-7"&gt;Lab 7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#lab-8"&gt;Lab 8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#late-submission-policy"&gt;Late Submission Policy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#marking"&gt;Marking&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#labs-are-marked-as-follows"&gt;Labs are marked as follows:&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h4 id="lab-schedule"&gt;Lab Schedule&lt;/h4&gt;
&lt;p&gt;Labs will be held &lt;strong&gt;online on Microsoft Teams&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ramadan Timings:&lt;/strong&gt;&lt;br&gt;
- &lt;strong&gt;Friday:&lt;/strong&gt; 2:30 PM – 4:30 PM  &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Regular Timings:&lt;/strong&gt;&lt;br&gt;
- &lt;strong&gt;Wednesday:&lt;/strong&gt; 6:15 PM – 8:30 PM&lt;br&gt;
- &lt;strong&gt;Thursday:&lt;/strong&gt; 6:15 PM – 8:30 PM  &lt;/p&gt;
&lt;p&gt;Students will be assigned to a specific lab group and will attend &lt;strong&gt;one of the above sessions&lt;/strong&gt;, depending on their assigned group. &lt;/p&gt;
&lt;p&gt;&lt;a href="https://docs.google.com/spreadsheets/d/1IvqhLhG5wp0H2QPJPXfL_SnyUEohJ7QT0r3MA6GC2EM/edit?gid=810193785#gid=810193785"&gt;Lab Groups&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="lab-1"&gt;Lab 1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/labs/lab1.html"&gt;Lab 1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="lab-2"&gt;Lab 2&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/labs/lab2_instructions.html"&gt;Lab 2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="lab-3"&gt;Lab 3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/labs/lab3_inst.html"&gt;Lab 3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="lab-4"&gt;Lab 4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/labs/lab4_part.html"&gt;Lab 4&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="lab-5"&gt;Lab 5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/labs/lab5_instruct.html"&gt;Lab 5&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="lab-6"&gt;Lab 6&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/labs/lab6_instruct.html"&gt;Lab 6&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="lab-7"&gt;Lab 7&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/labs/lab7_instruct.html"&gt;Lab 7&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="lab-8"&gt;Lab 8&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/labs/lab8_part.html"&gt;Lab 8&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="late-submission-policy"&gt;Late Submission Policy&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;To ensure fairness and consistency for all participants, the following late submission policy applies for all labs:&lt;/p&gt;
&lt;p&gt;Up to 1 hour late: 5% penalty&lt;/p&gt;
&lt;p&gt;More than 1 hour and up to 24 hours late: 10% penalty&lt;/p&gt;
&lt;p&gt;More than 24 hours and up to 48 hours late: 50% penalty&lt;/p&gt;
&lt;p&gt;More than 48 hours late: Submissions will not be accepted&lt;/p&gt;
&lt;p&gt;Late penalties are applied to the final evaluated score. Submissions are considered late based on the timestamp recorded by the submission system.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="marking"&gt;Marking&lt;/h3&gt;
&lt;p&gt;From the syllabus&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Missed Labs:&lt;/p&gt;
&lt;p&gt;Labs are due Tuesday at 5PM in the week after the lab was presented. Project meetings are due at the time of the meeting, and they are included in the lab mark. Failure to attend and actively participate in project meetings will result in a lab mark of zero.&lt;/p&gt;
&lt;p&gt;The 2 lowest marks for Labs (including project meetings) will be dropped when calculating the course mark. No late labs will be accepted. Failure to complete a lab (or to attend a project meeting) on time for any reason will result in a mark of zero. Please note that you can miss 2 labs (or project meetings) without penalty.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id="labs-are-marked-as-follows"&gt;Labs are marked as follows:&lt;/h4&gt;
&lt;p&gt;Given &lt;code&gt;N&lt;/code&gt; total labs, count the number of sufficiently complete labs (&lt;code&gt;M&lt;/code&gt;), calculate percent labs as &lt;code&gt;100% * M / (N - 2)&lt;/code&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Failure 0: Write less than 50% of labs&lt;/li&gt;
&lt;li&gt;Unsatisfactory 2: Write more than or equal to 50% of labs &lt;/li&gt;
&lt;li&gt;Satisfactory 3: Write more than 60% of labs &lt;/li&gt;
&lt;li&gt;Good 4: Write more than 70% of labs &lt;/li&gt;
&lt;li&gt;Excellent 5: Write more than 80% of labs&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You only get credit for labs in your own section.&lt;/p&gt;</content><category term="general"/><category term="labs"/><category term="policy"/><category term="grading"/></entry><entry><title>Learning Resources &amp; Reference Materials</title><link href="https://lums-cs360-web.github.io/lums-cs360/general/resources.html" rel="alternate"/><published>2024-01-06T00:00:00+05:00</published><updated>2024-01-06T00:00:00+05:00</updated><author><name>LUMS</name></author><id>tag:lums-cs360-web.github.io,2024-01-06:/lums-cs360/general/resources.html</id><summary type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019 …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019.
status: published
summary: Resources, Reference Materials, Notes, Videos, Slides&lt;/p&gt;
&lt;hr&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#readings"&gt;Readings&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#course-notes"&gt;Course Notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#general-resources"&gt;General Resources&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#java-uml-oo-textbooks"&gt;Java + UML + OO Textbooks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#java"&gt;Java&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#android-studio"&gt;Android Studio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#uml"&gt;UML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#mvc"&gt;MVC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#git-and-github-resoirces"&gt;Git and GitHub Resoirces&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#android-activity-resources"&gt;Android Activity Resources&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#android-debugging-resources"&gt;Android Debugging Resources&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#android-student-picker-example-app"&gt;Android Student Picker Example App&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#code-conventions-resources"&gt;Code Conventions Resources&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#software-process"&gt;Software Process&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#unit-testing-in-android-with-junit"&gt;Unit Testing in Android with JUnit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#requirements"&gt;Requirements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#testing"&gt;Testing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#intent-testing-in-android"&gt;Intent Testing in Android&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#design-patterns"&gt;Design Patterns&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#user-interface-design"&gt;User Interface Design&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#human-error"&gt;Human Error&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#mentis-for-review"&gt;Mentis for Review&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;If you find broken links, please file a GitHub issue.&lt;/p&gt;
&lt;h3 id="readings"&gt;Readings&lt;/h3&gt;
&lt;h4 id="course-notes"&gt;Course Notes&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/1 Object-Oriented Design - Notes.pdf"&gt;Part 1 - Object-Oriented Design&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/2 Design Patterns - Notes.pdf"&gt;Part 2 - Design Patterns&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="general-resources"&gt;General Resources&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/CMPUT301-AssignmentFAQ.pdf"&gt;Assignment FAQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/practice.html"&gt;Exam Practice Questions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/participation.html"&gt;Old Participation Exercise&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/mooc.html"&gt;SPM and SDA MOOC Resources&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/oldrecordings.html"&gt;Old Lecture and Lab Recordings&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/resources/oldnotes.html"&gt;Old Lab Notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://go.oreilly.com/university-of-alberta"&gt;Safari O'Reilly Books&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You must log in with the University of Alberta Library to get free access to O'Reilly books&lt;/li&gt;
&lt;li&gt;&lt;a href="https://login.ezproxy.library.ualberta.ca/login?url=https://go.oreilly.com/university-of-alberta/"&gt;Also try this link&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/slides/carExampleCampbell.zip"&gt;Folder icon B2 Car Example&lt;/a&gt; &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/"&gt;StackOverflow&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="java-uml-oo-textbooks"&gt;Java + UML + OO Textbooks&lt;/h3&gt;
&lt;p&gt;You already paid for these full e-textbooks with your tuition!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://login.ezproxy.library.ualberta.ca/login?url=https://go.oreilly.com/university-of-alberta/library/view/-/0201702525/?ar"&gt;Book: Developing applications with Java and UML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://login.ezproxy.library.ualberta.ca/login?url=https://go.oreilly.com/university-of-alberta/library/view/-/0201750449/?ar"&gt;Book: Java Design: Objects, UML and Process&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://login.ezproxy.library.ualberta.ca/login?url=https://ebookcentral.proquest.com/lib/ualberta/detail.action?docID=297134"&gt;Book: Object-oriented design with UML and Java&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="java"&gt;Java&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/OOP_notes.pdf"&gt;Java OOP Notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://goalkicker.com/JavaBook/"&gt;Java Notes for Professionals&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.java2s.com/Code/Java/CatalogJava.htm"&gt;Java Examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learning.oreilly.com/library/view/learning-java-5th/9781492056263/"&gt;Book: Learning java&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learning.oreilly.com/library/view/core-java-for/9780135404522/"&gt;Book: Core java for the Impatient&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learning.oreilly.com/library/view/java-in-a/9781492037248/"&gt;Book: Java in a Nutshell&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learning.oreilly.com/library/view/java-power-tools/9780596527938/"&gt;Book: Java Power Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://google.github.io/styleguide/javaguide.html"&gt;Java Style Guide by Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.codecademy.com/learn/learn-java"&gt;A Good Interactive Course&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3schools.com/java"&gt;Java Quick Look&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=NBIUbTddde4&amp;amp;list=PLZPZq0r_RZOMhCAyywfnYLlrjiVOkdAI1&amp;amp;ab_channel=BroCode"&gt;A Good Video Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.oracle.com/javase/tutorial/java/index.html"&gt;Official Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="android-studio"&gt;Android Studio&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/slides/Android_Studio_Tips.pdf"&gt;Android Studio Tips&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="uml"&gt;UML&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.ibm.com/articles/an-introduction-to-uml/"&gt;IBM - An introduction to UML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.uml-diagrams.org/"&gt;https://www.uml-diagrams.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://agilemodeling.com/style/"&gt;Modelling Style Guidelines: Strategies for Better Diagrams&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://holub.com/uml/"&gt;Allen Holub’s UML Quick Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learning.oreilly.com/library/view/uml-distilled-a/0321193687/"&gt;UML Distilled: A Brief Guide to the Standard Object Modelling Language, Third Edition - Martin Fowler&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learning.oreilly.com/library/view/head-first-object-oriented/0596008678/"&gt;Book: Head First Object-Oriented Analysis and Design&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mvc"&gt;MVC&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/abramhindle/FillerCreepForAndroid"&gt;FillerCreepForAndroid Git Repo (Hindle)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.oracle.com/technical-resources/articles/javase/application-design-with-mvc.html"&gt;Java SE Application Design With MVC&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="git-and-github-resoirces"&gt;Git and GitHub Resoirces&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.oreilly.com/library/view/version-control-with/9781492091189/"&gt;Book: Version Control with Git&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://git-scm.com/book/en/v2/GitHub-Contributing-to-a-Project"&gt;Distributed Git: Contributing to a Project&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.github.com/"&gt;GitHub Help&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Git"&gt;Wikipedia: Git&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.oreilly.com/library/view/pro-git-second/9781484200766/"&gt;Book: Pro Git&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="android-activity-resources"&gt;Android Activity Resources&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.android.com/guide/components/activities/activity-lifecycle.html"&gt;Android Guide: The Activity LIfecycle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.android.com/develop/ui/views/layout/declaring-layout#CommonLayouts"&gt;Android Guide: Common LayoutsURL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.android.com/guide/topics/resources/providing-resources#Accessing"&gt;Android Guide: Accessing Resources&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.android.com/reference/android/widget/ArrayAdapter.html#notifyDataSetChanged%28%29"&gt;Android ArrayAdapter API&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="android-debugging-resources"&gt;Android Debugging Resources&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.android.com/studio/debug/index.html"&gt;Android Studio: Debug Your App&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="android-student-picker-example-app"&gt;Android Student Picker Example App&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;An example of developing an Android app that randomly picks students in a class.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=5PPD0ncJU1g"&gt;Part 1: Storyboarding&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=VKVYUXNuDDg"&gt;Part 2: Laying Put the User Interface Screens&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=k9ZNbsc0Qgo"&gt;Part 3: Developing and Testing the Model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=fxjIA4HIruU"&gt;Part 4: Navigating between Activities&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=uLnoI7mbuEo"&gt;Part 5: Controllers and Adding Students&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="code-conventions-resources"&gt;Code Conventions Resources&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.oracle.com/java/technologies/javase/codeconventions-contents.html"&gt;Code Conventions for the Java Programming Language&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="software-process"&gt;Software Process&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://agilemanifesto.org/"&gt;Agile Manifesto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.extremeprogramming.org/"&gt;Extreme Programming: A Gentle Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.scrum.org/resources/scrum-guide"&gt;Scrum Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.oreilly.com/library/view/user-stories-applied/0321205685/"&gt;Book: User Stories Applied&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learning.oreilly.com/library/view/extreme-programming-explained/0321278658/"&gt;Book: Extreme Programming Explained&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.oreilly.com/library/view/agile-development-in/9781484216798/"&gt;Book: Agile Development in the Real World&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Processes Used in Industry&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse.org/projects/dev_process/development_process.php"&gt;Eclipse Foundation Development Process&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wiki.gnome.org/Bugsquad/TriageGuide"&gt;Triage Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wiki.yoctoproject.org/wiki/Bugzilla_Configuration_and_Bug_Tracking"&gt;Bugzilla Configuration and Bug Tracking&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.moodle.org/dev/Bug_triage"&gt;Bug triage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wiki.eclipse.org/SWT/Devel/Triage"&gt;SWT/Devel/Triage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.apache.org/foundation/how-it-works/legal.html"&gt;ASF Development Process¶&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://drive.google.com/file/d/1CDlc7fxvI1qhz1fa7xKIvpWTV82Jp2if/view?usp=drive_link"&gt;Intro to Version Control Slides (1up)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://drive.google.com/file/d/1GKoNS-_kyL9eVVGiWs7e-AsCRPIz7fXq/view?usp=drive_link"&gt;Continuous Integration Guest Lecture (Pang)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://drive.google.com/file/d/1wj76ZPtV0JxRiM7H1HPqpRWvCyAVxtBp/view?usp=drive_link"&gt;Software in the Real World Guest Lecture (Tariq Masters)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dl-acm-org.login.ezproxy.library.ualberta.ca/doi/10.1145/255656.255698"&gt;How Microsoft Builds Software&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.oreilly.com/library/view/build-master-the/0321332059/"&gt;Book: The Build Master&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="unit-testing-in-android-with-junit"&gt;Unit Testing in Android with JUnit&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.android.com/training/testing/local-tests"&gt;Android JUnit Assert API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://code.tutsplus.com/android-sdk-unit-testing-with-the-junit-testing-framework--mobile-421t"&gt;Unit Testing with the JUnit Testing Framework&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="requirements"&gt;Requirements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://xp123.com/invest-in-good-stories-and-smart-tasks/"&gt;INVEST in Good Stories, and SMART Tasks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ronjeffries.com/xprog/articles/expcardconversationconfirmation/"&gt;Essential XP: Card, Conversation, Confirmation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.oreilly.com/library/view/learning-uml-20/0596009828/"&gt;Book: Learning UML 2.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="testing"&gt;Testing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.oreilly.com/library/view/test-driven-development/0321146530/"&gt;Book: Test-Driven DevelopmentURL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://catless.ncl.ac.uk/Risks/9.62.html#subj2"&gt;Cause of AT&amp;amp;T Network Failure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sunnyday.mit.edu/papers/therac.pdf"&gt;Medical Devices: The Therac-25&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://drive.google.com/file/d/0B0QztbuDlKs_M2ZiMWU2NjQtNjExYS00M2ZmLThmNWUtYmU5MGYwNjRhNjYz/view?hl=en&amp;amp;pli=1&amp;amp;resourcekey=0-9Lfn2uW_C7zFtnc-ukDrKg"&gt;The Way of Testivus&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="intent-testing-in-android"&gt;Intent Testing in Android&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.android.com/studio/test"&gt;Android Testing Concepts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.android.com/training/testing/instrumented-tests/ui-tests"&gt;Android Automating User Interface Tests&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="design-patterns"&gt;Design Patterns&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.vincehuston.org/dp/"&gt;Huston Design Patterns&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sourcemaking.com/"&gt;SourceMaking&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sourcemaking.com/design_patterns"&gt;SourceMaking Design Patterns&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.oreilly.com/library/view/design-patterns-elements/0201633612/"&gt;Book: Design Patterns: Elements of Reusable Object-Oriented Software&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sourcemaking.com/refactoring"&gt;SourceMaking Refactoring&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.oreilly.com/library/view/refactoring-improving-the/9780134757681/"&gt;Book: Refactoring Improving the Design of Existing Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.oreilly.com/library/view/head-first-design/9781492077992/"&gt;Book: Head First Design Patterns&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="user-interface-design"&gt;User Interface Design&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://hci.stanford.edu/publications/bds/1-kapor.html"&gt;A Software Design Manifesto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.joelonsoftware.com/"&gt;Joel on Software&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.joelonsoftware.com/2001/10/24/user-interface-design-for-programmers/"&gt;User Interface Design for Programmers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.android.com/design"&gt;Android Design Principles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://hallofshame.gp.co.at/shame.htm"&gt;Interface Hall of Shame&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://baddesigns.com/examples.html"&gt;Bad Designs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="human-error"&gt;Human Error&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.oreilly.com/library/view/gui-bloopers-20/9780123706430/"&gt;Book: GUI Bloopers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mentis-for-review"&gt;Mentis for Review&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fall 2024 &lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/301f24Review1.pdf"&gt;1&lt;/a&gt; &lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/301f24Review2.pdf"&gt;2&lt;/a&gt; &lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/301f24Review3.pdf"&gt;3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="general"/><category term="resources"/><category term="reading"/><category term="references"/><category term="videos"/></entry><entry><title>Slides</title><link href="https://lums-cs360-web.github.io/lums-cs360/general/slides.html" rel="alternate"/><published>2024-01-06T00:00:00+05:00</published><updated>2024-01-06T00:00:00+05:00</updated><author><name>LUMS</name></author><id>tag:lums-cs360-web.github.io,2024-01-06:/lums-cs360/general/slides.html</id><summary type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019 …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Dr. Suleman Shahid and Dr. Abdul Ali Bangash, Department of Computing Science, LUMS (2026).
Dr. Hazel Campbell, Department of Computing Science, University of Alberta (2019, 2023, 2024).
Dr. Abram Hindle, Department of Computing Science, University of Alberta (2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023).
Alexander Wong, 2019.
status: published
summary: Slides and per-topic resources&lt;/p&gt;
&lt;hr&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#welcome"&gt;Welcome&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#objects-uml-java"&gt;Objects UML Java&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#software-process-models"&gt;Software Process Models&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#requirement-engineering"&gt;Requirement Engineering&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#user-interface-design"&gt;User Interface Design&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#object-oriented-analysis-and-design"&gt;Object-oriented analysis and design&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3 id="welcome"&gt;Welcome&lt;/h3&gt;
&lt;!-- * [Welcome]({attach}slides/00_Welcome_Tang.pdf)  
* Old slides (dates, times, assignments, exams, will be out of date)
    * [Welcome - Dr. Campbell]({attach}slides/000welcome-campbell.pdf)  
    * [Welcome - Prof. Wong]({attach}slides/00_Welcome_Wong.pdf) [2]({attach}slides/00_Welcome_Wong2.pdf)
    * [Welcome - Prof. Hindle]({attach}slides/00_Welcome_Hindle.pdf) --&gt;

&lt;p&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/slides/00_Welcome_Slides.pdf"&gt;Lecture 1 - Welcome&lt;/a&gt; &lt;/p&gt;
&lt;h3 id="objects-uml-java"&gt;Objects UML Java&lt;/h3&gt;
&lt;p&gt;Reading: &lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/resources.html#course-notes"&gt;Course notes&lt;/a&gt; part 1 page 1-73&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/slides/Lecture-2-LUMS-S26.pdf"&gt;Lecture 2 - Objects UML Java&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/slides/Lecture-3-LUMS-S26.pdf"&gt;Lecture 3 - Objects UML Java&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/slides/Lecture-4-LUMS-S26.pdf"&gt;Lecture 4 - Objects UML Java&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="software-process-models"&gt;Software Process Models&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/slides/Lecture-5-LUMS-S26.pdf"&gt;Lecture 5+6 - Software Process Models&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/slides/Lecture-6-LUMS-S26.pdf"&gt;Lecture 7+8 - Software Process Models&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lecture 9 - Guest Lecture&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="requirement-engineering"&gt;Requirement Engineering&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/slides/Lecture-7-LUMS-S26.pdf"&gt;Lecture 10 - Requirement Engineering&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/slides/Lecture-11-LUMS-S26.pdf"&gt;Lecture 11 - Requirement Analysis&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/slides/Lecture-12-LUMS-S26.pdf"&gt;Lecture 12 - Requirement Modelling&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="user-interface-design"&gt;User Interface Design&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/slides/Lecture-13-LUMS-S26.pdf"&gt;Lecture 13 - UI Design&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="object-oriented-analysis-and-design"&gt;Object-oriented analysis and design&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lums-cs360-web.github.io/lums-cs360/general/slides/Lecture-14-LUMS-S26.pdf"&gt;Lecture 14 - OOAD&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!--* [OOP Notes]({attach}slides/OONotes.pdf)
* [Objects, UML, and Java Draft Slides (4up)]({attach}slides/02-OO.4up.pdf)
* [Objects, UML, and Java Draft Slides (1up)]({attach}slides/02-OO.pdf)
* [Objects, UML, and Java Draft Slides (Clean Version)]({attach}slides/02-OO-clean.pdf)

## &lt;a id="mvc" href="#mvc"&gt;MVC&lt;/a&gt; &amp; Object-Oriented Graphical User Interfaces

* [MVC and Android Part I + Swing Slides (Tang)]({attach}slides/03_MVC-Android_Tang.pdf)
* [MVC and Android Part I + Swing Slides (1up)]({attach}slides/03-MVC-Android.pdf)
* [MVC and Friends Guest Lecture (Campbell)]({attach}slides/MVC.pdf)
* [3-Tier Architecture Guest Lecture (Pang) (4up)]({attach}slides/3-Tier.pdf)
* [🦾 MVC vs MVC 💪]({attach}slides/MVC2.pdf)
* [MVC - Campbell]({attach}slides/020mvc.pdf)
* [Fixed MVC Android/Swing Slides]({attach}slides/MVCAndroid.pdf)
* [MVC and Android Part I Draft Slides (4up)]({attach}slides/MVCAndroid4up.pdf)
* [MVC and Android Part I Draft Slides (1up)]({attach}slides/MVCAndroidPart1.pdf)
* [MVC and Android Part II Draft Slides (4up)]({attach}slides/MVCAndroid4up2.pdf)
* [MVC and Android Part II Draft Slides (1up)]({attach}slides/MVC_AP2DS.pdf)
* [User Interface Design (1up)]({attach}slides/04-User-Interface.1up.pdf)
* [User Interface Design (4up)]({attach}slides/04-User-Interface.4up.pdf)

## More Objects UML &amp; Java

* [B2 OO Slides (has navigability)]({attach}slides/BOO.pdf)
* [B2 Mentis for Review]({attach}slides/MidRev.pdf)


# Android

## Android Fragments

* [Android Fragments Notes + Example]({attach}slides/Android_Fragments_Notes_Example.pdf)
* [Code Conventions (Schoepp)]({attach}slides/Code_Conventions_Schoepp.pdf)

## Android Activities Resources 

* [Android Studion Tips]({attach}slides/AST.pdf)
* [Android Activities]({attach}slides/AA.pdf)
* [Android Notes for Professionals]({attach}slides/ANP.pdf)

# Git

* [Git Introduction and Practices Notes (Wang)]({attach}slides/Git_Introduction_and_Practices.pdf)
* [Hand drawn Models of Git: Wizard Towers versus Centralized]({attach}slides/HDMofG.pdf)
* [PAST Lab Git Notes (Romansky)]({filename}/labs/past_notes.md)
* [Past Git Ignore Repo](https://github.com/github/gitignore)

# Software Process 

* [Software Process]({attach}slides/02_Process_Tang.pdf)
* [Software Process - Campbell]({attach}slides/030process-campbell.pdf)
* [Software Process Draft Slides (4up)]({attach}slides/SP.pdf)
* [Software Process Draft Slides (1up)]({attach}slides/SP2.pdf)

## Requirements

* [Requirements]({attach}slides/03_Requirements_Tang.pdf)
* [Requirements - Campbell]({attach}slides/040requirements-campbell.pdf)
* [Requirements Draft Slides (4up)]({attach}slides/SP05.pdf)
* [Requirements Draft Slides (1up)]({attach}slides/SP05_2.pdf)

# Testing 

* [Testing]({attach}slides/04_Testing_Tang.pdf)
* [Testing Draft Slides (4up)]({attach}slides/06_Testing_4up.pdf)
* [Testing Draft Slides (1up)]({attach}slides/06_Testing.pdf)
* [Newer Testing Slides (1up)]({attach}slides/06-Testing.pdf)

* [B2 Midterm 2 Mentis for Review]({attach}slides/301_Midterm2Review.pdf)

# Design Patterns

Reading: [Course notes]({filename}/general/resources.md#course-notes) part 2

* [Design Patterns]({attach}slides/05_Patterns_Tang.pdf)
* [Design Patterns Part I Draft Slides (4up)]({attach}slides/07-Patterns-01.4up.pdf)
* [Design Patterns Part I Draft Slides (1up)]({attach}slides/07-Patterns-01.pdf)
* [Design Patterns Part II Draft Slides (4up)]({attach}slides/07-Patterns-02.4up.pdf)
* [Design Patterns Part II Draft Slides (1up)]({attach}slides/07-Patterns-02.pdf)
* [Design Patterns Part III Draft Slides (4up)]({attach}slides/07-Patterns-03.4up.pdf)
* [Design Patterns Part III Draft Slides (1up)]({attach}slides/07-Patterns-03.pdf)
* [Design Patterns Part IV Draft Slides (4up)]({attach}slides/07-Patterns-04.4up.pdf)
* [Design Patterns Part IV Draft Slides (1up)]({attach}slides/07-Patterns-04.pdf)
* [Decorator Pattern Slides (4up)]({attach}slides/decorator-pattern-talk.pdf)


# UML Sequence Diagram

Reading: [Course notes]({filename}/general/resources.md#course-notes) part 1 pages ~73-76!

* [Sequence Diagrams - Tang]({attach}slides/Sequence-Diagrams.pdf)
* [Sequence Diagrams - Campbell]({attach}slides/050sequenceDiagrams-campbell.pdf)
* [Sequence Diagram Draft Slides (4up)]({attach}slides/Sequence_Diagram_4up.pdf)
* [Sequence Diagram Draft Slides (1up)]({attach}slides/Sequence_Diagram_1up.pdf)

# Design Patterns (Continued)

Reading: [Course notes]({filename}/general/resources.md#course-notes) part 2

# Refactoring 

* [Refactoring]({attach}slides/06_Refactoring_Tang.pdf)
* [Refactoring Draft Slides (4up)]({attach}slides/08-Refactoring_4up.pdf)
* [Refactoring Draft Slides (1up)]({attach}slides/08-Refactoring.pdf)

# Human Error

* [Human Error Draft Slides (4up)]({attach}slides/09-Human-Error.4up.pdf)
* [Human Error Slides (4up)]({attach}slides/09_Human_Error_4up.pdf)

# Optimization

* [Optimization Draft Slides (4up)]({attach}slides/10-Optimization.4up.pdf)
* [Optimization Draft Slides (1up)]({attach}slides/10-Optimization.pdf)
* [Optimization Slides (4up)]({attach}slides/10_Optimization_4up.pdf)

# Retrospectives

* [Retrospectives Slides (4up)]({attach}slides/11-Retrospectives.4up.pdf)

# Review

* [Review Draft Slides (4up)]({attach}slides/10-Review.4up.pdf)
* [Review Draft Slides (1up)]({attach}slides/10-Review.pdf)

# Future

* [Future Draft Slides (4up)]({attach}slides/12-Future.4up.pdf)

# Old Resources

* [Fall 2021 Outline]({filename}outline_old.md)
* [Old Lab Recordings]({filename}old_recordings.md)
* [Old Project Problem Description F22]({filename}old_project_description.md)
* [Old Project Problem Description F24]({filename}old_project_description_f24.md) --&gt;</content><category term="general"/><category term="resources"/><category term="policy"/><category term="contact"/><category term="wellness"/></entry></feed>