Three hours of lecture and two hours of discussion section per week.
Lectures are in 306 Soda, Tuesday and Thursday, 9:30-11 AM.
Discussion sections are on Wednesday: 10-12 AM in 70
Evans, and 1-3 PM in 405 Soda.
The centerpiece of the class is a set of
computer architecture lab assignments based on
implemented in the Chisel
hardware description language.
The stack features a C/C++ compiler that targets
We focus on five cornerstone topics of today's computing systems:
Statically pipelined CPU design.
Dynamically-scheduled CPUs for out-of-order and speculative execution.
Hierarchical memory systems that support virtual address spaces.
Cache-coherent multicore and multithreaded processors, with
hardware support for memory synchronization.
Architectures for data-parallel applications (GPUs and vector
A machine structures class is a hard prerequisite for the class. For
EECS undergraduates, this requirement is fulfilled by CS 61C (or for
transfer students, a class that met the CS 61C degree requirement).
The required textbook is Computer Architecture - A Quantitative
Approach, Fifth Edition, by John Hennessy and Dave Patterson,
ISBN 9780123838728. Earlier editions won't be useful for the
class. We will abbreviate this book as CAAQA.
A companion website
for CAAQA has useful Appendices, and a link for buying PDF versions
of the book. You can also order the book from
or purchase it at the campus bookstore. It is also on reserve in the engineering
library for CS 152.
The recommend text is the CS 61C textbook, Computer Organization
and Design, Fifth Edition: The Hardware/Software Interface, by
Dave Patterson and John Hennessy, ISBN 0124077269. The 4th edition is
acceptable. We will abbreviate this book as COD.
COD will primarily be useful for students whose did not take CS 61C,
and whose equivalent class did not cover pipelining and caches in
depth. The book is on reserve in the engineering library for CS 152.
Three architecture simulation labs are
the centerpiece of the class:
Labs are done individually (not in teams). You are free to discuss
the labs in general terms with other students (on Piazza or in private
conversations). However, the actual lab work must be done with
yourself (no copying of files, scripts, data, etc). Feel free to ask
the TA about any "grey areas" in this regard.
Each lab begins with a set of directed sections. Your work on
these sections show us your competence in using the tools, and your
depth of understanding of the topic domain.
The heart of each lab is the open-ended section. This section
lists a set of computer architecture project topics that are a good
fit to a 3-week work schedule. Students pick one of the
open-ended projects, and focus on doing the best job possible during
the allotted time period.
See the calendar for due dates.
The class will have two mid-terms and no final. The mid-terms will be
held in 306 Soda during normal class time (see class schedule for
dates). However, the mid-term starting time may be earlier than the
usual 9:30 AM (the end time will remain 11 AM). We will know for sure
in a few weeks and will let you know.
Mid-terms will be closed-book, closed-note (no laptops, no cell-phones).
You will write on the paper mid-term we hand out (no blue books required).
The class will have two long homework assignments. The first will be
posted a few weeks into the semester, the second will be posted when
we return from Spring Break.
The homework assignments are based on mid-term problems from the
previous times I taught CS 152. Doing these assignments, during
focused periods of time, on your own, without consulting the
textbook or the Internet, is the best way to prepare yourself
for the mid-term.
It is acceptable to ask the sort of "clarifying questions" about
homework problems that you might ask during the exam, but do not ask
(or give) "the answer" online, because that defeats the purpose of the
You will not be handing in the homeworks (and thus, they won't be
graded). During the in-class mid-term review session, we will go
over the homework questions; during that time frame, we will also
post the homework solutions on the class website.
Once the semester began, it became apparent that porting the software
base for each lab was an engineering challenge. Because we did not
know the total number of labs we would be able to do, students were
told each lab, and each mid-term, would be a "signficant" part of the grade.
When final grades were prepared at the send of the semester, each
mid-term was worth 26 percent of the final grade, and each lab was
worth 16 percent of the final grade.
Like all EECS courses, CS 152 follows the EECS
Departmental Policy on Academic Dishonesty. Please read the
policy below and become aware of our expectations:
Copying all or part of another person's work, or using reference
material not specifically allowed, are forms of cheating and will not be
tolerated. A student involved in an incident of cheating will be
notified by the instructor and the following policy will apply:
- The instructor may take actions such as:
- require repetition of the subject work,
- assign an F grade or a 'zero' grade to the subject work,
- for serious offenses, assign an F grade for the course.
- The recommended action for cheating on examinations or term papers
- The instructor must inform the student and the Department Chair in
writing of the incident, the action taken, if any, and the student's
right to appeal to the Chair of the Department Grievance Committee or to
the Director of the Office of Student Conduct.
- The instructor must retain copies of any written evidence or
- The Department Chair must inform the Director of the Office of
Student Conduct of the incident, the student's name, and the action
taken by the instructor.
- The Office of Student Conduct may choose to conduct a formal hearing
on the incident and to assess a penalty for misconduct.
- The Department will recommend that students involved in a second
incident of cheating be dismissed from the University.