Spring 2024

Course Format

Except for lectures, CS 186 will be in-person this semester, which means all meetings, such as discussion, office hours, exams etc. will happen in person. Lecture videos will be pre-recorded, and released weekly on Tuesdays and Thursdays. Discussion sections and office hours will begin the second week of classes and can be found on the course calendar.

A warning: please try and stay up to date, as previous offerings of the course have shown that it is deceptively difficult to catch up if you fall behind.

We will expect students to have taken CS 61A, CS 61B, and CS 61C. CS61A/B will be enforced as a prerequisite, CS61C is strongly recommended This class is project-heavy, and there will almost always be a project assigned to you throughout the semester. Students have noted an increase in difficulty compared to offerings of this course predating Fall 2018. We expect proficiency with Java (around the level taught in CS 61B) in order to work on the projects, with the exception of Project 1. Projects vary in difficulty. You can find more information about them in the Projects section below.

Before continuing, please make sure you are enrolled in the course Gradescope here, using your UC Berkeley credentials. Please also enroll in the course Edstem here, as Edstem is our primary method of communication and making announcements, and you are responsible for checking it frequently.

Course Materials

Vitamins: Vitamins are short, weekly assignments on Gradescope designed to keep you on schedule and check your understanding of the basics from lecture. Vitamins must be submitted on time! However, your lowest two vitamin scores will automatically be dropped at the end of the semester. You also have unlimited tries for each question of every vitamin. Vitamin explanations will display when you have gotten the correct answer. If you are struggling with any of the questions on the vitamin, you are encouraged to come to office hours for help.

Resources: We have a variety of resources to help you throughout the course, such as course notes, past exams, individual TAs’ discussion slides, exam prep section worksheets, and more. We will be posting these to Edstem throughout the semester, and they will also be available on the course website. In addition, we have a public course Drive, where most of the resources will be available or be posted. Project announcements and updates will be released through Edstem, but the instructions will be released in the CS 186 Projects Gitbook (see the sidebar), and the starter code will be released through Github Classroom.

Discussion Sections

Discussion sections are a highly recommended component of this course. In discussion, you’ll learn more in depth about the previous week’s content, solve problems similar to those on exams and vitamins, and have the opportunity to ask your TA relevant conceptual questions.

We also offer two alternative section formats:

  • Extra Time sections are 1.5 hours long (instead of 1) and are designed to allow additional time for questions and completing worksheet problems.
  • Exam Prep sections are designed to be attended in addition to regular sections and will provide exam-level practice in a structured format.

There are no assigned discussion sections, so you are welcome to attend whichever ones you wish. Extra credit will be awarded for discussion attendance (more information in the Grading section). Discussion sections begin the week of 1/22.

Office Hours

Office hours are a great place to go for help with projects or any other content-related questions. Administrative OH will be held in a hybrid format by Vibha Tantry, and are solely dedicated to administrative and logistical questions regarding the course, such as extension requests, alternative exam requests, and personal issues. The instructor will also hold OH to answer any conceptual or lecture questions. You can find a list of office hours under the Staff tab on this page. The course calendar under the Calendar tab also shows the office hours for the week. We will be using an online office hour queue] for all office hours besides lecturer office hours. Please make sure to read and follow the OH ticket description policy before queueing.


At the very start of the semester, we will be releasing Project 0, designed to check your familiarity with the course policies and to help you set up the software used in the programming assignments. This assignment will not be graded. Throughout the semester, we will release programming assignments via Edstem, each worth varying percentages of your grade (see the Grading section for more details). The instructions for each project will be released on our Gitbook. They are designed to cover distinct parts of the course and are done in SQL (Project 1), Java (Projects 2-5), and NoSQL (Project 6). We will try to hold at least one project party for each, but the time, location, and logistics will be announced much closer to the due dates.

