Individual
Lab Assignments
Non-Lab Assignments
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 in the syllabus.
You can earn lecture participation credit by attending lectures on time. Instructions will be given during lectures.
As of Fall 2025, Wooclap is used for lecture participation.
- You must login with your ualberta email address to get credit.
- You will not get credit for your using any other account.
- For lecture participation, some of the lowest marks are dropped. No extensions, excused absences, or weight transfers are possible. See the outline for more information.
- Entering answers in Wooclap without attending the course, either in-person or on Zoom will be considered a violation of the Student Academic Integrity Policy.
- Entering answers for someone else will be considered a violation of the SAIP.
- Sharing the Wooclap event code with other students will be considered a violation of the SAIP.
- See the outline section on contract cheating for more information.
Exams
- Exam Conduct
- If you miss an exam
- Exam date and time is on BearTracks when the registrar posts it. The registrar doesn't usually post exam dates and times until a few weeks before the end of the semester.
Requirements
This is a software engineering class.
One tiny mistake in software engineering is how you end up with a $2B AWS outage (last week), all air traffic halted (crowdstrike), 360 dead Boeing passengers https://www.businessinsider.com/boeing-software-errors-jeopardized-starliner-spaceship-737-max-planes-2020-2, 70,000 people's driver's licenses/IDs leaked (Discord), and so on. Most of the time when something horrible happens that makes the news as a result of a software problem, it is the result of either a functional requirement being violated (the code is 99.9999% working), or it is the result of a nonfunctional requirement being violated (the code is 100% working, but doesn't meet safety (Boeing), security (Discord), speed, latency, testing (Crowdstrike), quality, maintainability, complexity, etc. nonfunctional requirements).
A part of software engineering is being able to know when something is critical (a tiny mistake will hurt people or cost a lot of money or cause legal liability or crimes) and knowing when something isn't important and that if that part isn't quite right, it'll be okay. If the requirements for a project say something is critical, then it is critical.
If an assignment or project in this course says that you will get a mark of zero if you do something forbidden or fail to do something required, then you will get a mark of zero. These zeroes will be applied, even if your code is otherwise perfect.
Please double-check, triple-check requirements before submitting code (not just at the start of an assignment) to ensure that you don't receive a zero. Continue to do so once you've graduated from solving my little assignments to help avoid writing code that hurts people.
It is also your job as a software engineer to get clarification on the requirements if they are not clear.