CS 70 at UC Berkeley


These policies follow closely to the course policies of EE16A, which is another lower-division mathematics course at UC Berkeley. Regardless, please read all of the following policies carefully.



We will use Piazza as the 'one-stop shop' throughout the semester: for a Q&A forum and for official announcements. Enrollment in Piazza is mandatory. If you have questions about anything related to the course, please post them on Piazza rather than emailing the instructors or TAs. Please do not post anything resembling a solution to a homework problem before it's due. We always welcome any feedback on what we could be doing better. See the Piazza Etiquette section for more on using Piazza. To join the class on Piazza, follow this link.


All homework will be submitted through Gradescope, and all homework and exam grades will be returned through Gradescope. If you have not been enrolled in our Gradescope, please fill out this Google Form


Please use Piazza for all technical questions, and also all administrative questions about the course that are not personal to you: other students may also benefit from seeing the answers to these questions. If you have a more specific administrative question that relates to you alone, please either use a private post on Piazza (visible to course staff only) or send email to the course administrative account sp20@eecs70.org (read by instructors and head TAs only).

Instructional Servers

CS 70 does not make use of instructional accounts, but to get a computer account for this course, go to http://inst.eecs.berkeley.edu/webacct, or click 'WebAcct' on http://inst.eecs.berkeley.edu.


The Midterms are tentatively scheduled as follows: Midterm 1 is on Tuesday, March 3 from 8-10pm. Midterm 2 is on Tuesday, April 7 from 8-10pm. The Final is on Thursday, May 14 from 3-6pm. Unfortunately, due to large enrollment, we are unable to accommodate final exam conflicts; we strongly discourage enrollment in another class with conflicting lectures and/or final exam; if you choose to enroll in such a class you will have to make arrangements for an alternate Final with the other class. Midterm conflicts will be accommodated only if the conflict is with another campus exam or comparable activity. You must fill out a form (available on Piazza) to request such an accommodation, at least two weeks in advance.

Exam Clobber Policy

This course spans a fairly broad set of ideas and concepts within a short period of time, and hence sustained and consistent effort and investment are critical to your success in this class. Similarly, by far the most common operating mode we have observed in previous students who struggled and/or failed this class was attempting to do the bare minimum in general and then catch up/cram right before the exams.

In order to formally encourage all of you to maintain the sustained effort that we have observed to be critical to success, we will be adopting a new policy regarding exam clobbering, participation, and effort. Specifically, for students who (1) complete an optional midterm redo and (2) perform significantly better on the final exam, we will provide the opportunity to clobber a midterm.

If you qualify for the clobber (i.e. (1) and (2)), you may replace your lowest midterm score with your scaled score on the final exam according to the formula below.

Replacement MT score (on scale of 100) = max [MT score, final exam score - 15% (on scale of 100)] This essentially allows you to replace your midterm grade by a higher grade --- we want to reward improved performance.

If you complete the optional midterm redo for both midterms, and are eligible for a clobber on both midterm, the clobber that helps your score more is applied (i.e. you may clobber either Midterm 1 or Midterm 2, but not both, and only if you complete both midterm redos). Please note that even though lecture attendance is not included (for logistical reasons) in the two criteria for clobbering eligibility, we do strongly encourage you to attend lecture in person.

Exam Attendance Policy

You must attend at least two of the three exams (Midterm 1, Midterm 2, Final Exam) in order to pass the class. We will consider granting an incomplete given extenuating circumstances. Simply not attending the final exam does not ensure an automatic failure.


All materials can be found on the front page.


There is no textbook for this class. Instead, there is a set of comprehensive lecture notes. Make sure you revisit the notes after every lecture, and multiple times thereafter: you should be aware that it will likely take several readings before you fully understand the material. Each note may be covered in one or more lectures. Note 0 is background material that you should make sure you understand before the first lecture.


Release Schedule: Discussion solutions are published after all sections are completed.

The discussion sections are designed not to cover new material but to consolidate the material covered in lectures and in the notes. It is highly recommended that you attend both discussions each week. You may attend any discussion section, but we recommend that you settle on a weekly two-section pair (with the same TA) as early as possible in the semester. Some section times are more popular than others: if a particular section is too full, then students will be admitted on a first-come first-served basis and others will have to attend an alternative section. It is in your own interests to find a section that is not over-subscribed. All sections are equivalent: they all cover the same material. Each week, the Tuesday/Wedensday sections will cover the preceding Tuesday lecture, while the Thursday/Friday sections will cover the corresponding Thursday lecture.


