Great Ideas in Computer Architecture (Machine Structures)

UC Berkeley EECS

MWF 10-11am, Pauley Ballroom

Instructors: Gerald Friedland (OH Monday 1-2pm, 424 SDH) and
Nicholas Weaver (OH Friday 12-2, 329 Soda)

Great Ideas in Computer Architecture (Machine Structures)

UC Berkeley EECS

MWF 10-11am, Pauley Ballroom

Instructors: Gerald Friedland (OH Monday 1-2pm, 424 SDH)
and Nicholas Weaver (OH Friday 12-2, 329 Soda)

Course Policies/About (UNDER CONSTRUCTION)

The subjects covered in this course include: C and assembly language programming, translation of high-level programs into machine language, computer organization, caches, performance measurement, parallelism, CPU design, warehouse-scale computing, and related topics. The only prerequisite is that you have taken CS61B, or at least have solid experience with a C-based programming language.


P&H We will be using the fifth edition of Patterson and Hennessy's Computer Organization and Design book ("P&H"), ISBN 0124077269.
K&R We are also requiring The C Programming Language, Second Edition by Kernighan and Ritchie ("K&R"), and will reference its sections in the reading assignments. Other books are also suitable if you are already comfortable with them, but our lectures will be based on K&R.
WSC Finally, we will be using The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines ("WSC"), which is freely available online here.
WSC Finally, we will strongly encourage you to purchase a Raspberry Pi 3. This small Linux computer is extremely powerful and will be very useful especially on the last 2 projects. Although we have a small cluster of them that you can remotely access, having your own should prove useful. We will provide more details in the first two weeks of class.

All important course announcements will be made on Piazza. Be sure to join here: Piazza.


In order to foster a collaborative environment, CS61C is graded on a fixed scale. The course is graded out of 300 points, with the following mappings from points to letter grades:

Raw Score 290+ [270,290) [260,270) [250,260) [230,250) [220,230) [210,220) [190,210) [180,190) [140,180) [0,140)
Grade A+ A A- B+ B B- C+ C C- D F

In the event that our distribution does not align with the EECS departmental guidelines, we may decrease the raw score boundaries, but they will not increase (i.e. it is possible to receive a higher grade than the mapping suggests, but not a lower one).

Your grade in the class will be broken into the following components:

Assignment Percentage of Grade
EPA: Effort, Participation, and Altruism 5% (15 points)
Labs 5% (15 points)
Homeworks 5% (15 points)
Projects 25% (75 points)
Midterm I (see clobber policy) 15% (45 points)
Midterm II (see clobber policy) 15% (45 points)
Final 30% (90 points)
Below, you will find sections describing some of these assignment types.


You can earn points for each of the following:

Effort: Attending office hours, discussions.
Participation: Attending lecture, voting on iClicker questions, interacting with TAs and other students in discussion.
Altruism: Helping others in lab and on Piazza.

EPA scores are kept internal to the course staff (i.e. not disclosed to students).

Peer Instruction/iClickers

As you may have noticed in the "Participation" section of EPA, you will receive credit for voting on iClicker questions in lecture (your answer does not necessarily need to be correct). This is designed to give you both a break in lecture and a chance to digest the material by applying it on-the-spot. Over the course of the semester, you will be allowed to miss "a few" lectures with no penalty.

As a result, you will need to purchase an iClicker. Any iClicker that supports 5-choice multiple choice should be sufficient. As far as we are aware, this means that any iClicker should work correctly.


Labs are designed to give you introductory experience with the course material. After completing each lab, you will need show your understanding of the lab to your TA or Lab Assistant by stepping through the checkoff steps with him or her. You are highly recommended to attend the lab in which you are enrolled, but you are free to attend any discussion section you prefer. The TA in charge of each discussion or lab has the right to ask students not enrolled in that section to leave if the classroom is too crowded.

Labs are graded on correct completion (a total of 4 points). Labs must be checked off before/during the first fifteen minutes of the lab after they were assigned. You are required to work in partners for labs. There is a 1 point penalty per week for late labs.


Homeworks are designed to give you more problem practice on the week's material. Homeworks are graded on effort/completion.

We encourage you to work on the homework problems in small groups, but each student is required to turn in a solution that they have written themselves.


Projects are designed to give you heavy-duty experience with the application of course content. Projects are graded on correctness.

You will work on projects individually. Collaborating with other students is strictly prohibited. Please see the section on Academic Dishonesty below.

For each day that a project is late, 1/3 of the potential points on the project are deducted, until the project is worth nothing. Lateness rounds up to the nearest day - that is, an assignment that is 2 hours late is one day late.

Slip Days

To help you handle any issues that arise, we give you three free slip-day tokens, which allow you to turn a project in a day late each with no penalty. At the end of the semester, we will calculate how many late days you have used on a project, and distribute the slip days such that it will maximize your score. You cannot use slip days for homeowrk

No extra-credit is awarded for avoiding the use of slip-days, however it is in your best interest to avoid turning projects in late. Usually, a new project will be released very shortly after the current project is due.


  • Midterm 1: Covers up to and including the 2/17 lecture.
  • Midterm 2: Covers up to and including the 3/28 lecture.
  • Final: Consists of 3 sections: MT1 material, MT2 material, post-MT2 material. Performance on MT1/MT2 sections can override Midterm 1 and Midterm 2 grades (see clobber policy).

Exam Policies

On each exam, you will be given a MIPS Green Sheet attached to the exam.

Additionally, you will be allowed to bring handwritten cheat sheets as indicated below:

  • Midterm 1: One 8.5"x11", double-sided cheat sheet.
  • Midterm 2: Two 8.5"x11", double-sided cheat sheets.
  • Final: Three 8.5"x11", double-sided cheat sheets.

The "Clobber" Policy

The clobber policy allows you to override your Midterm 1 and Midterm 2 scores with the score of the corresponding section on the final exam if you perform better on the respective sections of the final. Note that the reverse is not true - you must take the entire final exam, regardless of your Midterm 1 and Midterm 2 scores.

Here is an example of the process:

Suppose we are interested in computing your clobbered midterm 1 score:

Potential replacement score = (Final-mt1-subscore - Final-mt1-mean)/Final-mt1-stddev * Mt1-stddev + Mt1-mean
Clobbered mt1 score = MAX(Original mt1 score, Potential replacement score)

Final-mt1-subscore is your score on the midterm 1 section of the final, Final-mt1-mean and Final-mt1-stddev are the mean and standard deviation of the midterm 1 section of the final, and Mt1-stddev and Mt1-mean are the standard deviation and mean of the actual midterm 1.

"Clobbered mt1 score" is then filled in as your midterm 1 score for the final grade calculation.

Academic Dishonesty and Cheating

Please carefully read the policies below and ask a member of the course staff if you have any questions or if something is unclear.

  • All projects will be done ALONE.
  • All projects you turn in must be the work of you ALONE.
  • It is NOT acceptable to copy solutions from other students.
  • It is NOT acceptable to copy (or start your) solutions from the Internet.
  • It is NOT acceptable to use public GitHub archives to obtain solutions or to store your project code.
  • We have tools and methods, developed over many years, for detecting this. You WILL be caught, and the penalties WILL be severe. This software can even detect attempts to purposefully obfuscate copying.
  • We will report all instances to the Office of Student Conduct, no matter how mild.
  • Both the giver and the receiver of code are equally culpable and suffer equal penalties. If the giver is from a previous semester we can't affect their grade but we will still report them to the Office of Student Conduct.
  • The University gives us great flexibility in deciding grade punishment for dishonesty, up to and including an F in the class. Even minor misconduct can result in not just a 0 on the project but negative points.