Late Policy: You will get 7200 slip minutes (equivalent to 5 days of slip minutes). Slip minutes applied to one part of the project do not apply to another part of the project. Slip minutes are automatically used in the manner that will optimize your score the most. After using all your slip time, you’ll be docked ⅓ of your score for the project each extra day late on your project submission.

Submission: Make sure that the submission currently selected on Gradescope is the submission you want graded. If you would like to have a different submission graded, you can select the submission you want graded on Gradescope within a week of the regular deadline and before grades are released.

Extension: Extension: Extensions will kick in only after all slip minutes are exhausted. If you need an extension on a project, fill out this form. The extension will be given to both the student and their partner. DSP Extensions <= 3 days will be automatically accepted.

We rarely give extensions for vitamins, and they are approved on a case-by-base basis. We ask that you email or meet with Vibha if you request extensions on vitamins. For all other circumstances, we will drop the lowest 2 vitamin scores.

For extensions that are longer than three days, we ask that students without formal DSP accommdations for extensions please provide documentation, or meet with Vibha.

Setup Help: If you have any questions regarding specific project debugging or software help that pertains towards setting up your machine properly to complete the coursework successfully, make a public post on Edstem.

Student Support

Extension Policy

We provide slip minutes for late project submissions, which we recommend you use. If you have other circumstances and would like support beyond this, please request an extension and/or meet with Vibha in Admin OH.

Extenuating Circumstances & Inclusion

