Synopsis of Course Content

This course covers topics on advanced computer architecture, and is appropriate for both advanced undergraduates and graduate students. Building on introductory classes which show how a basic computer functions, this course examines techniques for improving computer performance and usability. Topics covered include virtual memory, pipelining, caches (memory hierarchies), multithreading, multicore processors, and a few advanced topics (e.g., security, fault tolerance, virtual machines, fault tolerance).

Prerequisites: Compsci 104 / ECE 152 and Compsci 110 or equivalent.

It is assumed that you are familiar with the material covered in Compsci 104 or ECE 152. If you have not taken a course with equivalent content, it is required you first take one of these two courses. Compsci 110 (Operating Systems) is recommended, but may be taken concurrently. Please see me if you have any questions about required background. There is C programming required in this course.

Textbook & Required Material

Grade To Be Based On:

  • 30% homework
  • 30% project 
  • 40% exams (Midterm 15% and Final 25%) 

    Important: Computer Science Graduate Students. Qualifying grade is based only on the midterm and final.

Academic Misconduct

  • University policy will be followed strictly. Zero tolerance for cheating and/or plagiarism.

Late Policy

Late homeworks (except for dean’s excuses)
late <1 day = 50% off
late >1 day = zero


No late term project will be accepted.