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.
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.
On each exam, you will be given a RISC-V Green Sheet. Additionally, you will be allowed to bring handwritten cheat sheets as indicated below:
You may clobber your MT1 score with your score on the final. We will clobber using your z-score (that is, your performance relative to the mean and standard-deviation for the given exams, not your raw point score). No action is required on your part.
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. First, TA’s 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 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 0.
All important course announcements will be made on Piazza. Be sure to join here: https://piazza.com/berkeley/spring2018/cs61c.
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 http://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 accout, 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.
We will be using a combination of 271 Soda, 273 Soda, 275 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:
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|
|Labs||6.67% (20 points)|
|Homework||6.67% (20 points)|
|Projects (4 total)||26.67% (80 points)|
|Midterm I||15% (45 points)|
|Midterm II||15% (45 points)|
|Final exam||30% (90 points)|
Below, you will find sections describing some of these assignment types. Projects are evenly weighted unless otherwise mentioned.
There are three categories in which you can earn EPA: Lecture participation, Discussion/Lab/OH participation, and Piazza participation. We will take the top two of your three categories to calculate your final EPA score. This means if you cannot attend lecture your EPA score will not be impacted; we will simply use your Piazza and Disc/Lab/OH totals instead.
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). Please do not inquire about your EPA score, it will not be posted.
If you attend all discussions and labs (and prove to have done so by filling out your TA’s discussion google form), you are guaranteed at minimum a 1/3 in participation. To maximise your score, ask questions, work with other students, etc.
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 to complete an in-person checkoff. Remote checkoffs, or checkoffs in office hours/discussion are not allowed. This process should be very quick and involves showing a TA or Academic Intern that you have completed the assignment.
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. Please note that these are not 2 points each from the 30 points “Labs” portion in your course grade. Each lab is simply graded out of 2 points, and we will scale the lab total up to the 30 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 wish to receive the checkoff code. 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.
You are required to work in partners for labs. For full credit, labs must be checked off by the next lab section 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.
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. Each lab will contain questions you should be able to answer, even though we will not explicit ask them to give you points. If you are unsure of the answer to any of these questions you should ask for help.
To get a checkoff, sign up on the checkoff queue in lab. A TA or AI will look at the output of your code and possibly ask some conceptual questions. When your receive a checkoff, you will also receive an email with your score and the name of the staff member who checked you off. You’ll need to retain this email through the end of the semester in case issues arise around grading. Your grade is also logged in our internal gradebook; no additional action is required on your part. At the end of the semester, we’ll release an assignment on gradescope showing the scores we have for you. If there are differences between your record and ours, let us know by making a private post on piazza!
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 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.
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.
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 http://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 accomodations.
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 accomodations stated in your letter it will be automatically granted, otherwise it will be submitted to the instructors for additoinal review.
If you are a non-DSP student interested in requesting an extension or accomodation 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.
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: http://sexualviolence.berkeley.edu/Confidential-Resources-Anonymous-Reporting-and-Privacy.