ECE454, Fall 2026
University of Toronto
Instructor:
Ashvin Goel
The labs consist of a number of programming assignments. These lab assignments will be released here. All the assignments are to be done individually.
Please be aware that this course will require significant time for the programming assignments. However, the assignments have been designed so that there is enough time to completely finish each assignment. Each assignment specifies the code that needs to be read and understood. Please read the handouts carefully before starting with the assignments.
You can use the lab sessions to get help from TAs. You can also get help on the Piazza website. Please do not post code on Piazza. Doing so will be treated as an academic offense. You can also post private messages on Piazza that are only visible to TAs and the instructors.
Note that all marking will be performed by the TAs after the due date outside lab hours, and hence it is not required to attend the lab sessions.
The assignments, their release dates, and their due dates are shown in the table below. These assignments are worth 25% of the total course mark. The breakup of the marks is shown in the last column of the table.
Assignments will be released on Thursday evenings and due on Sunday nights at 11:59 pm, unless indicated below.
Penalties will be applied for late submission. The late penalty is 20% of the assignment's mark for every 24 hour delay, so you receive no marks after 4 days.
| Lab | Topic | Release Date | Due Date | Time Alloted | Marks |
|---|---|---|---|---|---|
| 1 | Profiling and Compiler Optimizations | Sep 17 | Sep 27 | 1 week | 3 |
| 2 | Memory Performance | Sep 24 | Oct 18 | 3 weeks | 6 |
| 3 | Dynamic Memory Allocation | Oct 15 | Nov 8 | 2 weeks | 6 |
| 4 | Pthreads and Synchronization | Nov 5 | Nov 22 | 2 weeks | 4 |
| 5 | Game Parallelization | Nov 19 | Dec 6 | 2 weeks | 6 |
Your ECE454 lab assignment code will be marked on the UG lab machines. These machines run the Linux operating system and have names that match ug*.eecg.utoronto.ca, e.g., ug149.eecg.utoronto.ca. The range of machine that are accessible is roughly ug51-ug80 (SF4102), ug132-ug180 (GB243), ug201-ug225 (SF2102) and ug226-249 (GB251E).
We recommend developing and debugging your code on the lab machines. If you have never logged into these machines, your username is your UTORid. If you do not have an account on the lab machines, or if you have any issues with the lab machines, including with forgotten passwords, email Lab Help and make sure to include your name, UTORid and course code (ECE419) in your email. After your first login, make sure to change your password using the passwd command.
You may be able to develop and run the lab code on your home machine. If you run into any issues, please get help from other students on Piazza. The teaching team may or may not be able to support you.
You will be using the submitece454f command to submit your lab files. This command is located in the /local/bin directory on the UG machines.
Some students exceed their disk quota and then they are unable to access the lab machines. In this case, a remote ssh connection will still work (from ECF machines, or from a friend's account). After logging into the lab machines, run the command: du -sk * .??* to find out exactly where the space is being used. Huge browser caches and/or unemptied Trash are the usual causes. You can also use the command quota -s to find out your disk quota on the machines.
For any other issues, please ask for help at the email shown above.