Course Information for CS152: Computer Architecture and Engineering

Fall 2016

Catalog Description: Computer Architecture and Engineering

4 units. Three hours of lecture per week, plus one section per week. Labs. Prerequisites: CS61C.

Class Schedule/Rooms

Lectures: Tuesday and Thursday, 11am-12:30pm, 306 Soda Hall
Sections: Friday, 12-1pm, 9 Evans (followed by TA office hours from 1-2pm)
All Quizzes held in class during lecture times.

Instructor: John Wawrzynek, Professor, CS Division, EECS Department.
Email: johnw at eecs
Office Hours: After lectures, 12:30-1:30pm every Tuesday (unless announced otherwise).

TA: Martin Maas, Ph.D. Candidate, EECS Department.
Email: maas at eecs
Office Hours: Friday 1-2pm, 9 Evans (after section).

Course Grading

The course is organized into five modules, with each module having a problem set, a lab, and a quiz. The grade breakdown is given below, but a failure to complete the majority (at least 3/5) of the labs will result in an automatic F.

15% Problem Sets

We will distribute 5 problem sets for you to practice your understanding of the course material, one for each module of the course. The purpose of the problem sets is to provide you with typical exercises and background material to prepare you for the quizzes. The problem sets will be graded primarily on an effort basis, but if you do not work through the problem sets you are unlikely to succeed at the quizzes! We will distribute solutions to the problem sets on the day the problem sets are due to give you instant feedback.

40% Labs

The labs will provide hands-on experience with the interaction of software and hardware, for a variety of machine designs. We will be making extensive use of existing open-source designs written in the Chisel hardware description language. Each lab includes a directed component to guide students in learning certain concepts, plus an open-ended assignment to allow students to show their creativity. There will be many subproblems to the directed components and students must complete all of them. There are many open-ended components as well, but students are expected to complete only one, whichever is more attractive. While there is no particular requirement for scripting, we found in the past that students unfamiliar with common scripting languages spend more time to run the different simulations and collect the necessary results the labs require. Some labs may offer extra points in some of their components.

45% Quizzes

There will be 5 in-class quizzes covering the material learned in readings, labs, and problem sets. These will be closed book with no calculators, phones, or computers allowed. There is no final exam in this class.

See also Departmental Grading Guidelines for Undergraduate Courses.

Late Assignment Policy

Problem sets must be handed in at the beginning of class or section on the due date, with no extensions possible. Each student gets two "free" extensions of the lab assignments, where labs can be turned in two days after the original due date. Please specify in your submission that you are making use of a free extension. No other extensions will be given, unless for serious documented emergencies (in which case please let us know before the deadline). An automatic F grade is given if less than three labs are completed.

Collaboration Policy

The problem sets are intended to help you learn the material, and we encourage you to collaborate with other students and to ask questions in discussion sections and office hours to understand the problems. However, each student must turn in their own solutions to the problems.

Students are encouraged to discuss solutions to the lab assignments with other students, but must run through the directed portion of the lab by themselves and turn in their own lab report. For the open-ended portion of each lab, students will work in groups of two or three. Students are free to take part in different groups for different lab assignments.

Regrade Policy

For addition errors in the total score, return the quiz back to the TA to get it fixed. For regrades, return the quiz to the TA within a week of the quiz being graded with a separate sheet of paper explaining the discrepancy. The staff will carefully regrade the entire quiz, read the reasoning provided, and then make a final decision. Since the entire quiz is being regraded, it is possible the total score could go down as a consequence of previously undiscovered mistakes being found. We therefore recommend that regrade requests only be used when the case is strong and a significant number of points are at stake. Similar procedures exist for labs and problem sets.


The course will use Piazza for class communication. The course page can be found at

Compute Resources

Currently the infrastructure for the labs will run on t7400-1.eecs, t7400-2.eecs, ... t7400-12.eecs. You may want to use other servers for writing code or compiling, and you can see a full list of them at inst.


The following textbook is required for the course:

TextBook Picture J. L. Hennessy and D. A. Patterson, Computer Architecture: A Quantitative Approach, 5th Edition, Morgan Kaufmann Publishing Co., Menlo Park, CA. 2012.
ISBN: 978-0-12-383872-8

Note that the 5th edition is significantly different than the other editions, and it is not recommended that you attempt to use the earlier editions for this course. The syllabus tries to identify reading material from the fourth edition but we can't guarantee that all the material is in the older versions.

The following textbook is recommended to refresh your background and to provide a simpler introduction to some of the basic concepts. Any recent edition should be sufficient for background study.

TextBook Picture D. A. Patterson and J. L. Hennessy, Computer Organization and Design: The Hardware/Software Interface, 3rd Edition, Revised Printing, Morgan Kaufmann Publishing Co., Menlo Park, CA., June 2007. 

ISBN13: 978-0-12-370606-5
ISBN10: 0-12-370606-8 Paperback