Release Schedule: Homework for the coming week is released on Monday by noon. Homework is due on Gradescope the following Friday at 11:59 p.m., with a grace period until Sunday at 11:59 p.m.; the solutions for that homework will be released the following Monday. Self-grades and resubmissions will be due Wednesday immediately following this, at 11:59 p.m.

There will be weekly required homeworks designed to consolidate your understanding of the course material. Maximum credit for each homework will be given for any score of 75% or more. Your lowest two homework scores will be dropped, but these drops should be reserved for emergencies. No additional allowances will be made for late or missed homeworks: please do not contact us about missed homeworks or late submissions.

Homework Submission

Homeworks are due on Friday night at 11:59 PM. You need to turn in a .pdf file consisting of your written-up solutions; you may use your phone camera or any page-scanning app in order to turn your written homework into a PDF, as long as your work is clear and legible. In addition, Gradescope has an option to associate pages of your work to each homework problem. You must select the relevant pages for every problem. Any problems without pages selected will receive zero credit. If you have any questions about the format of a homework submission, please go to office hours or homework party.

Homework Grading - Self Grading

The point of homework in this class is for you to learn the material. To help you in doing this each student will grade their own homework in addition to being graded by 70 readers. After the HW deadline, official solutions will be posted online. You will then be expected to read them and enter your own scores and comments for every part of every problem in the homework on a simple coarse scale:

  • 0 Points: Didn't attempt or very very wrong
  • 2 Points: Got started and made some progress, but went off in the wrong direction or with no clear direction
  • 5 Points: Right direction and got half-way there
  • 8 Points: Mostly right but a minor thing missing or wrong
  • 10 Points: 100% correct

Note: You must justify self-grades of 2, 5, or 8 with a comment. Grades of 0 and 10 do not need to be justified. If you are really confused about how to grade a particular problem, you should post on Piazza. This is not supposed to be a stressful process.

Your self-grades will be due on the Wednesday following the homework deadline at 11:59 PM sharp. We will accept late self-grades up to a week after the original homework deadline for 65% credit on the associated homework assignment. If you don't enter a proper grade by this deadline, you are giving yourself a zero on that assignment. Merely doing the homework is not enough, you must do the homework; turn it in on time; read the solutions; do the self-grade; and turn it in on time. Unless all of these steps are done, you will get a zero for that assignment.

Course readers are going to be grading and sending you occasional comments. Because we have reader grades, we will catch any attempts at trying to inflate your own scores. This will be considered cheating and is definitely not worth the risk. Your own scores will be used in computing your final grade for the course, adjusted by taking into account reader scores so that everyone is fairly graded effectively on the same scale. For example, if we notice that you tend to give yourself 5s on questions where readers looking at your homeworks tend to give you 8s, we will apply an upward correction to adjust.

Reader grades will be released on Gradescope about one week after the homework deadline. Readers grade questions either on a “coarse” or “fine” scale for each homework part. Coarsely graded question parts are worth a single point and are based on effort. Finely graded question parts are worth a total of 10 points and are graded using the same self-grading rubric above. Homework regrade requests are typically due on Gradescope within 72 hours of reader grades being released. If a regrade request is submitted for a part of a question on the homework, the grader reserves the right to regrade the entire homework and could potentially take points off.

If you have any questions, please ask on Piazza.

Homework Resubmission

Again, the point of homework in this class is to help you learn. We understand that sometimes work from other classes, midterms or your personal life can come in the way of making a homework deadline. For this reason we will allow you to resubmit your homework for 50% credit. Homework resubmissions must be HANDWRITTEN. Homework resubmissions will be due along with the self-grades, so they will be due by 11:59pm Wednesday night. If you choose to resubmit your homework, you must submit two sets of self-grades, one for the first submission and one for the second submission. For the second submission do self-grades as normal. We will apply the 50% correction.

What does 50% credit mean? Let us say you only were able to get halfway through a problem during the first submission. You submitted your homework on Friday, and while going through the solutions you figured out how to do the whole problem. Your self-grade for your first submission would be a 5/10. However, you can resubmit the homework problem with a fully correct solution and receive 50% of the remaining points as extra points, i.e. (10-5) * 50/100 = 2.5 extra points, and so your score for the problem would go from 5 points to 7.5 points.


