CS10: The Beauty and Joy of Computing


In Fall 2020, CS10 is planning to try a new teaching plan to better support students and encourage participation during this unusual online offering of the course. Special thank you to John DeNero and the CS61A team for writing the original document which this was based on.

Collaboration, not Competition

You are encouraged to form study groups and work together to understand course material, but (unless specified otherwise) all your graded work should be your own. Academic integrity and ethical conduct are of utmost importance in the College of Engineering and at UC Berkeley, especially with online offerings. We want to remind you that this course is graded on an absolute scale – that means that there will be no curve at the end of the course, so you don’t have to feel the pressure of having to cheat to get your A. You’re competing against an absolute scale, and you can all (in theory) receive A+ grades! (Though, we might need to make small bin adjustments if the GPA of the class is below the department suggested range, so we might adjust your score up, but it’ll never be adjusted down).
Flexibility and Community
Online classes taught during a time of wildfires, power outages, and a worldwide pandemic need to have policies that support students in different living situations, and in different time zones. They need to have a way that the students can get to know each other, learn from each other, and study with each other. They need to have a way the course staff can get to know their students, and (most importantly) check in with them to make sure their health and learning is going ok. The deadlines need to have flexibility in case a student or team needs some more time to finish a project or homework. We believe we have built all of that into our class this semester.
Synchronous and Asynchronous Learning
Research (and anecdotal evidence) have shown that students who keep up with the material every week do better than students who fall behind, start projects late, and have to cram for each exam at the last minute. So, as much as you can, attend our face-to-face live session (Mon @ 10am PST … but Wed when Monday is a holiday) + a discussion (5 different times) synchronously. However, you will not be penalized for being in a time zone that makes that difficult, and you will find recordings of these sessions available. The only required synchronous element is a weekly 15m check-in with you and three other students with video on (with exceptions on a student-by-student basis), but will have many times throughout the day available for that.

Course Elements

We have a few different components to this course, all of which we have tried to optimize for online learning.
Lecture content has been pre-recorded with high production value. There will be questions to answer via Gradescope after every lecture, for which you will earn credit. On Mondays at 10 AM, there will be a live weekly summary lecture--all content will be the same as in the recordings, but in less depth. You are required to watch the recording and encouraged (but not required) to attend the live sessions. If Monday is a holiday, the live session will be Wednesday. The live session wil also be recorded.
Similar to discussion, we will have five labs scheduled through the day to be sensitive to differences in time zones. Lab attendance is encouraged and will be counted towards extra credit, but is not mandatory. Labs will be conducted through Discord. Checkoffs either happen in lab or via a Google Form submission. Note that you are graded on completion.
Discussion content will be pre-recorded. However, we will also have five live discussion sections, scheduled throughout the day to be sensitive to differences in time zones. Discussion attendance is encouraged and will be counted towards extra credit, but is not mandatory. Live discussions will be held via Zoom.
Once a week, mandatory fifteen-minute synchronous group check-ins will be scheduled throughout the day to be sensitive to differences in time zones. Students will earn credit for attending.
Head Teaching Assistant
Head TA Murtaza Ali will run the course at a high level and is the point of contact for questions when you do not know who to reach out to. For any high-level course questions, reach out to Murtaza before Dan. He will also teach a discussion section.
Lead Teaching Assistants
Lead Administrative TA Isaac Merritt, Lead Lab TA Kathleen Gao, Lead Exam TA Max Yao, and Lead Discussion TA Patricia Yu have course-wide administrative duties. Each Lead TA will also teach a section.
Teaching Assistants
Teaching assistants will focus their efforts on teaching a particular component of the course, either lab or discussion. Some TAs may also spearhead different areas of course development. Lab TAs: Bryant Bettencourt, Lam Pham, and Shannon Hearn. Discussion TAs: Yolanda Shen, Andrew Burke, and Dani Swords.
Readers will be in charge of grading for the semester. The readers for the course are Samhita Sen, Aayush Shah, Taroob Zia, and Sarah Varghese. Please reach out to the Head Reader, Kellyann Ye, for any grading-related questions.
Tutors will primarily be running the check-in groups mentioned above. The tutors for the course are Nicholas Lai and Gowri Somayajula. Please reach out to the tutors if you have any concerns about your ability to keep pace with the course, and they will connect you to the right person or resource needed to assist you.

Course Technology

The primary medium for all synchronous portions of the course.
Google Drive and YouTube
We will release recordings for the course via this platform.
The class forum for all questions and communication regarding the course.
This is where assignments will be turned in and graded.
This is where exams will be taken.
A video conferencing/social community platform where you’ll be able to collaborate and communicate with course staff as well as other students. Labs will be held via Discord.
Course Website
This is the central hub for all information about the course.

Grading Scheme

