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 below.
You can earn lecture participation credit by attending lecture on time. Instructions will be given during lecture.
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 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 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.