Link Search Menu Expand Document


Table of contents

  1. Welcome
  2. Platforms
  3. Primary Course Components
  4. Grading Breakdown
  5. Pro-Student Grading Policies
  6. Exam Policy
  7. DSP Accommodations
  8. Attendance & Lecture Questions
  9. Academic Integrity
  10. Diversity and Inclusion Statement


Welcome to CS10: The Beauty and Joy of Computing! We’re really excited to have you on board with us this Spring for a gentle but thorough introduction to computer science. Our course will start out in the blocks-based language Snap!, but will transition into Python once you have learned some fundamentals of programming. By the end of the class, we hope you walk away with a deeper understanding of the ideas that have come to define computer science, the ability to build your own programs, and the confidence to apply these skills in whichever field you choose to pursue.


This Spring, CS10 will be be primarily in person, but we will also have some activites held online, including the entirety of the first two weeks.:

  • Course Website: The day-to-day happenings of the course (and links to all the platforms below) can be found at
  • Ed: This will be our main Q&A platform, where you can ask questions, see announcements, and participate in our meme contest (yes, a meme contest). What’s more, by asking and answering questions, you also get a chance to earn some extra EPA points (more on that later)!
  • Gradescope: This is where you will submit projects and homeworks, and take reading quizzes during lab.
  • bCourses: bCourses will be where your lab grades will be recorded amongst other assignments.
  • Zoom: Discussion sections and lectures (when remote) will be held via Zoom.
  • OhYay: Online lab sections and office hours will be held via Ohyay. Ohyay is a new tool which lets us build some interactive spaces.

