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.
CS61A and CS61B (or equivalents) or experience with a C-based programming language (e.g. Java, C++).
There is no official textbook for this class. However, there are three optional textbooks as additional references:
- P&H: The first edition of Patterson and Hennessy's Computer Organization and Design RISC-V Edition book ("P&H"), ISBN 0128122757.
- K&R: The C Programming Language, Second Edition by Kernighan and Ritchie. Other C programming books are also suitable if you are already comfortable with them, but our lectures will be based on K&R.
- WSC: The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines, which is freely available on our website.
Please contact staff on Ed if you have trouble finding or paying for these textbooks.
The following sub-sections contain an overall summary of the major elements of the course.
We will have a 90-minute live lecture on Mondays, Tuesdays, Wednesdays and Thursdays, 9:30AM–11:00AM PT. Lectures will take place in Li Ka Shing 245. We will try to livestream lectures live on Zoom as well. Recordings will be made available after the lecture.
We'll release two discussion worksheets per week. Monday/Tuesday sections will cover the first worksheet, and Wednesday/Thursday sections will cover the second. Discussion section attendance is not graded, and you can choose to attend any in-person or online discussion section you want. We'll also try to post recordings.
Homework is designed to let you practice the material covered in lecture. We'll release one homework assignment per week. 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 submitted online through PrairieLearn and graded on correctness. For each day that a homework submission is late, 1/3 of your points will be deducted. The lateness penalty rounds up to the nearest day - that is, an assignment that is 1 day and 5 seconds late will receive a 2/3 late penalty. In addition to our normal extensions policy (below), everyone gets one no-questions-asked 3-day homework extension.
Labs are designed to give you some hands-on experience with the course material. We'll release one lab assignment per week. You can choose to attend any in-person or online lab section you want, or work on labs asynchronously. You may optionally work on each lab with one partner.
Each lab assignment will be split into two parts. Tuesday sections will cover the first part, and Thursday sections will cover the second part. Each lab section will be guided by the TA, and you can expect to complete each part of the lab within two hours if you attend a lab section. Lab attendance is not graded.
Lab assignments are autograded on Gradescope. For each day that a lab submission is late, 1/3 of your points will be deducted. The lateness penalty rounds up to the nearest day - that is, an assignment that is 1 day and 5 seconds late will receive a 2/3 late penalty. In addition to our normal extensions policy (below), everyone gets one no-questions-asked 3-day lab extension.
Projects are designed to give you heavy-duty experience with the application of course content. Projects are difficult, so don't worry if you don't get 100% on projects! We'll have four projects throughout the course. You may optionally work with one partner for each project. If you want to add, change, or remove your partner after starting, please contact course staff.
Projects are submitted to Gradescope and graded on correctness. If you complete a project with a partner, make sure to add your partner on every Gradescope submission. Also make sure you "activate" the submission you want graded on Gradescope (this defaults to the last submission you made). For each day that a project submission is late, 1/3 of your points will be deducted. The lateness penalty rounds up to the nearest day - that is, an assignment that is 1 day and 5 seconds late will receive a 2/3 late penalty.
You have 10 project slip days, which can reduce your late penalty for a project by 1 day each. Assignments are capped individually at 3 slip days each, with parts A and B of each project counting separately. We will automatically apply slip days to your active project submissions to maximize your total score. Slip days are consumed independently for each partner, but extensions will apply to both.
There will be one midterm, scheduled for Friday, July 15, 5:00-7:00PM PT. The final exam will be Thursday, August 11, 5:00-8:00PM PT. Logistics will be announced in the weeks leading to the exam.
TAs and instructors will hold in-person and online office hours throughout the semester. We use an OH Queue to process help tickets.
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:
|Assignment||Percentage of Grade|
|Labs||10% (30 points)|
|Homework||10% (30 points)|
|Project 1||10% (30 points)|
|Project 2||10% (30 points)|
|Project 3||10% (30 points)|
|Project 4||10% (30 points)|
|Midterm||15% (45 points)|
|Final||25% (75 points)|
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). Please note that we will not include PNP students or Incompletes in any adjustments we do.
All important course announcements will be made on Ed (the course discussion forum). We will be automatically enrolling everyone.
Note: If you are blocked from accessing our resources, you can use the campus VPN.
You will need a CS 61C instructional account to access computer labs and instructional servers for assignments. Accounts are available starting on the first day of instruction, and will be covered in Lab 0.
Registered students get 24/7 cardkey access, starting on the first day of instruction, to the computer labs in Soda Hall (Soda 271, 273, 275, 277, and 330). Please be mindful of the fact that we share these lab spaces with other CS classes, and please follow the Rules of Conduct on EECS Instructional Computers.
You can also remotely connect to instructional computers for class work. This will be covered in Lab 0.
We believe that most students can distinguish between helping other students understand course material and cheating. Explaining a subtle point from lecture or discussing course topics is an interaction that we encourage, but you must write your solutions strictly by yourself. You must not ask for homework/project solutions on Stack Overflow or other online sites; although you may ask for help with conceptual questions. You must not receive help on assignments from students who have taken the course in previous years, and you must not review homework or project solutions from previous years.
You must ensure that your solutions will not be visible to other students. If you use GitHub or another code hosting platform to store your solutions electronically, you must ensure your account is configured so your solutions are not publicly visible. Many platforms offer free private repositories that allow you to keep your solutions private.
Warning: Please take a moment to review the Department Policy on Academic Misconduct. In particular, you should be aware that copying or sharing solutions, in whole or in part, from other students in the class or any other source without acknowledgement constitutes cheating.
As both current and former students, we understand that desperate times can lead to desperate measures. If you feel like you cannot succeed on your own in the course, let us know! We are here to support you.
For assignments that allow partners, you may collaborate however you like with your partner, as long as you follow the policies above. For example, sharing code with your partner is fine, but sharing code with other groups is not.
We will be running advanced plagiarism detection programs. The tools and methods for detecting cheating have been developed over the course of many years, and attempting to obfuscate your code to avoid detection:
- won't work
- will be penalized
Plagiarism on any assignment will be reported to the Center for Student Conduct. The CSC treats most first-time offenses as a Non-Reportable Warning. Additionally we will assign a grade penalty. The minimum penalty for cheating on an assignment is negative points, so if an assignment is worth 10 points you will receive -10 points. This means even if there is just a 50% chance that you are caught it is better to not do the work than attempt to cheat. A second instance of plagiarism on an assignment will result in an F in the course.
Disabled Students' Program
The Disabled Students' Program (DSP) supports disabled students at UC Berkeley. They offer a wide range of services and accommodations. If you are facing barriers in school due to a disability, apply to DSP!
Students registered with DSP can expect to receive an onboarding email within a week of sending us your formal letter of accommodation through the AIM portal.
As instructors, our goal is to teach you the material in our course. The more accessible we can make it, the better.
Accommodations and Extensions
- Extension Requests: This is to request extensions on deadlines for any assignments.
- Requests will be reviewed approximately every two business days.
- Extensions may not be visible on Gradescope and PrairieLearn, but they will show up on grading reports.
- You can submit an extension request at any time, including after a deadline.
- Extensions will be applied before slip days.
- Extenuating Circumstances (TBD): This form is for any circumstances that can't be resolved with extensions or lab section changes. Don't be afraid to reach out! We're here to help you succeed in our course.
Extenuating Circumstances and Inclusion
We recognize that our students come from varied backgrounds and have widely-varying experiences. If you encounter extenuating circumstances, please do not hesitate to let us know. The sooner we are made aware, the more options we have available to us to help.
In addition, in scheduling exams, we have attempted to avoid conflicts with major religious holidays. If, however, we have inadvertently scheduled an exam or major deadline that creates a conflict with your religious observances, please let us know as soon as possible so that we can make other arrangements.
If something is said in class (by anyone) that makes you feel uncomfortable, disrespected, or excluded by a staff member or fellow student, please report the incident so that we can work to address the issue and create a more supportive and inclusive learning environment. Some options:
- via the 61C incident reporting form (TBD)
- via email to our instructors, head TAs, or another member of staff you're comfortable with
- to the department's Faculty Equity Advisors (CS) Prof. Josh Hug [email protected] or (EE) Prof. Robert Pilawa-Podgurski [email protected], the UC Berkeley Campus Ombuds Office or the ASUC Student Advocate's Office (SAO)
- via the department's Student Climate and Incident Reporting Form
- via the EECS Student Grievance Committee
Your mental health is more important than this course. Seriously. If you're feeling overwhelmed or not in control, talk to us and we'll try to help. Counselling and Psychological Services (CAPS) has multiple free, confidential services:
Also check out UHS's mental health resources
Support is also available for survivors of sexual violence or harassment. While course staff are Responsible Employees for such incidents, we do have free, confidential services available on campus:
The National Suicide Prevention Lifeline is a 24-hour number any student or faculty/staff person can call to speak with someone about suicide: +1-800-273-TALK (+1-800-273-8255).