We recognize that our students come from varied backgrounds and have widely-varying experiences. As instructors, our goal is to teach you the material in our course. The more accessible we can make it, the better. If you encounter extenuating circumstances, please do not hesitate to let us know. The sooner we are made aware, the more options we have available to us to help. 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 is said in class (by anyone) that makes you feel uncomfortable, disrespected, or excluded by a staff member or fellow student, please report the incident so that we can work to address the issue and create a more supportive and inclusive learning environment. Some options are:
  • If we have inadvertently scheduled an exam or major deadline that creates a conflict with your religious observances, please let us know as soon as possible so that we can make other arrangements.
  • If your name differs from your legal name, you may designate a preferred name for the classroom by following these steps.
  • Pronouns can be different for each student and should not be assumed. If you are misgendered by staff or another student, please respond however is best for you in the moment. If you’re open to letting us know about the incident via email ( or through the anonymous reporting form, we would really appreciate it, so we can both make sure you are appropriately addressed and continue to build habits of inclusion in our staff.
  • If you’re in need of laptops, Wi-Fi hotspots, or other required technologies, check out the Student Technology Equity Program.

Mental Health & Wellness

As a student you may experience a range of issues that can cause barriers to learning, such as strained relationships, increased anxiety, depression, difficulty concentrating and/or lack of motivation. These mental health concerns or stressful events may lead to diminished academic performance or reduce a student’s ability to participate in daily activities. UC offers services to assist you with addressing these and other concerns you may be experiencing. If you or someone you know are suffering from any of the aforementioned conditions, consider the following services available to you:


We committed to creating a learning environment that meets the needs of its diverse student body including students with disabilities. If you anticipate or experience any barriers to learning in this course, please feel welcome to discuss your concerns with the instructors. If you have a disability, or think you may have a disability, you can work with the Disabled Students’ Program (DSP) to request an official accommodation. The Disabled Students’ Program (DSP) is the campus office responsible for authorizing disability-related academic accommodations, in cooperation with the students themselves and their instructors. You can find more information about DSP, including contact information and the application process here. Students registered with DSP can expect to receive an onboarding email within a week of sending us your formal letter of accommodation through the AIM portal.

Course Climate

As a member of the CS 186 community, realize that you have an important duty to help other students and staff feel respected in helping create an inclusive learning environment. It is our expectation that all interactions with course staff and other students will demonstrate appropriate respect, consideration, and compassion for others. Please remember to be friendly and thoughtful; our community draws from a wide spectrum of valuable experiences. For further reading, please reference the Berkeley Principles of Community and Berkeley Campus Code of Student Conduct.


Your total score will be calculated as follows:

  • Vitamins (a.k.a. Quizzes): 5%
    • There will be a number of vitamins throughout the semester, generally released every Friday and due on the Monday the week after at 11:59 PM PDT (11 days total).
    • Your lowest 2 vitamin scores are automatically dropped at the end of the semester. These are meant to account for emergencies or other circumstances that prevent you from completing the vitamins.
    • We will also be releasing a pre-semester quiz at the start of the semester, which will count towards this category. You cannot drop your pre-semester quiz score.
  • Projects: 40%
    • There will be six projects, of varying weights based on their difficulty.
    • Project 0 is not graded. Project 1 is worth 5%, Project 2 is worth 6%, Project 3 is worth 8%, Project 4 is worth 8%, and Project 5 is worth 8%, and Project 6 is worth 5%. - We reserve the rights to alter the weights during the semester if needed.
  • Exams: 55%
    • There will be two midterm exams and one final exam
    • We will manually weight your midterm exams such that the better midterm is 18%, and your worse midterm is 12%. The final exam is worth 25%.
    • All exams are planned to be in person, but we will adhere to university guidelines regarding COVID. Remote accommodations are granted on a case by case basis only, and is typically reserved only for extremely special cases. Barring emergencies or unforeseen circumstances, students should not take this class if they know ahead of time that they cannot complete all exams. If you have a conflict with an exam date, please email us ASAP at, and at least two weeks before any exam.
    • Regular and alternate exam times are to be determined - more details will be released on Edstem.
    • Alternate exam requests are due two weeks before the date of the corresponding exam.

In addition, you will receive 2% extra credit for attending 7 discussion sections (max 1 per week), and 0.1% extra credit for every additional discussion section after that. All extra credit will be applied post-curve.

We reserve the right to alter grading weights during the semester if needed.

Some other key notes on grading:

  • The class will be curved to fit within EECS departmental guidelines, but specific bin and curve-related data will not be released to students.
  • Participation on Edstem and in discussion/office hours may positively influence your semester grade. Work that you submit must be your own. We will run the latest software duplication checkers on all your assignments.
  • We will follow the EECS departmental policy on academic honesty, so be sure you are familiar with it. And hey — don’t cheat. Not cool.
  • We will only grant Incompletes in very rare occasions. From the Vice Provost for Undergrad Education: “Instructors should never assign an incomplete grade unless the student has requested it, the student’s work in the course has been of passing quality to date, and the class cannot be completed due to circumstances beyond the student’s control.”


There is no required textbook for this class, but we will suggest recommended readings from the textbooks listed on the Resources page for recommendations.

Other Questions & Exceptional Circumstances

Edtsem is the main method of communication for this course, and all announcements about the course will be posted there. Join it ASAP if you haven’t already. For administrative and logistics issues, late alternate exam requests, DSP accommodations, or for emergencies or personal issues that you do not feel comfortable posting on Edstem, please email You can also visit administrative OH to discuss these issues.

Adding the Course Late

We reserve the right to set the grading policy for those who add the class late. Please make sure you check with staff before adding.

Educational Research

We will be trying out new autograding tools this semester. As such, we may use your anonymized submissions to help us refine our tools. If you prefer not to participate, please let the course staff know.

Land Statement

We recognize that Berkeley sits on the territory of Huichin, the ancestral and unceded land of the Chochenyo Ohlone, the successors of the historic and sovereign Verona Band of Alameda County. This land was and continues to be of great importance to the Ohlone people. We recognize that every member of the Berkeley community has, and continues to benefit from the use and occupation of this land, since the institution’s founding in 1868. Consistent with our values of community and diversity, we have a responsibility to acknowledge and make visible the university’s relationship to Native peoples. By offering this Land Acknowledgment, we affirm Indigenous sovereignty and will work to hold University of California Berkeley more accountable to the needs of American Indian and Indigenous peoples.


Parts of the syllabus have been adapted from CS186.