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.
We decided to share with you a few of the many decisions and hurdles we had to go over to determine what would be the best method to offer the class materials. We strongly recommend you read over them to get a better idea of the different decisions we had to make for the course.
CS61A and CS61B (or equivalents). CS61B requirement can be bypassed if you have solid experience with a C-based programming language.
We will be using the first edition of Patterson and Hennessy’s Computer Organization and Design RISC-V Edition book (“P&H”), ISBN 0128122757. 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. 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.
There will be two midterms and one final exam.
Exams are open book, open internet, closed friend. Any collaboration on exams will result in failing the course!
The clobber policy allows you to override your Midterm 1 score with the score on the final and Midterm 2 score with the score the final exam if you perform better on 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-subscore - Final-mean)/Final-stddev * Mt1-stddev + Mt1-mean
Clobbered mt score = MAX(Original mt1 score, Potential replacement score)
Final-subscore is your score on the final, Final-mean and Final-stddev are the mean and standard deviation of the final, and Mt1-stddev and Mt1-mean are the standard deviation and mean of the actual midterm.
“Clobbered mt1 score” is then filled in as your midterm score for the final grade calculation.
Note that clobber will NOT give you more points than the exam is worth (meaning that it is really min(score, max score))
We hope you take advantage of the ample office hours we have scheduled this term. When coming to office hours for lab or project help, there are some policies you’ll need to abide by.
TAs shouldn’t be debugging code endlessly without reason. This is not a good use of their time, and part of the goal of this course is to turn you into a great tester and debugger.
Therefore, before coming to office hours, students should have done the following on the hive machines:
If you have not completed all of the items above, a TA has the right to refuse you assistance. There are instructions for testing on all project specs, and you can review how to run valgrind and (c)gdb in lab.
Since our office hours will be in open zoom rooms, you MUST be in the Zoom room if you are on the queue. If we get to your to your name and you are not in the zoom call, we will skip you and you will have to sign up again.
NOTE: If you are an international student or someone who is unable to access some of our resources due to GEO restrictions or other blocking, please download and use the campus VPN to gain access to them: https://www.lib.berkeley.edu/using-the-libraries/vpn.
All important course announcements will be made on Piazza. We will be automatically enrolling everyone and locking piazza enrollment: https://piazza.com/berkeley/summer2020/cs61c. If you are not on the roster and would like to join our piazza, please send an email to firstname.lastname@example.org with the subject ‘[CS61C Su20] Request to join Piazza’. You must give us the reason why you would like to join the piazza. We will then only add the email which the email was sent from IF it is a Berkeley email. If you would like to join our other resources, please make sure you also fill out this form: https://forms.gle/MbbtEjSwSJ5fZJJ3A
helpfulbutton on a question/followup.
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 https://inst.eecs.berkeley.edu/webacct. Make sure you remember your log-in information once you change it! We cannot recover your account information for you. If you are unable to request an account due to concurrent enrollment status, please follow the instructions in lab 0. If you are a late add, you may use any other class account, or your CS199 account until the option to create an inst account for CS61C is available to you. Note: The CS61C staff does not have any control over how quickly concurrent enrollment/late add accounts are processed.
You can connect remotely to the lab computers using the following addresses:
If the Hive machine you have chosen is running too slow, try another one. You can find a list of the available Hive machines and their current workloads here:
In order to foster a collaborative environment, CS61C is initially graded on a fixed scale. The course is graded out of 300 points, with the following mappings from points to letter grades:
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).
We will compute grades from a weighted average, as follows:
|Assignment||Percentage of Grade|
|Lecture||5% (15 points)|
|Labs||5% (15 points)|
|Homework||10% (30 points)|
|Projects (4 total)||40% (120 points)|
|Midterm 1||10% (30 points)|
|Midterm 2||10% (30 points)|
|Final exam||20% (60 points)|
Below, you will find sections describing some of these assignment types. Projects are evenly weighted unless otherwise mentioned.
Note: Any assignment which is due by the end of the day is due by 11:59.00PM! Even if you submit a second late (aka 11:59.01PM), it will be considered one day late!
EPA was created to encourage people to be good academic citizens, in a way that traditional grades could not capture. This can help boost you over a grade boundary if you’re close to one. Scoring is confidential (we’ll never tell you your EPA score and you shouldn’t ask), and is decided by the teaching staff, so make sure they know your name.
Here are the categories:
The lab policy was updated to what is written below beginning with Week 2 of the course
Labs are designed to give you introductory experience with the course material. After completing each lab, you will need to complete a checkoff. You will be not be required to check off in partners, though we do highly encourage it. This process involves showing a staff member that you have completed the assignment, and if time pertains, will allow to spend individualized time with a staff member. You will have two attempts to be checked off. You will then provide your cs61c login (cs61c-xxx) and the staff member will check you off. This will automatically upload a token to Gradescope with the number of points the staff member is giving you for that assignment. Make sure you have a valid token on Gradescope after checkoff as we will NOT fix errors later on. We will also adjust the due time after the due date has passed to prevent student self uploads. The staff is not liable for missing checkoff points and any attempts to receive credit after the deadline will not be fulfilled.
Labs are graded on correct completion. Completion of all labs is highly recommended for success in the course. Each of the labs are graded out of 2 points. If a TA is not satisfied with your lab checkoff (i.e. The student does not fully grasp the concepts the lab was teaching), you may receive fewer than 2 points! If you do not finish your checkoff in time, you will get 0 points. If either of these happens, utilize your second attempt to come back more prepared and you will have another chance to get full credit, as long as the attempt is before the posted lab deadline. 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 lab total to the 15 points course grade portion.
For checkoffs, we will do an appointment based system using https://oh.cs61c.org/. Appointments for the week will be released on Sunday around 9 PM PDT, when all of the other material for the week is released. You may then sign up for UP TO one checkoff time per lab (so one checkoff slot for Tu, Wed, and the second for Th, Fri). While partners are not required, we recommend finding, working, and checking off with a partner for its learning benefits. If this proves to be difficult, it is fine to sign up by yourself, though be aware that another unknown student is able to sign up alongside with you.
The checkoff slots will be 13 minutes long, with a 2 minute leeway, and will not be on Berkeleytime (they start at the assigned time). If you would like to checkoff multiple labs in your appointment, you may do so, though you will not get extra time in your slot. Please utilize the Live Chat feature in the portal appropriately to communicate with your partner or the staff member during the checkoff, especially to check for if the staff member needs to tell you anything before the Zoom meeting begins. If you finish early, we encourage you to utilize these appointments to ask any questions you may have pertaining to the course, or simply check-in about how things are going for you; they are the most individualized and personal aspects of the course that we hope you use.
For full credit, labs must be checked off by the stated deadlines, which are Wednesday EOD and Friday EOD, with the exception of holidays, for the 2 labs of the week, respectively. If you get checked off after the original deadline but before the next lab’s deadline, you will be able to receive half credit (1 point) at most. Anytime after that, you will not be able to be checked off for any credit, but you may still go over the checkoff to further your understanding if you wish. Because of this, we will be giving you one lab drop which will drop your lowest lab score.
For each lab, we will have a lab office hours queue. This help queue is for students who need help completing the lab. You will have two official checkoff attempt per lab.
You may get checked off in Lab OH as well, though we would prefer if the students choosing to do this are ones who were unable to pass the checkoff on their first try, or are checking off a lab late. Be aware that we will de-prioritize you over lab questions, which are what Lab OH are meant for. We have included this option to accommodate students, but there is not infrastructure for it to handle the volume of or replace the appointment system, so use this at your own risk (fair warning, in the past, students have waited hours to get checked off in the queue). You cannot get checked off at regular office hours.
The staff recommends always asking for help on lab office hours 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 a staff member. Each lab will contain questions you should be able to answer and some of them have a Gradescope autograder, even though we will not explicitly ask them to give you points. The purpose of the checkoff is to gauge your understanding and fill in any holes/build on your knowledge of the concepts assessed by the checkoff questions. If you are unsure of the answer to any of these questions you should ask for help before getting checked off.
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 gradescope and is graded on correctness. Once again, completion of all HW is highly recommended. We will release homework solutions shortly after the [late] due date, so late homework is not accepted. There are no homework drops.
Homeworks will give you unlimited attempts.
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 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. Please note that projects have a hard deadline of 1 week after it is due. Even if you had a 5 day extension, you would only be able to use up to two of your slip days on it even if you had three.
Projects are difficult, so don’t worry if you don’t get 100% on projects! We also have a philosophy on autograders: we only provide visible sanity tests. So there will be immediate feedback that your code compiles and runs on a simple test case but you won’t be able to see the results of the tests that are used to determine your grade. We do not want you to use the autograder as an oracle since much of programming is actually testing your code.
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 project submissions.
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 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 https://dsp.berkeley.edu as soon as possible to avoid delays.
If you already have documentation from DSP, please ensure its been submitted on the SCARAB portal so that instructors have access to your accommodations. Please do not email it or post it on Piazza!
If you’d like to request an extension in line with your DSP status, please use the form linked here. If your request falls under the accommodations stated in your letter it will be automatically granted, otherwise it will be submitted to the instructors for additional review.
If you are a non-DSP student interested in requesting an extension or accommodation for an assignment, you can do so by filling out the form linked here. Note that this form will not automatically grant any extensions; they will be logged and submitted to the instructors for additional review.
For students who do not have DSP accommodations for extensions, if your partner is DSP and receives an extension, you will receive an extension too. To receive this extension, you must fill out the non-DSP request saying your partner was given a DSP extension and the name of the partner.
We recognize that our students come from varied backgrounds and can have widely-varying circumstances affect them during their time in the course. If you have any unforeseen circumstances 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.
If at any point you are made to feel uncomfortable, disrespected, or excluded by a staff member or fellow student, please report the incident to our instructors, head TA, or another member of staff you’re comfortable with 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).
If you’d like to report an incident, but feel uncomfortable doing so in person, you’re also welcome to use your TA’s EPA form.
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. UC Berkeley also offers services to students which you can take advantage of.
Campus resources are also available for survivors of sexual violence or harassment. Be aware that all course staff are mandatory reporters for such incidents. Confidential services are also available on campus: https://survivorsupport.berkeley.edu/Confidential-Resources-Anonymous-Reporting-and-Privacy.