Great Ideas in Computer Architecture (Machine Structures)

UC Berkeley EECS

MWF 4:00-5:00pm, Dwinelle 155

Instructors: Dan Garcia, Borivoje Nikolic

Great Ideas in Computer Architecture (Machine Structures)

UC Berkeley EECS

MWF 4:00-5:00pm, Dwinelle 155

Instructors: Dan Garcia, Borivoje Nikolic

Course Policies/About

Official Academic Guide course description.

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.

Prerequisites: CS61A and CS61B (or equivalents). CS61B requirement can be bypassed if you have solid experience with a C-based programming language.


P&H We will be using the first edition of Patterson and Hennessy's Computer Organization and Design RISC-V Edition book ("P&H"), ISBN 0128122757.
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.

Computer Resources

Discussion Forum

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

Computer Accounts

You will need a CS61C class account for use in the computer labs, submitting assignments, and tracking your grades. You must request a class login via Make sure you remember your log-in information once you change it! We cannot recover your account information for you.

Computer Labs

We will be using a combination of 275 Soda, 277 Soda, and 330 Soda this semester. You will be receiving 24/7 key card access to these labs, but please be mindful of the fact that we share these lab spaces with other CS classes. In addition, please respect the labs by keeping things neat and avoid eating/drinking near the computers.

You can connect remotely to the lab computers using the following addresses:


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 Extra Credit
Labs 5% (15 points)
Homework 10% (30 points)
Projects (3 total) 25% (75 points)
Quest 5% (15 points)
Midterm 20% (60 points)
Final 35% (105 points)
Below, you will find sections describing some of these assignment types.


You can earn "extra credit" points for each of the following:

Effort: Attending office hours and discussions. Keeping up with Piazza.
Participation: Interacting with TAs and other students in discussion and lab, asking questions on Piazza.
Altruism: Helping others in lab and on Piazza.

Because you must be truly exceptional to receive full credit in any one EPA category, it is very difficult to receive a full EPA score. TAs will reward students where credit is due. EPA scores are kept internal to the course staff (i.e. not disclosed to students).


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 required to attend the lab in which you are enrolled, but you are free to attend any discussion section you prefer. However, it's highly recommended that your discussion TA is the same as your lab TA so that they have a better relationship with you and thus can award you with more EPA points than if you were to split your interactions among multiple TAs.

Labs are graded on correct completion. Completion of all labs is highly recommended for success in the course. Each of the 13 labs are graded out of 2 points. Please note that these are not 2 points each from the 15 points "Labs" portion in your course grade. Each lab is simply graded out of 2 points, and we will scale the 26 points lab total down to the 15 points course grade portion.

In each lab, we will maintain two queues: a checkoff queue and a help queue. The checkoff queue is strictly for students who completed the entire lab, and are confident in their results/checkoff answers. Ideally, checkoffs should be quick and efficient. The help queue is for students who need help completing the lab. Please do not use the checkoff queue to request help, even if it is shorter. You will only have one official checkoff attempt, as mentioned below.

You are required to work in partners for labs. For full credit, labs must be checked off by the next lab after they were assigned. You can turn in late labs for half credit if you get them checked off the lab section after they were due.

Lab checkoff policy TL;DR:
Labs are due for full points by the next lab session (which is 1 week after the lab was assigneds). If they’re another week late, then you get half credit. Any later than that and it’s 0 points. You can always ask for help on the lab, but you can only asked to be checked off once. If you asked to be checked off and you don’t pass the checkoff, you’ll get 0 points All labs must be checked off in partners. Each student is expected to complete the entire lab, but all checkoffs must occur in pairs.

In more detail, here is the exact policy on checkoffs and point allocations: The day that lab X is assigned...

  • You will receive 4 points if you get lab X checked off.
  • You will receive 4 points if you get lab X-1 checked off within lab.
  • You will receive 2 point if you get lab X-2 checked off within the lab.
  • You will receive 0 points if you attempt to get a lab checked off, but fail to show understanding of the lab.
  • Note: You will only have one attempt to check off any lab.

In summary, here is a table to illustrate the checkoff grading policy.

Checking off a lab... 100% Understanding? Grade
The day it is assigned Yes 4/4
The day it is assigned No 0/4 (only one chance)
One lab after Yes 4/4 (only one chance)
One lab after No 0/4 (only one chance)
Two labs after Yes 2/4 (only one chance, this is slightly late)
Two labs after No 0/4 (only one chance)
Three labs or more after -- 0/4 (this is too late, encouraged to finish, use help queue)

This semester, to encourage students to use lab time more efficiently by starting the lab at home, you can also earn extra credit by checking-off within the first hour of your assigned lab time. For every lab in which you and your partner get checked-off within the first hour of your assigned lab section, both you and your partner will receive 1 extra credit lab point. After getting checked-off early on a lab, a good way to spend the rest of your lab time is by being altruistic and helping other students with the lab, which will also help you solidify your own understanding of the material.

The staff recommends always asking for help on labs when you need it, and to only request a check off when you have thought about the lab sufficiently and can have an informed conversation with your TA. You won't immediately fail a checkoff if you make a small mistake; in this scenario, your TA might correct your small misunderstanding, and if you can quickly bounce back with the correct solution, you'll be fine.

