Instructor: Cristiana Amza
Course Number: ECE454

Discussion (piazza)
TA Schedule by week
Lab Assignments, Lecture Notes, and Grades (UofT portal)

Computer Systems Programming

ECE454, Fall 2016
University of Toronto



* [Sep/8] Welcome to ECE 454, class website online.

Course Description

This course goes beyond prior programming courses to teach students to better understand computer hardware, operating systems, and compilers from a programmer's perspective. In particular this course leverages this improved understanding to allow students to program for good performance. Students will learn how to measure and understand program execution and behavior, how to get the most out of an optimizing compiler, how memory is allocated and managed, and how to exploit caches and the memory hierarchy. Furthermore, students will learn about current trends in multicore, multithreaded, and data parallel hardware, how to exploit parallelism in their programs, the fundamentals of parallel architectures and synchronization techniques, and the recent trend of distributed data analytics (e.g., big data analytics) ---these latter topics are relatively new to undergraduate curricula and in increasing demand in industry. Students will get hands-on experience with most topics through programming assignments.

This site provides instructor's lecture notes and all lab-related information.

Course announcements and the course discussion is on the Piazza web site.

Course grades are available at the UofT portal site.


There is no required textbook for this course.

Optional reading: Computer Systems: A Programmer's Perspective (2nd Edition), Randal E. Bryant and David R. O'Hallaron, Prentice Hall, 2010

Course Information

This syllabus provides an overview of the course.

The lecture and lab times and office hours are shown below:

Lecture Times: Tuesday, Thursday, Friday 12:00 - 13:00 PM,  (MC 252)

Lab Times: Monday 9:00AM - 12:00PM and Monday 15:00PM - 18:00PM  (Both days GB 243 and GB 251)

Professor Office Hours: Tuesday and Thursday 1:00PM - 2:00PM

TA Office Hours: TBA

Midterm exam: TBA

Course Policies

Final exam: 40%
Midterm exam: 25%
Lab assignment: 35% (15%, 20%, 25%, 20%, 20% respectively for each lab assignment)
Bonus points for answering questions on Piazza: every instructor endorsed answer will get 0.5 bonus points, 2 bonus points maximum.
Plagiarism: Each group should work independently. You may confer with each other, but your work should be your own. You should understand your code well enough to describe it to the TA and make simple changes to it when asked to.

Course Feedback

The teaching team welcomes feedback, by e-mail, on Piazza, and especially in person.