We have a zero-tolerance policy for cheating. Consequences of cheating include: negative points for the corresponding assignment, a failing grade in the class, and/or a referral to the Office of Student Conduct.


You are encouraged to work on homework problems in study groups of two to five people; however, you must always write up the solutions on your own. Similarly, you may use books or online resources to help solve homework problems, but you must always credit all such sources in your writeup and you must never copy material verbatim.

We believe that most students can distinguish between helping other students and cheating. Explaining the meaning of a question, discussing a way of approaching a solution, or collaboratively exploring how to solve a problem within your group are types of interaction that we strongly encourage. But you should write your homework solution strictly by yourself so that your hands and eyes can help you internalize this material. At no time should you be in possession of another student's solution. You may discuss approaches but your solution must be written by you and you only. You should acknowledge everyone whom you have worked with or who has given you any significant ideas about the homework. Not only is this good scholarly conduct, it also protects you from accusations of being a "free-rider" regarding your colleagues' ideas.

Warning: Your attention is drawn to the Department's Policy on Academic Dishonesty. 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 acknowledgment) constitutes cheating. Any student found to be cheating risks automatically failing the class and being referred to the Office of Student Conduct.


This course is not graded on a curve. We will set absolute thresholds for performance that will map to grade boundaries. We encourage you to discuss the course material with each other and teach each other new ideas and concepts that you learn. Teaching the material is one of the best ways to learn, so discussing course material with colleagues in the class is a win-win situation for everyone. Grades are not everything, far from it, but that said, here is the breakdown for grading for this class:

  • Homework: 40 Points
  • Midterm 1: 65 Points
  • Midterm 2: 65 Points
  • Final: 130 Points

Grade bins:

  • A: 90%
  • A-: 87%
  • B+: 80%
  • B: 69%
  • B-: 60%
  • C+: 55%
  • C: 50%
  • C-: 47%
  • D+: 46%
  • D: 44%
  • D-: 40%

Piazza Etiquette

Important Note:

We will encourage more student participation on Piazza rather than answering right away, that is, we will wait until other students step up and answer questions.

Of course, we will still provide clarifications on logistics, typos, subtle points, etc.

We want to make sure that you are helping each other out, and having instructors give away the answers isn't the most beneficial for your education either.

In order to make Piazza a better resource for everyone, we've outlined some guidelines for you to follow when posting your questions. Questions which follow these guidelines will have a higher chance of being answered!

1. Ask HW questions only in HW posts.

We've created individual posts for each problem from homework. Please ask questions, discuss problems, or help out in those posts only. Before asking a question, read through (or search) the whole post to see if your question has been answered.

2. Don't post answers in Piazza.

Please don't give away the answer on Piazza. You can explain things in a way that still lets other students figure out the essence of the problem on their own, but don't spoil the problem. For example, don't point to a useful YouTube link that works out essentially what the problem is asking about.

3. Try to make posts public.

While not violating Rule 2, try to make your questions public, because others might have the same question and we don't need to answer them multiple times.

4. Piazza is not OH. 5 minute-test.

If you think your questions may take more than 5 minutes to answer, please come to office hours or homework parties instead.

5. Neither Piazza nor TAs are for pre-grading.

Please do not post questions of the form:

  • "Is this the correct solution to HW X problem Y?"
  • "Would this receive full credit on HW X problem Y?"
  • "Is this the right level of detail for HW X problem Y?"

Please do not use Piazza as a medium to ask instructors to check your homework in advance. We simply cannot check every student's homework through Piazza.

Feel free to ask questions of clarification, or ask questions about the course content to achieve a deeper understanding, but at a certain point, you must apply your knowledge, give it your best shot, and submit your answers with confidence.

6. Post a screen shot of any resource referenced.

Your question should be self-contained. The TAs (and other responders) should not have to scan through PDFs to even figure out what the question is. Ask yourself: am I referring to some lecture slide/lecture note/HW solution/discussion solution/past exam?

If the answer is yes, post a screen shot of the relevant part.

7. Post all your work.

Don't post one line saying:

At step n, I get XYZ, and I'm now confused.

This forces the TAs to guess:

What happened in steps 1, 2, ..., n - 1?

Most likely, the TAs will guess wrong, and we run into a mess of followup questions trying to figure out what steps 1, 2, ..., n - 1 were.

Instead, post:

Starting out, we have: ....

