Note: The syllabus is subject to change.


There will be several routes of communication for this course:

  • The main mode of electronic communication between students and staff, as well as amongst students, is through Piazza. It is intended for general questions about the course, clarifications about assignments, student questions to each other, discussions about material, and so on. We strongly encourage students to participate in discussion, ask, and answer questions through this site. The course staff will monitor discussions closely.
  • If you need to contact the course staff privately, you should make a private post on Piazza. If you need to contact us by email, you should email cs188@berkeley.edu. You may of course contact the professors or GSIs directly, but Piazza will produce the fastest response.


  • CS 61A or 61B: Prior computer programming experience is expected (see below)
  • CS 70 or Math 55: Familiarity with basic concepts of propositional logic and probability are expected (see below)

CS61A AND CS61B AND CS70 is the recommended background.

The required math background in the second half of the course will be significantly greater than the first half. The self-diagnostic assignment Homework 0 will help check your preparation.

Course programming assignments will be in Python. We do not assume that students have previous experience with the language, but we do expect you to learn the basics very rapidly. Project 0 is designed to teach you the basics of Python and how the CS 188 submission autograder works. Project 1 is a good representation of the programming level that will be required for subsequent projects in this class.


This class includes 6-7 programming projects, and 11 homework assignments.

Late Policy

Homeworks cannot be turned in late; you have to use your homework drops. Projects lose 20% of their total point value per day turned in late. However, projects also have slip days which can be used to delay the onset of the late policy. See the Homework Drop Policy.

This semester, both homeworks and projects will be due at 10:59 PM Pacific Time. However, you will lose no points (and use no slip-days for projects), if you submit before the late deadline of 11:59 PM Pacific Time. We strongly recommend you use this grace period to protect against technical issues, and to have your assignments finished before 10:59 PM. We will accept absolutely no submissions after the 11:59 PM late deadline, even after technical issues or emergencies.


Project 0 is to be completed alone. All other projects can be completed alone or in teams of two. If done in a team of two, the person who submits needs to tag the other team member on Gradescope. However, it is important that the submission reflects the understanding of both team members. Homework is to be submitted individually, but may be discussed in groups. If discussed in a group, acknowledge your collaborators in the submission per standard academic practice.

Please note that obtaining, sharing, and posting solutions to homework or projects is a violation of academic integrity.

Please also note that sharing lecture recordings outside this class is prohibited due to privacy and accessibility concerns.

Project Slip Days

Programming projects must be turned in electronically by the listed due date and time. You will have a total of 5 slip days to be used across ALL projects to extend a deadline. Note that slip days are counted by the granularity of days, rounded up to the nearest day. For example, for a project due at late deadline 11:59PM Pacific Time on Friday, any submission from Friday 11:59PM to Saturday 11:59PM will use up one slip day, any submission from Saturday 11:59PM to Sunday 11:59PM will use up two slip days. Slip days will be applied to your grades at the end of the semester in a manner which maximizes your project grades.

Note: See Late Policy for late deadline details.

Project Grading

Projects will by default be graded automatically for correctness, though we will review projects individually as necessary to ensure that they receive the credit they deserve. Projects can be submitted as often as you like before the deadline; we strongly encourage you to keep working until you get a full score.


The homework (hosted on Gradescope) is meant to reinforce and give practice with concepts covered in class. The homework will consist of an Electronic portion (autograded, instant feedback) and a Written challenge question (graded by TAs). Homeworks will be released on Thursdays and due the following Wednesdays at 10:59PM Pacific Time.

Electronic component of HW: The electronic portion will be automatically graded for correctness, and you can submit as many times as you like up to the deadline; again we encourage you to work until you have fully solved this portion of the homework.

Written component of HW: The written challenge question is meant to make you think beyond strict repetition of what is covered in class and is used to reinforce conceptual material that you will see on exams. For the challenge question only, you must show your work on paper or tablet and submit it to Gradescope. The challenge question will be graded on correctness, and you must show all necessary work to receive full credit. Solutions to the challenge question will be released on the day after the homework is due (Wednesday). We want you to focus on understanding the material in the homeworks, not necessarily maximizing your score. To that end, we will give full credit on written challenge questions that earn at least 80% of the points possible. Otherwise, the score will be divided by 0.8 (for example, if you get 70% on a written challenge question, your score for that assignment would be counted as 0.7/0.8 = 87.5%)

Note: Homeworks will have no slip days (must be submitted on time). We will drop the ONE lowest homework score, but we recommend you save this homework drop for emergencies only. Note that this policy is also meant to deal with cases like internet issues while submitting, forgetting about the deadline, family situations, joining the class late, etc.


Homework/Project submissions should acknowledge all collaborators and sources consulted. All code and written responses should be original. We trust you all to submit your own work, but to protect the integrity of the course from anyone who doesn't want to play by the rules, we will actively be checking for code plagiarism (both from current classmates and previous semesters), as well as written homework submissions that look eerily similar.

If you use a code snippet from a website like StackOverflow for a small task (for example, capitalizing a string), this is fine, but please cite your sources in your code with a comment.

Exams are expected to demonstrate your work, and your work alone. We have a zero-tolerance policy for any form of collaboration on exams. We are not lenient about cheating; in past semesters, CS 188 has caught upwards of 50 students for academic dishonesty and directly reported them to the Center for Student Conduct. An overwhelming majority (>90%) of the students were found guilty, and thus earned an "F" in the class and a mark on their transcript. Please, just don't cheat. Not cool.

Extensions for DSP

Our course manager Michael-David will be managing extension requests and accommodations this semester. If you need to make an extension request due to exceptional circumstances or would like to request DSP extensions, please fill out this form that will go directly to him.

If you have any questions, concerns, or want to reach out to Michael-David directly, feel free to email him at eecs-course-management@eecs.berkeley.edu.

