Course Outline Winter 2024
University of Alberta
CMPUT 404 - Web Applications and Architecture
LEC-B1
Winter 2024
- eClass Page: https://eclass.srv.ualberta.ca/course/view.php?id=95227
- Home Page: https://uofa-cmput404.github.io/
- Lecture
- Labs
- Contact Information
- Course Content
- Learning Resources
- Grade Evaluation
- Policies for Late and Missed Work
- Remote Delivery Considerations
- Student Responsibilities
- Appropriate Collaboration: Quizzes & Participation
- Appropriate Collaboration: Labs & Assignments
- Appropriate Collaboration: Group Projects
- Appropriate Collaboration: General
- Exam Conduct
- Lecture Conduct
- Students Eligible for Accessibility-Related Accommodations
- Required Equipment
- On-Campus Computer Labs
- Recording and/or Distribution of Course Materials
- Learning and Working Environment
- Feeling Stressed, Anxious, or Upset?
- Additional Information
Lecture
- Monday Wednesday Friday, 1:00PM to 1:50PM, CAB 265
- Hybrid Synchronous. Recordings will not be available without an approved excuse or registered accommodations. You must attend live.
- You will be required to attend in person for some lectures/labs.
Labs
- H01: Monday, 5:00PM to 7:50PM, CSC B-10
- H02: Wednesday, 5:00PM to 7:50PM, NRE 2-003
- Lab Information
Contact Information
- Lecturer: Dr. Hazel Victoria Campbell
- Email: hazel.campbell@ualberta.ca
- Office: ATH 4-05
- Office hours (ATH 4-05): Monday, Wednesday, Friday 2:10-2:50PM
- Office hours (Zoom): (email to make an appointment)
- TA Contact Info and Office hours is on eClass
Course Content
Course Description: This course introduces modern web architecture, ranging from user-facing applications to machine-facing web-services, through project-based learning. Topics include: multi-platform Web application frameworks utilizing SQL and NoSQL storage; HTTP/web architecture and protocols; integration with Web APIs; web data exchange and serialization.
Prerequisites: CMPUT 301, CMPUT 291.
Objectives and Learning Outcomes: The course objective is to gain an overview of web-based technologies, with a software development focus on webservices and web applications.
- The World-Wide Web: the tools and services.
- HTML
- CSS
- HTTP
- TCP/IP
- CGI
- Web Frameworks
- Web Applications
- Web Services
- Javascript
- XML
- Web Mining (scraping)
- REST
- Security mechanisms, authentication, encryption, firewall, Secure Socket Links (SSL), Virtual Private Networks, etc.
- AJAX
- WebSockets
Course Schedule and Assigned Readings:
The weekly topic schedule is likely to be updated during the term; please see the live version.
Learning Resources
Textbook: There is no required textbook for this course. Each module will cite online resources as required readings. You will find the links to each topic on the course eClass page.
Recommended or Optional Learning Resources: Additional resources may be provided by links from this site or the course eClass page.
Course Fees: Students will be required to purchase online hosting through Heroku in order to complete the coursework and course project. The expected fees are $14-21 USD, or approximately $30 CAD.
On-Line Homework Disclaimer
On-line 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 will invent or you will be assigned a random ID to enter into the system. Only the random ID, performance on the on-line homework and the affiliation to the University of Alberta 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 any concerns about this, please contact the instructor of the course.
- Registration in the system and any monetary transactions are of your own accord and not the responsibility of the University.
- Students should be mindful of protecting their personal information and should be aware of how their personal information might be used and/or shared.
- Students MUST NOT use their @ualberta email address or CCID to register into the system and instead should use a non-identifying email address or account.
Academic Success Centre
The Academic Success Centre provides professional academic support to help students strengthen their academic skills and achieve their academic goals. Individual advising, appointments, and group workshops are available year round in the areas of Accessibility, Communication, Learning, and Writing Resources. Modest fees apply for some services.
Grade Evaluation
Note the last column, it shows collaboration models for each unit of work. These styles are better described on the CS course policy page.
What | Weight | Collaboration |
---|---|---|
Participation | 10% | Solo Effort |
Lab Assignments (5-6) | 30% | Consultation |
Project Part 0 | 1% | Teamwork |
Project Part 1 | 7% | Teamwork |
Project Part 2 | 7% | Teamwork |
Project Part 3 | 5% | Teamwork |
Project Part 4 | 10% | Teamwork |
Final Exam | 30% | Solo Effort |
Extra Credit | +1% | Solo Effort |
Grades are unofficial until approved by the Department and/or Faculty offering the course.
Labs
Labs and Project Parts are due at 16:00 on the date of your registered lab section in BearTracks (Monday or Wednesday). In the labs, the TAs will explain the submission process (typically online). Late submissions will not be accepted for any reason.
Although you may program in python at home or outside the lab, your implementations will be scored based on their behavior on a standard Ubuntu Linux machine, such as the CS department lab computers, or an Ubuntu VM.
Participation
Most participation marks will be in class during class. You can participate over Zoom or in-person. To participate in-person please bring a working cellphone, tablet, or laptop. There may be other participation marks from time to time. See Missed Term Work: Participation below.
Letter Grades
There is no fixed formula for translating your composite marks into a final grade. The final letter grade will be assigned based on how your course percentage represents mastery of the course material according to the University of Alberta grading system guidelines. The guidelines state that "Grades reflect judgements of student achievement made by instructors and must correspond to the associated descriptor. These judgements are based on a combination of absolute achievement and relative performance in a class. " This quote and further information about the grading system including the descriptors can be found in the University Calendar. The CS Department policies about grading also apply.
How many % do I need in the course to get an A? To get a B? To get a C? We do not use pre-defined percentages of your final mark to compute your final grade, but instead use our judgement of how your final percentage indicates the level of mastery in the table above for an A, B, C, D+. This is done at the end of the semester. A 50% or better final grade usually earns at least a D.
This is the standard system in use by most Computing Science courses at the University of Alberta. However, it may not be what you are used to from other institutions. The department of Computing Science believes this produces a fair evaluation and our extensive experience supports this.
Letter | Descriptor | Interpretation |
---|---|---|
A | Excellent | Consistently original thinking that extends the material, demonstrated depth and breadth in the material, ability to integrate material with other subjects, ability to analyze and synthesize material at various levels of abstraction. |
B | Good | Like an A, but not consistent over time, or weak in a specific area. |
C | Satisfactory | Understand the core material but not its subtleties, can apply it to simple situations on own and to more complex situations with hints, evidence that the material has changed the way of thinking. |
D+ | Poor | Understand some of the core material but not its subtleties, can apply it to simple situations but often needs assistance, evidence that the material has had some change on the way of thinking. |
D | Minimal Pass | Shows some understanding of parts of the material, cannot apply it without some direction, little evidence that the material has changed the way of thinking |
F | Failure | Little evidence of understanding of even the surface issues, poor analysis and synthesis, inability to apply the material. |
- At the end of the semester, the minimum overall percentage demonstrates "Excellent" in the table above will be the minimum percentage for an A-.
- The minimum overall percentage demonstrates "Good" will be the minimum percentage for a B-.
- The minimum overall percentage demonstrates "Satisfactory" will be the minimum percentage for a C-.
- The minimum overall percentage demonstrates "Poor" will be the minimum percentage for a D.
- Anything over 50% is usually at least a D, sometimes it is higher than a D.
Every semester contains different material, since every semester we try to improve the course, and we also need to constantly create new questions and assignments to mitigate cheating. Thus, the breakpoints change from semester to semester. However, these changes do not depend on the class average, they depend on the percentage that demonstrates different levels in the table above!
For more information, see the Percentages and Letter Grades explanation.
Statement of Expectations for AI Use
You MUST not submit work by Chat GPT as your own, that is plagiarism. This also applies to other "AI" and Generative Models: Lex.page, DALL-E2, Google BARD, Microsoft Bing, and others. If you use ChatGPT you must cite it. This includes the Entity, Resource, Subject, and Date. For example:
// The following function from Microsoft, Bing, "How do I write a merge sort in JavaScript?", 2023-08-31
function mergeSort(array) {
If you use ChatGPT you must cite it, but it's probably better to Google what it tells you and find a real citation because:
ChatGPT is wrong a lot. 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 sentences, with opposite meanings, it will pick the sentence that looks more like English it has seen, it does not pick the one that is most correct. This means you need to double-check that what it tells you is actually correct.
Stackoverflow is always a better resource than Large Language Models such as ChatGPT, but of course if you use code from Stackoverflow or any other website, you must cite it.
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.
- ChatGPT example from CMPUT 229:
- Me: "What is the difference between the b and j pseudoinstruction in RISC-V?"
- 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, > > in the case of b, one of the registers is always x0 (the zero register), so the comparison > is always false, effectively causing an unconditional jump. ...the key difference between b > 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."
- There are 3 problems with this answer:
- 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.
- 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.
- 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.
Re-Evaluation of Term Work
Re-Evaluation of Term Work follows the Computing Science department course policies. Any questions or concerns about marks on a particular assignment must be brought to the attention of the instructor (not a TA) within 10 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. However, clerical errors such as incorrectly computing or recording a mark may be raised at any time prior to 2 working days following the final exam. It is the student's responsibility to confirm that their term work has been recorded properly.
Re-examination
A student who writes the final examination and fails the course may apply for a re-examination. Re-examinations are rarely granted in the Faculty of Science. Re-examinations are governed by university-wide Academic Regulations and Faculty of Science Academic Regulations. Misrepresentation of Facts to gain a re-examination is a serious breach of the Code of Student Behaviour.
Past or Representative evaluative Material
Will be posted on eClass.
Policies for Late and Missed Work
Late Policy
Absolutely no late work will be accepted.
Missed Term Work
Missed Term Work or Final Exam Due to Non-medical Protected Grounds (e.g., religious beliefs): When a term assessment or final exam presents a conflict based on non-medical protected grounds, students must apply to the Academic Success Centre for accommodations via their Register for Accommodations website. Students can review their eligibility and choose the application process specific for Accommodations Based on Non-medical Protected Grounds.
It is imperative that students review the dates of all course assessments upon receipt of the course outline, 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.
Missed Term Work: Assignments, Labs, Projects, Midterm Exams: A student who cannot complete a course component (except the final exam, see the next section) due to incapacitating illness, severe domestic affliction or other compelling reasons must contact the instructor within two working days of missing the assessment, or as soon as possible, to request an excused absence. If an excused absence is granted, then weight will be transferred to other course components. 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 Code of Student Behaviour. In all cases, instructors may request adequate documentation to substantiate the reason for the absence at their discretion.
Missed Term Work: Participation: One third (rounded down) of the lowest marks for participation will be dropped when calculating the course mark. No late participation will be accepted. Failure to participate on time for any reason will result in a mark of zero. Please note that you can miss one third of the participation opportunities without penalty.
Deferred Final Examination: A student who cannot write the final examination due to incapacitating illness, severe domestic affliction or other compelling reasons can apply for a deferred final examination. Such an application must be made to the student’s Faculty office within two working days of the missed examination and must be supported by appropriate documentation or a Statutory Declaration (see calendar on Attendance). Deferred examinations are a privilege and not a right; there is no guarantee that a deferred examination will be granted. The Faculty may deny deferral requests in cases where less than 50% of term work has been completed. Misrepresentation of facts to gain a deferred examination is a serious breach of the Code of Student Behaviour.
Remote Delivery Considerations
Unless otherwise instructed by an instructor, this course requires attendance in-person or via Zoom during the scheduled lectures and labs. Some lectures or labs require in-person attendance, like the last lab for presentations, and for exams.
- Most Lectures will be given in hybrid format. The lecture will be given in the lecture room on campus. At the same time, the lecture will also be streamed via Zoom and a recording of the lecture content will be made.
- Lecture recordings will be available on request only. If you want a lecture recording, you must contact the instructor.
- Students are expected to attend during the lecture either on Zoom or in-person.
- Presentations and Guest Lectures will be given in-person only.
- Most lab sessions will be available in a hybrid format: you may attend either in-person or online.
- For group projects, the entire group must be online, or the entire group must be in-person.
- For group presentation, you must present in-person.
- Exams must be taken in-person. They will not be online. You must bring your Student ID (One Card).
- Scheduled office hours will be available in-person.
- Additional office appointments will be conducted online (usually Zoom, maybe Google Meet). Email the instructor to set up an appointment.
Recordings of Synchronous Activities
- Please note that class times for this course will be recorded. Recordings of this course will be used for the purposes of accommodating students who experienced illness, domestic affliction, improving accessibility and will be disclosed to other students enrolled in this section of the class, teaching assistants, university officials, and other professors in the CS department.
- Students have the right to not participate in the recording and are advised to turn off their cameras and audio prior to recording; they can still participate through text-based chat. It is recommended that students remove all identifiable and personal belongings from the space in which they will be participating.
- Recordings will be kept until the end of the semester and accessible by eClass, Google Drive, or Zoom Cloud Storage. Please direct any questions about this collection to the instructor of this course.
- Recordings will be made available only to students who are unable to attend in person or via Zoom at the time of the leture due to incapacitating illness, severe domestic affliction, duty to accommodate or other compelling reasons.
In Case of Emergency
However, in the case that some parts of the class are moved on-line, for example due to an emergency the following will apply:
Technology for Remote Learning: To successfully participate in remote learning in this course, it is recommended that students have access to a computer with an internet connection that can support the tools and technologies the University uses to deliver content, engage with instructors, TAs, and fellow students, and facilitate assessment and examinations. Please refer to Technology for Remote Learning - For Students for details. If you encounter difficulty meeting the technology recommendations, please email the Dean of Students Office (dosdean@ualberta.ca) directly to explore options and support.
Please contact the instructor by the add/drop deadline if you do not have access to the minimum technology recommended. The instructor will make arrangements for accommodating students who contact the instructor before this date. Failure to do so may result in a zero in any assessment that depends on the minimum technology.
Remote Proctoring Consideration: We may use a remote proctoring service for exams. Your computer and environment may be monitored during exams. You should arrange for a place to write timed exams without interruption. Tablets and mobile devices are incompatible with remote proctoring services.
Home-Based Lab Activities: As part of the learning experience in this course, you will be required to undertake certain activities in or around your place of residence. To ensure that you undertake the activity safely and fully informed of the risks, please review the University of Alberta’s Remote Learning Lab-Based Assignment Information Advisory. If you have questions or concerns, contact your instructor.
Student Resources for Remote Learning: Online learning may be new to you. Check out tips for success and find out more about online learning on the Campus Life page, and specifically on the Academic Skills Online & Remote Delivery Resources page.
Student Responsibilities
Academic Integrity and Student Conduct
The University of Alberta is committed to the highest standards of academic integrity and honesty, as well as maintaining a learning environment that fosters the safety, security, and the 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. Students are particularly urged to familiarize themselves with the provisions of the Code of Student Behaviour and the Student Conduct Policy, and avoid any behaviour that could potentially result in suspicions of academic misconduct (e.g., cheating, plagiarism, misrepresentation of facts) 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.
All students are expected to consult the Academic Integrity website for clarification on the various academic offences. All forms of academic dishonesty are unacceptable at the University. Any suspected academic offence in this course will be reported to the College of Natural and Applied Sciences. Suspected cases of non-academic misconduct will be reported to the Dean of Students. The College, the Faculty of Science, and the Dean of Students are committed to student rights and responsibilities, and adhere to due process and administrative fairness, as outlined in the Code of Student Behaviour and the Student Conduct Policy. Anyone who is found in violation is likely to receive a sanction. Typical sanctions for academic misconduct include conduct probation, a mark reduction or a mark of 0 on an assessment, a grade reduction or a grade of F in a course, a remark on the transcript, and a recommendation for suspension or expulsion. Sanctions for non-academic misconduct include conduct conditions, fines, suspension of essential or non-essential University services and resources, and suspension or expulsion from the University.
Appropriate Collaboration: Exams
Exams are confidential. No discussion of the contents of the exam is permitted except with instructors.
Appropriate Collaboration: Quizzes & Participation
Quizzes and Participation are Solo Effort and must be completed by the student registered in the course without external assistance from any individual or organization. Students may only submit work authored by themselves.
Appropriate Collaboration: Labs & Assignments
Students are not permitted to copy solutions on homework assignments. Here are some tips to avoid copying on assignments:
- Do not write down something that you cannot explain to your instructor.
- Do not copy and paste something that you cannot explain to your instructor.
- Do not copy and paste something without citing it.
- When you are helping other students, avoid showing them your work directly. Instead, explain your solution verbally in terms of ideas instead of reading them your code. Students whose work is copied also receive academic sanctions.
- 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 copying and will result in academic sanctions for both you and your fellow student.
- 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.
-
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.
-
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.
- For some of the 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.
- If you include code or ideas from someone who isn't you (including from an Generative AI or LLM) you must cite it. Here is an example of an appropriate citation:
# The following function from Django Software Foundation and contributors, "Writing your first Django app, part 2", 2024-01-05
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
For programming assignments 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. Submissions will be retained for future comparisons.
Appropriate Collaboration: Group Projects
- As long as you are a part of a group, you are responsible for everything in the group project, whether or not you participated in every component.
- A group may only submit work authored by group members or appropriately cited and credited code that does not violate the author's license.
Appropriate Collaboration: General
Exam Conduct
- If you are not on the class list, you may not write the examination.
- Your student photo I.D. is required at exams to verify your identity.
- Students will not be allowed to begin an examination after it has been in progress for 30 minutes. Students must remain in the exam room until at least 30 minutes has elapsed.
- Do not start the test or open the test booklet until instructed.
- All electronic devices must be turned off and stored in your bags. The only permitted electronics are those being used for accessibility or accomodations. This includes calculators, smart watches, and headphones.
- If noise distracts you, bring ear plugs.
- You must leave your bag at the front of the classroom.
- Do not write down letters for multiple-choice questions, circle your answer.
- You are not allowed to keep any part of the exam, scratch paper, or your notes.
- You must sign the class list and the exam.
Lecture Conduct
- Cell phone audio/ringers are to be turned off during lectures, labs and seminars.
- Cell phone and computer use during the lecture is only permitted for participation, note-taking, and other activities directly related to the lecture.
Students Eligible for Accessibility-Related Accommodations
In accordance with the University of Alberta’s Discrimination, Harassment, and Duty to Accommodate policy, 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, and students can learn more about eligibility on the Register for Accommodations website.
It is recommended that students apply as early 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.
Required Equipment
A tablet, phone, or other mobile device will NOT work for this course. You need a laptop or desktop computer, running Windows, Mac OS X/11+, or Linux. A Chromebook probably will not work unless it can run Ubuntu.
On-Campus Computer Labs
See the Undergraduate Conditions of Use and Lab Policies for information about undergraduate labs.
Recording and/or Distribution of Course Materials
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 author(s).
Learning and Working Environment
The Faculty of Science is committed to ensuring that all students, faculty and staff are able to work and study in an environment that is safe and free from discrimination, harassment, and violence of any kind. It does not tolerate behaviour that undermines that environment. This includes virtual environments and platforms.
If you are experiencing harassment, discrimination, fraud, theft or any other issue and would like to get confidential advice, please contact any of these campus services:
- Office of Safe Disclosure & Human Rights: A safe, neutral and confidential space to disclose concerns about how the University of Alberta policies, procedures or ethical standards are being applied. They provide strategic advice and referral on matters such as discrimination, harassment, duty to accommodate and wrong-doings. Disclosures can be made in person or online using the Online Reporting Tool.
- University of Alberta Protective Services: Peace officers dedicated to ensuring the safety and security of U of A campuses and community. Staff or students can contact UAPS to make a report if they feel unsafe, threatened, or targeted on campus or by another member of the university community.
- Office of the Student Ombuds: A confidential and free service that strives to ensure that university processes related to students operate as fairly as possible. They offer information, advice, and support to students, faculty, and staff as they deal with academic, discipline, interpersonal, and financial issues related to student programs.
- Office of the Dean of Students: They can assist students in navigating services to ensure they receive appropriate and timely resources. For students who are unsure of the support they may need, are concerned about how to access services on campus, or feel like they may need interim support while you wait to access a service, the Dean of Students office is here to help.
Feeling Stressed, Anxious, or Upset?
It's normal for us to have different mental health experiences throughout the year. Know that there are people who want to help. You can reach out to your friends and access a variety of supports available on and off campus at the Need Help Now webpage or by calling the 24-hour Distress Line: 780-482-4357 (HELP).
Student Self-Care Guide: This Self-Care Guide, originally designed by the Faculty of Native Studies, has broader application for use during students’ learning. It provides some ideas and strategies to consider that can help navigate emotionally challenging or triggering material.
Additional Information
Policy about course outlines can be found in Course Requirements, Evaluations Procedures and Grading of the University Calendar.
Policies applicable to CS Department courses can be found on the Department Course Policies page.
Land Acknowledgement: The University of Alberta respectfully acknowledges that we are situated on Treaty 6 territory, traditional lands of First Nations and Métis people.
To learn more about the significance of this land acknowledgement, please read this useful article and associated links to more information.
Disclaimer: Any typographical errors in this Course Outline are subject to change and will be announced in class. The date of the final examination is set by the Registrar and takes precedence over the final examination date reported in this syllabus.
Copyright: Dr. Hazel Campbell, Department of Computing Science, Faculty of Science, University of Alberta (2023, 2024). Dr. Abram Hindle, Department of Computing Science, Faculty of Science, University of Alberta (2023).
Update History
- 2024-01-08: Initial version.