∗ [Oct/13] Homework 3 released. Due: Nov. 7th, 11:59PM
∗ [Sep/28] Homework 2 released. Due: Oct 12th, 11:59PM
∗ [Sep/14] Homework 1 released. Due: Sept 28th, 11:59PM
∗ [Sep/7] Welcome to ECE 454, class website online.
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 Quercus.
There is no required textbook for this course.
Optional reading: Computer Systems: A Programmer's Perspective (3rd Edition), Randal E. Bryant and David R. O'Hallaron, Prentice Hall, 2015
The lecture and lab times and office hours are shown below:
Lecture Times: 5-6PM Fri (MS2170), 3-5PM Wed (MS2170)
Lab Times: Tue 12-3pm, Mon 3-6pm (GB251 and GB243). TA will be available to answer questions.
Midterm exam: October 26, 2018, Friday, 5-6PM, Location: EX 320
Final exam: 40%
Midterm exam: 25%
Lab assignment: 35% (5%, 7%, 9%, 7%, 7% respectively for each lab assignment)
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.
Please provide anonymous course feedback by posting anonymous notes on Piazza.