The course will be graded out of 500 points, and there is no curve. The grading breakdown and bins can be found below.

Grading Breakdown

Exams - 200 points
  • Quest - 20 points
  • Midterm Exam - 80 points
  • Final Exam - 100 points
Projects - 225 points
  • Project 1: Wordmatch - 10 points
  • Project 2: Mastermind - 20 points
  • Project 3: 2048 - 30 points
  • Project 4: Explore - 40 points
  • Project 5: Python - 50 points
  • Project 6: Final Project - 75 points
Labs - 30 points
  • 18 total - 2 points each
  • Lowest 3 scores dropped
Reading Responses - 20 points
  • 12 total - 2 points each
  • Lowest 2 scores dropped
Attendance - 25 points
  • 14 weekly check-ins - 1 point each
  • Post-Lecture Questions - 11 points total

Grading Ranges

We will be awarding the following grades based on the following point ranges:

A+: 485 - 500 points

A: 460 - 484 points

A-: 450 - 459 points

B+: 440 - 449 points

B: 420 - 439 points

B-: 400 - 419 points

C+: 375 - 399 points

C: 360 - 374 points

C-: 350 - 359 points

D: 300 - 349 points

F: 0 - 200 points

Flexibility + Extra Credit

We aim to be as flexible as possible as we would like you all to do well. Below, we outline some of our policies intended to help ease your stress levels.
Late Submissions and Slip Days
If you cannot turn in an assignment on time, contact your TA (and partner on partner assignments) as early as possible. Late project submission requires approval by your TA. For each day a project is late, one-third of the total points you would have earned on the assignment will be deducted. You will be granted six slip days throughout the course. A slip day allows you to extend the deadline period by one day with no penalty. For example, if you turn in an assignment due Sunday at 11:59 PM any time before Monday at 11:59 PM, you will use one slip day. It will be applied automatically, and if you use more than 6 throughout the semester, than we will apply them to the assignments in a way that maximizes your overall course grade.
Clobber Policy
The Clobber Policy allows you to 1) Erase your quest score and replace it with your midterm exam score, 2) Erase your midterm exam score and replace it with your final exam score, 3) Erase your quest score and replace it with your final exam score, or 4) Erase your quest AND midterm score and replace it with your final exam score. The clobber policy exists so that if you add the class late or had to miss the quest or midterm due to unforeseen circumstances, you will be able to receive a grade for the exams.
Pass/No Pass Grading
This section only applies to students who are not taking the course for a letter grade. To receive a Passing grade in the course a student must get at a C-. When taking the class P/NP, a student will not receive an NP if they at minimum turn in all the course assignments on time. This includes: homework 1, homework 2, homework 3, lab check-offs, midterm project, final project, and explore post.
EPA - Effort, Participation, Altruism
EPA is a form of extra credit that we award invisibly at the end of the semester. Essentially, every TA will have an opportunity to award students with EPA points, up to 3 points in each category.
Effort stands for the amount of work a TA has recognized that you put into the course. This can be observed through things like office hours, labs, and more.
Participation includes being an active voice in discussions, posting and answering questions on Piazza (our Q&A forum), and getting involved with the course in other ways.
Altruism points can be awarded for any observed efforts in helping your peers, sharing and posting helpful resources on Piazza for your peers, and any other work you put into furthering your peers’ understanding of the material.

Academic Integrity

Cooperation has a limit and in CS10 that limit is copying lines of code or using ideas that are not your own code. Projects should be completed and turned in individually unless the project calls for a partner. Feel free to discuss the projects with others beforehand; just submit your own work in the end. By discussing assignments, we mean talking about high level ideas (for example, you may discuss how to debug and clarify the spec questions; you may not discuss the solution). Projects are to be completed in groups of 2 or 3, but you may discuss them more broadly than with your partner(s). However, you should not be sharing lines of code with others or reading code from other people's projects. Write your own programs and keep them to yourself.
We expect you to hand in your own work, take your own tests, and complete your own projects. The assignments and evaluations are structured to help you learn. The course staff works hard to put together this course, and we ask in return that you respect the integrity of the course by not misrepresenting your work.
The EECS Department Policy on Academic Dishonesty says, "Copying all or part of another person's work, or using reference materials not specifically allowed, are forms of cheating and will not be tolerated." The policy statement goes on to explain the penalties for cheating, which range from a zero grade for the test up to dismissal from the University for a second offense.
Rather than copying someone else's work, ask for help. You are not alone in this course! The TAs, academic interns, and instructor are all here to help you succeed. If you ever need help in this course, let us know in person, during office hours, or via email/Piazza.
If you have any question as to if what you are doing constitutes academic dishonesty, please reach out to a staff member. If any academic dishonesty is detected, saying, “I did not know that was academic dishonesty,” will not be accepted.