Lastly, once your checkoff is complete, your TA or Lab Assistant will immediately enter your points. Your score should instantly be reflected on glookup. Please verify the moment you finish your checkoff. The staff is not liable for missing checkoff points.


Homework is designed to give you more problem practice on the week's material. 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.

Homework is done online via edX and is graded on correct completion. Once again, completion of all HW is highly recommended. We will release homework solutions shortly after the due date, so late homework is not accepted.

Though most homeworks will give you unlimited attempts, some will not. In particular, some homeworks will contain multiple choice questions with limited attempts. These questions will mention that they are limited, so please read all questions thoroughly before attempting.


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

You will work on project 1 individually and for all others you must have a partner. 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 your earned 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 slip-day tokens, which allow you to reduce your late penalties on late submissions.
Example usages:

  • Use two slip-days to receive no penalty on a project submitted two days late
  • Use two slip-days to receive no penalty for two separate projects each submitted one day late
  • Use three slip-days to receive just a 1/3 penalty on a project submitted 4 days late
We will track the total number of late days for your submissions and then assign your slip-days at the end of the semester to maximize your course score!

Slip-days may only be applied towards projects, and not any other assignments. Slip-days will not be assessed against projects you did not submit. 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.


  • Quest ("Quick Test"): Covers up to and including the 9/7 lecture on RISC-V lw, sw, Decisions I
  • Midterm: Covers up to and including the 10/15 lecture on Thread-Level Parallelism.
  • Final: Consists of 3 sections: Quest material, MT material, post-MT material. Performance on Quest/MT sections can override Quest and Midterm grades (see clobber policy).

On each exam (besides the Quest), you will be given a RISC-V Green Sheet attached to the exam. Additionally, you will be allowed to bring handwritten cheat sheets as indicated below:

  • Quest: One 8.5"x11", double-sided cheat sheet.
  • Midterm: Two 8.5"x11", double-sided cheat sheet.
  • Final: Three 8.5"x11", double-sided cheat sheets (it is recommended that you re-use your cheat sheets from the two midterms).

The "Clobber" Policy

The clobber policy allows you to override your Quest score with the score of the corresponding section on the Midterm and your Quest and Midterm 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 Quest and Midterm scores.

Here is an example of the process:

Suppose we are interested in computing your clobbered midterm score:

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

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

"Clobbered mt score" is then filled in as your midterm score for the final grade calculation. For the Quest we will take the MAX(Original Quest score, mt replacement score, final replacement score).

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.

  • The first project will be done INDIVIDUALLY
  • With the exception of laboratories and assignments (projects and HW) that explicitly permit you to work in groups, all homework and projects are to be YOUR work and your work ALONE.
  • Partner teams MAY NOT work with other partner teams on projects.
  • You are encouraged to help each other debug. Beyond that, we don't want you sharing approaches or ideas or code or whiteboarding with other students, since sometimes the point of the assignment WAS the "algorithm" and if you share that, they won't learn what we want them to learn. HKN and tutoring sessions that work you through the pseudocode are not allowed. The pseudocode is sometimes the entire point! Feel free to answer questions on Piazza that help them debug (don't share code, even snippets there). We expect that what you hand in is yours.
  • It is NOT acceptable to copy solutions from other students.
  • It is NOT acceptable to copy (or start your) solutions from the Web.
  • It is NOT acceptable to leave your code anywhere where an unscrupulous student could find and steal it (e.g., public GITHUBs, walking away while leaving yourself logged on, leaving printouts lying around, etc.
  • 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. If you have questions whether a behavior is crossing the line, ask!
  • At the minimum F in the course, and a letter in your Cal record documenting the cheating.
  • Both the giver and the receiver of code are equally culpable and suffer equal penalties.

Disabled Students' Program

The Disabled Students' Program (DSP) is committed to ensuring that all students with disabilities have equal access to educational opportunities at UC Berkeley. They offer a wide range of services for students with disabilities that are individually designed and remove the need to reveal sensitive medical information to the course staff. If you have a medical need for extensions of exam times or assignment deadlines, these will be granted through official documentation from DSP. Please start the process at as soon as possible to avoid delays.

Extenuating Circumstances and Inclusiveness

We recognize that our students come from varied backgrounds and can have widely-varying circumstances. If you have any unforeseen or extenuating circumstance that arise during the course, please do not hesitate to contact the instructors in office hours or via e-mail or private Piazza post to discuss your situation. The sooner we are made aware, the more easily these situations can be resolved. Extenuating circumstances include work-school balance, familial responsibilities, religious observations, military duties, unexpected travel, or anything else beyond your control that may negatively impact your performance in the class.

Additionally, if at any point you are made to feel uncomfortable, disrespected, or excluded by a staff member or fellow student, please report the incident so that we may address the issue and maintain a supportive and inclusive learning environment. Should you feel uncomfortable bringing up an issue with a staff member directly, you may consider contacting the Campus Ombuds Office or the ASUC Student Advocate's Office (SAO).