Primary Course Components

  • Lecture: Lecture will be live and in person in Hearst Field Annex, A1. Lecture recordings will also be posted on after class. Lecture introduces concepts and gives you and overview of what is happening in labs and discussions. Each lecture will be followed with self-check questions which you can answer online via Gradescope, which are counted as part of participation and attendance.

  • Lab Sections: Labs will be held synchronously and are the primary place you will learn to program. Attendance is not mandatory, though you can gain points by attending (see below under grades). To earn full credit for a lab, it must be completed, submitted, and checked off. Checkoff can be done either in lab or in office hours. If you have a special circumstance where you are unable to check-off a lab, please email Each lab will be due one week after the lab is released. For example, a lab released on a Tuesday will be due the following Tuesday. There will be at least 18 total labs — but only your top 16 lab scores will count towards your grade. Each lab is worth 2.5 points. Half a point will be deducted for each day that a lab is checked off late; however, a maximum of 1 point will be deducted for any given lab. We encourage you to attend the same lab throughout the semester, but you are also welcome to attend any lab if you need to.

  • Discussion Sections: Discussion sections are where you will delve into the content more deeply with worksheets in traditional “pen-and-paper” style. This is where you will develop the theoretical computational skills needed to understand the basics of programming. Attendance is not required, but you can earn points (see below) by attending.

  • Reading Quizzes: Reading Quizzes will be given during the first beginning of the first lab each week, with some exceptions that will be noted on the course calendar. They will be offered synchronously at the start of lab. They will happen via gradescope.

  • Office Hours: During office hours, you can meet with a TA or Michael for help with course material, assignments, or bigger picture questions.

  • Participation and Attendance: You can receive points for this category by attending discussion, lab, and doing post-lecture questions. Note that there will be more than 30 points available (so you can still get full points in this category if you miss section or don’t do post-lecture questions one week) and that once you reach 30, your grade will cap out there (no extra credit if you get above 30; just full points(: ).

  • Project and Homework Description: These assignments will be one of the best ways for you to apply what you have learned in lecture, lab and discussion. These will be a bit more time intensive than the other assignments and will require you to be caught up on the other components of the class. Homeworks will tend to be a bit less difficult and time intensive, while projects will take a bit longer and require more work on your part. Note that you may use 8 slip days (explained in more detail below) total this semester on assignments in this category.

Grading Breakdown

Homework 0: Introduce Yourself5
Homework 1: Wordmatch10
Homework 2: Mastermind20
Project 1: 204830
Project 2: Explore40
Homework 3: Intro to Python40
Project 3: Your Choice75
Reading Quizzes10
Attendance & Lecture Questions30

Total: 500 Points

Letter GradeRange

Pro-Student Grading Policies

  • Absolute-Clobber Policy: If either your midterm or final exam score is higher than your quest score, we will replace your quest score with the maximum of your absolute midterm and final exam scores. If your final exam score is higher than your midterm score, we will replace your midterm score with your final exam score. For example, if you receive a 70% on the midterm but an 85% on the final, at the end of the semester your midterm score will also be upgraded to 85%. For reference: Clobber policies in later CS courses tend to be based on your performance relative to the mean. However in CS10, it is based on your absolute score. In short, your quest score will be equal to max(quest, midterm, final) and your midterm score will be equal to max(midterm, final).
  • Slip Days: Each student will receive 8 slip days, to be used for projects. Each slip day allows you to extend the deadline period by one day with no penalty. For example, if a project is due Friday at 11:59 PM PT, you may turn it in without penalty up until Saturday at 11:59 PM PT by using one slip day. Note: You can use a maximum of three slip days per project.
  • Late Submissions: Late submissions for projects will be handled on a case-by-case basis. If you are out of slip days for a project but cannot make a deadline, please contact us at figure out an extension. If you do not reach out to anyone in advance, we reserve the right to mark the submission down by 10% for each day that it is late.

Exam Policy

There will be three exams: The Quest, the Midterm and the Final Exam. Exams format (in-person or remote) is still TBD. Tentative dates are February 8th for the Quest, and March 14th for the Midterm. Exams will be taken using Gradescope. Online exams will be proctored. Exam logistics will be sent out in more detail closer to the date of each exam.

DSP Accommodations

If you have a DSP accommodation through the university that is not addressed by the above policies, please be sure to submit your official letter through the DSP portal. Once you have done so, we will be able to accommodate you. If you have an accommodation but are unable to promptly submit the letter for whatever reason, please reach out to

Attendance & Lecture Questions

Each week we’ll take attendance in discussion section, and most lecturers will be accompanised by a series of short “self-check” questions on Gradescope. Each of these activies is worth 1 point, and you will have many opportunities to earn the 30 points throughout the semester.

Lecture self-checks are designed to be submitted within a few days of lecture, but can be submitted late without penalty.

Academic Integrity

Let’s get honest about being honest. It is truly a disappointment to catch students cheating. All we really want is for you to learn the material and if the class is stressful enough that you feel the need to cheat, we have failed as instructors. If you are feeling stressed out in the course, please tell us. We will do what we can to help you.

Maintaining academic integrity is a crucial part of your learning experience, as cheating prevents us as instructors from understanding where our model of instruction isn’t working. We understand that academics can be stressful and that it might be tempting to cheat; however, there are ways to meet your goals that don’t require academically dishonest means. Here, we will lay out our academic integrity policies and some good practices that will help you avoid academic dishonesty and improve your overall mastery of the material.

What constitutes cheating?

  • Copying part or all of another student’s project code with the exception of your partner(s). This includes students from previous semesters (we still have their code and will know if you do this).
  • Sharing or receiving the exact steps used to solve a project problem (even if code is not explicitly sent).
  • Copying part or all of another student’s exam answers.
  • Collaborating with another student when taking the midterm or final exams by receiving or giving assistance of any kind.
  • Copying code from online sources without crediting them
  • On the Explore Project, using or paraphrasing someone else’s words without crediting them. Coding is difficult to learn, and when you do any of the above, you rob yourself and others of learning how to approach difficult programming problems, an essential skill for future classes. If you are unsure about whether or not something constitutes cheating, please confirm with Michael or a TA.

What constitutes collaboration?

  • Asking instead of telling. If you’re working with your friends and one of them is stuck on a part of an assignment, try to ask them guiding questions instead of telling them the answer.
  • Keeping things conceptual! It’s more beneficial to your learning if you come up with a solution yourself, rather than having it told to you. This also applies if you are helping someone else. We highly encourage collaboration, so let’s define what that means. Discussing approaches to problems is fine (in fact, we actively encourage it), as long as you eventually arrive at a good enough understanding of the problem that you are able to code the solution completely by yourself. You should not allow concerns about cheating to get in the way of discussing the class material with your classmates. It is okay if you have received some help with ideas along the way (but not a fully worked out solution).* *This policy was adapted from Professor Alistair Sinclair’s policy for CS 172.

What happens if you cheat? We will set up a meeting with you to discuss the situation and determine the consequences.

Additional Note: Many high school and college courses encourage students to anonymously or non-anonymously report other students for cheating in order to discourage academic dishonesty. Regardless of what you may have experienced before, we will never expect you to do this — we do not want to put you in a difficult position and frankly, we think there are more important things than academic dishonesty.

Diversity and Inclusion Statement

We recognize that computer science is a demographically skewed field in the United States, and that even at Berkeley, minoritized students can find themselves feeling alone. It is our goal in this course to deliver an equitable learning experience for everyone involved. Concretely, this means a few things:

  • In addition to teaching the technical skills necessary for programming, we will also teach the social implications of computer science. In doing so, we will directly address the contributions of underrepresented groups to the field, which are often overlooked.
  • We will do our absolute best to show you that while bias, discrimination, and judgment still exist, they should not stand in the way of you learning computer science. While acknowledging the struggles many students may face, we also hope to show that computer science is a field anyone can be successful in (in other words, there is no innate “talent” or “trait” required to understand computer science). Of course, different people have different opportunities, but one of the goals of CS10 is to equalize the playing field.
  • Discrimination or disrespect on the basis of race, ethnicity, religion, socioeconomic status, ability, gender, or sexual orientation will be tolerated under no circumstances. Should someone make you feel uncomfortable or disrespected in any way, please let Michael know immediately via email or by coming to office hours. You can also fill out the EECS Incident Reporting Form.