Instructor: Ding Yuan
Course Number: ECE454 Lec01

Discussion (piazza)
Lab Assignments
Schedule and Lecture Notes
Grades (UofT portal)

Computer Systems Programming

ECE454 Lec01, Fall 2014
University of Toronto


∗ [Nov/26] Practice Final exame (2013) (Solution), and some other exams.

∗ [Nov/19] Homework 5 released. Due: Dec. 4th, 11:59PM

∗ [Nov/7] Homework 4 released. Due: Nov 20th, 11:59PM

∗ [Oct/31] Midterm solution posted

∗ [Oct/16] Practice Midterm (2013)

∗ [Oct/10] Homework 3 released. Due: Nov. 6th, 11:59PM

∗ [Sep/25] Homework 2 released. Due: Oct 14th Oct 9th, 11:59PM

∗ [Sep/11] Homework 1 released. Due: Sept 25th, 11:59PM

∗ [Sep/4] Welcome to ECE 454 Lec01, 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

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

Lecture Times: 10-11am Tue, Wed, Fri (RS208)

Lab Times: Thu 12-3pm, 3-6pm (GB251 and GB243). TA will be available in the first hour of each session, in GB243.

Office Hours: Wed 3-4pm (SF2002E)

Midterm exam: October 27, 2014, Monday, 7-9PM, Location: GB 404 and GB 405

Course Policies

Final exam: 40%
Midterm exam: 25%
Lab assignment: 35% (5%, 7%, 9%, 7%, 7% respectively for each lab assignment)
Bonus points for answering questions on Piazza: every instructor endorsed answer will get 0.5 bonus points, up to 1 bonus point for in-class participation. 2 bonus points maximum.

Missed Labs: Missed labs will be made up on a case-by-case basis. Please have appropriate documentation (i.e. doctor's note, etc...)

Cheating: 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

Please provide anonymous course feedback by posting anonymous notes on Piazza.