CS 189/289A at UC Berkeley




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 instructor or TAs. Please do not post anything resembling a solution to a homework problem before it's due. If in doubt, you should make your post private (visible to instructors only). We always welcome any feedback on what we could be doing better. To join the class on Piazza, send an email to cs189-fa21 (at) berkeley (dot) edu. You are required to use your actual name on Piazza.


All homework will be submitted through Gradescope, and all grades will be returned through Gradescope. To join the class on Gradescope, go to gradescope.com and enter this code: X3K83P.

Instructional Servers

This course does not make use of instructional accounts, but if you would like a computer account for this course, go to http://inst.eecs.berkeley.edu/webacct, or click 'WebAcct' on http://inst.eecs.berkeley.edu.


The midterm is Wednesday, October 13 from 7-9 p.m. The final is Tuesday, December 14, from 8-11 a.m. All students who are able to take exams in person, i.e., are physically present in California and do not have an approved exception from the course staff, are required to take exams in person. Remote exams will be administered simultaneously as the corresponding in person exam and will be proctored using a procedure that will be detailed later. No alternate exams will be offered. Please make a private Piazza post if you have an extreme hardship related to these policies.


All materials can be found on the front page.


Discussion worksheets are released the day before the first discussions of the week. The discussion sections may cover new material and will give you additional practice solving problems. You may attend whichever, as many, and as few discussion sections you like.


You will self-grade your homework and submit your self-grades before the subsequent homework assignment is due, during which time you will need to read the solutions and evaluate your answers. Readers will check homework self-grades throughout the semester to ensure accuracy. Doing the homeworks and reading the solutions is vital for your learning. You are expected to show your work and justify all of your answers. Your lowest two homework scores will be dropped, but these two drops should be reserved for emergencies. We will not grant additional homework drops or homework extensions for any reason.

Self Grading

To complete self-grades, complete the corresponding self-grading Google form, which will be linked from Piazza. When completing the self-grading assignment, use the following guidelines:

  • 0 = Didn't attempt or entirely wrong,
  • 1 = Made some progress,
  • 2 = 80% or more correct.

Note that we do not expect perfect self-grades. As long as you are not deliberately mis-grading, then you will be fine.


Ethical behavior is an important part of being an engineer. It is a part of our responsibility to act ethically and honestly, and moreover, ethical behavior is what helps you learn best. Cheating is fundamentally dishonest and antisocial behavior. We have a zero-tolerance policy for cheating. Any unconfessed offense will result in negative points for the category that the offense occurs in, with no bound on how negative it can go, and a referral to the Center for Student Conduct. If you confess first, the consequences will be less severe.

You are not permitted to upload any of our problems, solutions, or your own solutions to our problems to any site that is accessible by other people. Use Piazza to discuss content. The only limited exceptions to this are online communication mediums between you and the collaborating individuals explicitly listed on your homework assignment. Looking at online solutions from previous semesters or other students is forbidden, as is sharing of your solutions with others. Furthermore, students all have an affirmative duty to report possible cases of cheating or unauthorized communication to the course staff, immediately. Acknowledgement of and failure to report cheating implicates the bystander since this is academic misconduct. Cheating hurts us all and engineering ethics requires us to point out wrongdoing when we are aware of it.


You are encouraged to work on homework problems in study groups of up to five people, however, you must always write up the solutions on your own. You are not permitted to look at the final written solution even for members of your own study group. Similarly, you may use books or online resources (not solutions from previous terms) 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 is an interaction that we strongly encourage. But you should write your homework solution strictly by yourself. You must explicitly acknowledge everyone whom you have worked with or who has given you any significant ideas about the homework.

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.


Students will be graded with the following weights:

  • Homework: 20%
  • Midterm: 35%
  • Final: 45%