Extensions for projects and homeworks are generally granted only for DSP students whose advisor has submitted a DSP letter.

In a project group, the DSP extension applies to both students in the group. Please include the name of your project partner in the extension request.

Extensions should be requested well in advance of the deadline, to give staff a chance to respond.


The midterm exam time is tenatively scheduled for Tuesday, March 8th in the evening

The final exam time is set by the central campus and should appear in CalCentral once the campus assigns a time.

Exams in CS 188 are challenging and serve as the main evaluation criteria for this class.


Overall grades will be determined from:

  • Projects (25%)
  • Homework Assignments (20%)
  • Midterm (20%)
  • Final exam (35%)
  • Participation (5% bonus)

| Grade |  Overall Percentage  |
| ----- | -------------------- |
| A     |       [90, 100]      |
| A-    |       [85, 90)       |
| B+    |       [80, 85)       |
| B     |       [75, 80)       |
| B-    |       [70, 75)       |
| C+    |       [65, 70)       |
| C     |       [60, 65)       |
| C-    |       [55, 60)       |
| D+    |       [50, 55)       |
| D     |       [45, 50)       |
| D-    |       [40, 45)       |
| F     |       [0 , 40)       |

The instructors may adjust grades upward based on class participation, extra credit, etc. The grade of A+ will be awarded at the instructor's discretion based on exceptional performance.

If you are taking the class PNP, you will need to attain a letter grade of C- or higher AND take the final to pass. If you are a graduate student taking the class SUS, you will need to attain a letter grade of B- or higher AND take the final to pass.

Regrade Policy: If you believe an error has been made in the grading of one of your exams or assignments, you may resubmit it for a regrade. Regrades for cases where we misapplied a rubric in an individual case are much more likely to be successful than regrades that argue about relative point values within the rubric, as the rubric is applied to the entire class. Because we will examine your entire submission in detail, your grade can go up or down as a result of a regrade request.


What are participation points?

Participation points are a form of extra credit to encourage students to attend discussion section and be active on Piazza. Students can earn up to a maximum total of 20 participation points in CS 188. This is meant to give all students the maximum flexibility to participate in a way they feel comfortable with.

Section participation (max 20):

We have discussion sections that span over a wide range of times, so please find times that works for you and attend discussion sections every week. This semester, we are offering both Regular and Exam Prep Discussion sections. Regular sections focus on developing a strong foundational understanding of the course material, while Exam-Prep sections focus on problem-solving strategies and applying the concepts in new and unique ways. Regular Sections will be held between the Tuesday and Thursday lectures, while Exam Prep sections will be held on Fridays and the following Monday.

We highly encourage students to attend both regular AND exam prep discussions every week. Working through problems is the best way to learn this material. You cannot learn AI by simply reading about it or watching lectures. You need to practice solving problems.

We plan to offer both in-person and online discussion sections. TAs will take attendance in discussion section and assign participation accordingly. Attending and actively participating in an online section will earn one participation point. Attending an in-person discussion section will earn one participation point, and actively participating in an in-person discussion section may earn one additional participation point.

Piazza participation (max 20):

At the end of the semester, a Piazza participation score will be assigned to all students, where we will roughly grade everyone on a scale that rewards thought-provoking questions or insightful answers. Staff will assign Piazza grades manually based on these rough features, so there is no formula that exactly maps the number of contributions to the number of Piazza points you will receive. To put things into perspective: out of a maximum of 20 points, less than 6% of students from Spring 2021 earned 10 or more points, and the class median was 1 point.

Please note that we will not round up anyone's grades at the end of the semester beyond participation-point based extra credit. No exceptions. So please take this opportunity to earn extra credit and actively participate.


We believe in the crucial importance of creating a learning environment that is welcoming and respectful to students of all backgrounds. The following are specific steps that will help us in achieving this goal:
  • If you feel your academic performance has been impacted negatively due to a lack of inclusion, or due to experiences outside of class such as current events or family matters, please reach out to the instructors and staff. Our job is not only to teach but to support you in every way we can.
  • If something happens in the course that runs counter to the goal of making every student feel safe, respected, and welcome, please contact the head TA or the instructors; if you don't feel comfortable contacting course staff, you can fill out this form to anonymously let the department know.
  • You may also consult a departmental Faculty Equity Advisor, or fill out the anonymous feedback form for the College of Engineering for equity and inclusion related feedback.
  • If you have a preferred name or set of pronouns that differ from your legal name, you may designate a preferred name for the classroom by following these steps.
  • As a member of the CS 188 community, realize that you have an important duty to help other students feel respected in helping create an inclusive learning environment.

Support During Remote Learning

From the College of Engineering:

We understand that your specific situation may present challenges to class participation. Please contact the instructors if you would like to discuss these and co-develop strategies for engaging with the course.

The Student Technology Equity Program (STEP) is available to help you access a laptop, Wi-Fi hotspot, and other peripherals.

You will be alerted as to when synchronous sessions are about to be recorded. If you prefer not to be recorded, you may turn your video and microphone off. Please set your Zoom name to be the name you would like instructors to call you. You may optionally include your personal pronouns. Please set your Zoom picture to an appropriate profile picture of you to foster a sense of community and enhance interactions. If you are not comfortable using an image of yourself, you may use an appropriate picture of an avatar. We encourage participating with your video on to foster a sense of commnuity and enhance interactions. However, we understand that some students are not comfortable with video or may not be able to participate by video.


Here are the policies that govern admission into classes, and here are some answers to frequently asked questions about admission. The course staff does not control enrollment! You can generally expect with CS 188 that most people will get off the waitlist, as many people tend to drop the class in the first few weeks. If you are interested in staying in this class, be sure to attend lecture and keep up with all the assignments.