Then, I do ..., and I get ...

Next, I do ..., and I get ...

Next, I do ..., and I get ...

Now, I get $&%&#(, and this makes no sense.

Then, the TA can respond:

The mistake is at step 3, you're not allowed to apply ABC to XYZ because ...

8. Post narrow, precise questions.

Questions of the form "Can someone please explain stable marriage to me?" are not helpful.

There's an entire lecture note written on it. There are multiple parts to stable marriage:

  • actual algorithm
  • proof of termination
  • proof of stability
  • proof that it's male optimal
  • proof that it's female pessimal

No TA is arrogant enough to think they can rewrite the lecture better than notes that have evolved over decades of teaching. Instead, the question should be precise, like:

Title: Can someone please explain this step of the proof of stability?


[Image of Stable Marriage Algorithm]

[Image of Proof of Stability (with an arrow draw in)]

In the proof of stability, I get that we have:

  • fact 1 in your own words
  • fact 2 in your own words
  • fact 3 in your own words

However, I don't get how we get:

  • fact 4 in your own words

Survival Tips for CS 70

These tips have been collected through the years from professors, past and present. You can also check out the Learning How To Learn Coursera for other general tips.

Don't fall behind.

In a conceptual class such as this, it is particularly important to maintain a steady effort throughout the semester, rather than hope to cram just before homework deadlines or exams. This is because it takes time and practice for the ideas to sink in. Make sure you allocate a sufficient number of hours every week to the class, including enough time for reading and understanding the material as well as for doing assignments. (As a rough guide, you should expect to do at least one hour of reading and two hours of problem solving for each hour of lecture.) Even though this class does not have any major projects, you should plan to spend as much time on it as on any of your other technical classes.

Read the lecture notes before lecture.

The material takes some time to sink in. You'll be able to pick up the nuances if you've already got a gist of what will be covered.

Take the homeworks seriously.

The homeworks are explicitly designed to help you to learn the material as you go along. Although the numerical weight of the homeworks is not huge, we work hard to make them instructive and interesting. Do read the sample solutions, even for the problems on which you received full points. You may well learn a different way of looking at the problem, and you may also benefit from emulating the style of the solutions. (In science, people learn a lot from emulating the approach of more experienced scientists.)

Don't procrastinate on homework.

Our best advice is to read through the homework problems as soon as they are available, and let them percolate in your brain. Think through possible approaches while you are waiting in line, or stuck in an elevator. Sleeping on a problem, or taking a walk has often helped people to come up with a creative approach to it. Definitely do not wait until the night before it is due to start working on the homework.

Make use of office hours.

The instructors and TAs hold office hours expressly to help you. It is often surprising how many students do not take advantage of this service. You are free to attend as many office hours as you wish (you are not constrained just to use the office hours of your section TA). You will also likely get more out of an office hour if you have spent a little time in advance thinking about the questions you have, and formulating them precisely. (In fact, this process can often lead you to a solution yourself!)

Take part in discussion sections.

Discussion sections are not auxiliary lectures. They are an opportunity for interactive learning, through guided group problem solving and other activities. The success of a discussion section depends largely on the willingness of students to participate actively in it. As with office hours, the better prepared you are for the discussion, the more you are likely to get out of it.

Form study groups and/or come to homework parties.

As stated above, you are encouraged to form small groups (two to four people) to work together on homeworks and on understanding the class material on a regular basis. In addition to being fun, this can save you a lot of time by generating ideas quickly and preventing you from getting hung up on some point or other. Of course, it is your responsibility to ensure that you contribute actively to the group; passive listening will likely not help you much. And recall the caveat above that you must write up your solutions on your own. Homework parties are an alternative vehicle for working with others in a nice atmosphere, and can be a good place to find a group to work with regularly.

Pay attention in lectures.

As the semester proceeds, many of you will no doubt feel the urge to 'daydream' during lectures, or to skip them altogether, on the grounds that you can catch up by reading the lecture notes. If you follow this strategy, you should be aware that reading mathematics is NOT the same as reading a novel or a news article: each page of mathematics needs to be read many times before it is fully understood, and needs to be backed up by examples and discussion. Following the material in class should save you several readings; even just watching it go by without fully understanding it makes your later reading easier. And you also get the benefit of student questions, examples etc. Exactly how you handle lectures is up to you. One strategy is to print out the lecture notes in advance, bring them to lecture, and add a few additional notes during class.