Instructor: Cristiana Amza
Course Number: ECE454
        

Home
Discussion (piazza)
Lab Assignments
Schedule and Lecture Notes
Past Exams
Sample Codes
Grades (UofT portal)

Computer Systems Programming

ECE454, Fall 2014
University of Toronto

 

Announcement

[Sep/5] 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.

Textbook

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: Tue, Wed, Fri 10-11am  (GB303)

Lab Times:

Office Hours: Tue 3-4pm (BA4142)

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

Course Policies

Grading:
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.

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.