CS10: The Beauty and Joy of Computing


Hello there and welcome to CS 10: The Beauty and Joy of Computing! We’re really excited to have you on board with us for a CS-filled summer where you’ll have your brains filled to the brim with the big ideas and impacts of computer science. Along the way, you’ll get exposure to the block-based language Snap!, and the popular Python, by solving interesting challenges with creative solutions, and even building your own personal project from the ground up! Prepare to have your brain stretched, your curiosity piqued, and yourself moderately caffeinated. This eight-week journey will move faster than you might anticipate, but you can trust that the staff will be here to guide your growth every step of the way. 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, and the confidence to apply it in whichever field you choose to pursue.

Your Summer Experience

This summer, we’re really focusing on how to deliver a high-quality learning experience alongside the shift to a remote format. We also want to make sure that students have a consistent venue where you can interact with instructors, TAs, and their peers in smaller, more intimate settings. While we’ll dive into the nitty gritty of it in a second, you can expect this semester to include: regular one-on-one meetings with your TA, a big emphasis on small-group work, fewer deadlines, and a shift away from delivering content via Zoom.
Your CS10 Family
One thing that defines CS10 is the variety of people and stories coming together to experience computer science for the first time. Staff-wise, your instructors, TAs, readers, and academic interns represent a variety of technical and non-technical majors, including Cognitive Science, Conservation and Resource Studies, Sociology, and Theater and Performing Arts! Furthermore, CS10 consistently has the most diverse group of students out of any computer science course here on campus. As you settle into CS10, you’ll get a chance to meet and connect with all the amazing individuals (that includes yourself!) in the class. More importantly, we hope that you feel comfortable reaching out to this community on Piazza, by email, or via Zoom, whether it’s to get some help with the content, or simply to share your excitement about the topics we’ve covered.

Syllabus Overview

We’ll be talking about the following in the rest of the syllabus:
  • - Course Communications
  • - Section Types and Expectations
  • - Typical Weekly Schedule
  • - Assignments
  • - Grading Scheme
  • - Academic Integrity

Course Communications

We have a few platforms that we normally use for getting information out to you, as well as receiving information!


Course Website
Our course website is where you can access all of our course content! You can find it at cs10.org.
Piazza 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 EPA points!
Gradescope is where you can submit assignments and get feedback on them. You should have been added automatically, but if you weren’t, please let us know! (secret word 2 is strawberry).

Staff Emails

Aaron Baker - aaronbaker@berkeley.edu
Maxson Yang - maxsonyang@berkeley.edu
Andrew Burke - aburke225@berkeley.edu
Dani Swords - daniswords@berkeley.edu
Yolanda Shen - yashen@berkeley.edu
Lam Pham - lampham468@berkeley.edu
Samhita Sen - samhitasen@berkeley.edu
Kellyann Ye - kellyann_ye@berkeley.edu


Flipped Lecture
This semester, we’ll mainly be delivering content through BJCx videos, which is essentially the national version of CS10. Instead of delivering a lecture via Zoom we’ll be taking a flipped classroom approach, spending our time reinforcing and diving deeper into the content talked about in the videos. We highly recommend watching the videos prior to attending these sections as we will be building upon the content, not reviewing them, so you might feel quite lost during these sections if you haven’t done so.
Discussions are similar to flipped lecture sections, but the material covered dives deeper into the content to prepare you for exam-level questions. These occur on Tuesdays and Thursdays with your assigned TA. There’s also a worksheet that accompanies these sections that prepare you for exam-level material.
Labs are open work sessions where there will be a TA and academic interns (AIs) who can help you out with your problem sets and projects. Note that while TAs and AIs are all capable of answering content related questions, questions related to course logistics are best left for TAs. There will be multiple work sessions that take place each day to accommodate differences in time zones. Feel free to attend multiple if you’d simply like to spend more time working on assignments! Conceptual questions are welcome, but better left for office hours — the primary focus of these sections will be completing assignments!
Office Hours
Office hours are optional sections hosted by TAs, where you can ask general questions regarding the class, assignments, and content. Timing of these sections depends largely on instructors and TAs, but we try to adjust when we host these sections based on feedback. You’ll be able to view these hours on the course website under our weekly calendar section.
Check-ins are short, weekly meetings you’ll have with your TA, where you can have a conversation with them about how you’re doing, how you’re feeling about the course and content, and anything else you’d like to talk about, really! We just want to make sure you’re doing well and feeling good about the course. These check-ins shouldn’t take more than 15 minutes, and will happen primarily on Fridays. If that’s not a good day for you though, feel welcome to reach out via email (found on the course website) and we’ll find something that works. (cryptic term 3 is "is")
Social Implication Sessions
CS10 isn’t just a class that teaches programming! We also want to discuss the various impacts of computer science and how they affect our broader society. As part of this goal, we’ll be having weekly readings and/or videos for you to check out regarding specific social implications topics. On Fridays, we’ll be having hour-long discussions pertaining to these weekly topics. If you don’t feel like this is the best venue to share your thoughts though, fret not! There’s an optional reading response you can do instead of having to attend these sessions.

A typical week in CS10

Monday - 1h30m to 3h weekly

In class
  • - Flipped Lecture review - 1 hour
  • - Lab - 2 hours (optional, but highly recommended!)
Outside of class
  • - Problem Set - 30m to 2 hours (depending on the assignment)

Tuesday - 2h30m to 4h weekly

In class
  • - Flipped Lecture review - 1 hour
  • - Discussion + Deeper Dives into content - 1 hour
  • - Lab - 2 hours (optional, but highly recommended!)
Outside of class
  • - Problem Set - 30m to 2 hours (depending on the assignment)

Wednesday - 1h30m to 3h weekly

In class
  • - Flipped Lecture review - 1 hour
  • - Lab - 2 hours (optional, but highly recommended!)
Outside of class
  • - Problem Set - 30m to 2 hours (depending on the assignment)

Thursday - 2h30m to 4h weekly

In class
  • - Social Implications Discussion or Reading Response - 1 hour
  • - Discussion + Deeper Dives into content - 1 hour
  • - Lab - 2 hours (optional, but highly recommended!)
Outside of class
  • - Problem Set - 30m to 2 hours (depending on the assignment)

Friday - 15m weekly

In class
  • - Check-in with TA - 15 minutes
Outside of class
  • - Relax and refresh!

Weekly Estimate: ~8h15m to 14h15m on regular per week*

  • - This doesn’t factor in webcasts and projects (and office hours), which we’ll talk about a little bit next.
  • - It also assumes that if you finish you finish your problem set in the lab or at home. So 2 hours tops.

Additional weekly commitments

Fortunately, the awesome professor Dan Garcia who built CS10, has recorded a series of videos covering CS10 content via BJCx. We’ll be using his videos to introduce content and so you should expect to watch about 20m-40m of videos each day prior to our flipped classroom discussions! These are the videos we’ll be covering in our “Flipped Lecture Reviews”.
There will also be two small projects that we’ll be doing as well as a larger final project you’ll build from the ground up! The time required for this tends to vary for students, but in the past students have been able to complete these projects in a timely manner. We recommend attending work sessions, and setting aside a few hours each day to ensure that you make good progress towards finishing! (mysterious locution 1 is "no")


Problem Sets
There will be Problem Sets given regularly after each lecture. These assignments build on the topics covered in lab and provide hands-on practice. Sometimes these assignments will involve a substantial amount of coding, other times they might be more conceptual and require some writing instead. Generally speaking, we strongly suggest completing these assignments within two days of their release to avoid getting overwhelmed by topics. Furthermore, we also highly recommend going to labs to finish up the assignments. (hidden words 4 and 5 are "a true")
There will be three projects you’ll be working on this summer— two assigned by us, and one personal project that you get to design yourself! You’ll have roughly two weeks to complete the projects we assign, and about three weeks to complete your personal project. Don’t worry, a TA will be helping to guide you through these projects, and there will be plenty of work sessions + office hours to get any additional help you need.
Explore Post
The Explore Post is a writing assignment where you’ll research any topic, application, and/or implication of computer science in a blog-style format. Later on, you’ll also get a chance to take a look at some of your other classmates’ posts, leaving your thoughts as comments in the process.
Social Implications
As mentioned earlier, we’ll be covering many social implications topics in the class. Furthermore, we’d love to hear your thoughts on these topics as we go through them! There will be two main ways you can express your take on the topics: in the social implications sections, or through a short reading response.


Catch-all Deadlines
This semester, we’ll have four “catch-all” deadlines that will occur every two weeks. What this means is that there will be a designated deadline where you need to get all assignments up until that point submitted.
Early-bird Deadlines
We’ll still be putting out some recommended deadlines to encourage you to avoid cramming work towards the end. You won’t be penalized for missing these deadlines, but, if you submit things by the suggested deadline, we’ll give you extra credit!
The guiding principle behind this deadline policy is to reduce the amount of stress that typically accompanies deadlines during summer, and to give you more control over the time you spend on mastering the material. As such, in the event that you need some form of accommodations that aren’t afforded by these policies, feel free to reach out to your TA or the instructors, and we’ll figure something out!
DSP Accommodations
For those of you who require DSP accommodations, please reach out to Aaron and Maxson directly! We’ll work out any arrangements that need to be made to get you set for the course.


Exam Dates
We’ll be having two exams: a midterm exam and a final exam. These exams will start and end on the dates below. Note that these times are based on Pacific Daylight Time (PDT), which is also GMT -07:00. If this presents an unfair disadvantage to you because of where you’re currently residing, please reach out to us!
Structure Exams in CS10 are fairly standard in format. There will always be two parts:
1. “Paper” format
2. Coding Challenge

Our paper exams are written to take two or three hours for the midterm and final exam respectively; both coding challenges are designed to take only an hour and thirty minutes. However, you’re welcome to utilize the full 72 hours, or allocate your time however you’d like during the exam period.

Start Date: Saturday July 18th, 12:00am PDT
End Date: Monday, July 20th, 11:59pm PDT
Total time: 72 hours
Final Exam
Start Date: Saturday August 15th, 12:00am PDT
End Date: Monday, August 17th, 11:59pm PDT
Total time: 72 hours

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 - 150 points
  • - Midterm - 50 points
  • - Final Exam - 100 points
Projects - 225 points
  • - Project 1: Mastermind - 30 points
  • - Project 2: 2048 - 45 points
  • - Final Project - 125 points
  • - Explore Post - 25 points
Problem Sets - 75 points
  • - 17 total- 5 points each
  • - Lowest 2 scores dropped
Community- 50 points
  • - 7 weekly check-ins - 25 points total
  • - 6 SI sessions/responses - 25 points total

Grading Ranges

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

A+: 475 - 500 points

A: 442 - 476 points

A-: 428 - 442 points

B+: 415 - 428 points

B: 385 - 428 points

B-: 358 - 384 points

C+: 321 - 357 points

C: 300 - 320 points

C-: 286 - 299 points

D: 214 - 285 points

F: <213 points

P/NP Policy

In case you’re taking CS10 Pass/No Pass, getting a D in the course will be sufficient to pass the course. Furthermore, if you complete all assignments on time then you will be guaranteed to pass the course.

Flexibility + Extra Credit

There will be a variety of extra credit opportunities available for you! Here’s a rundown of all the ways you can rack up a substantial amount of extra credit.


Early Bird Deadlines
As mentioned in the Assignments section, while we’ll only have 4 fixed deadlines, if you get your assignments in by our suggested deadlines then you’ll be able to get extra credit! This will mainly be emphasized on the weekly homework assignments.
Slip Days
You will be granted one slip day for one of the four deadlines. A slip day allows you to extend the deadline period by one day with no penalty. For example, if you needed an extra day to get something in for the first deadline,
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

Maintaining academic integrity is a crucial part of your learning experience, as not only are there serious repercussions for academic dishonesty, but it also prevents us as instructors from understanding where our model of instruction isn’t working. Furthermore, we also understand that the nature of academia and its emphasis on grades might pressure you into lowering personal standards, especially if your grade in this class could impact long-term academic plans. However, there are ways to meet these goals that don’t require academically dishonest means, like reaching out to your TA to develop learning goals.
Here, we’ll explicitly lay out our academic integrity policies and some good practices that can not only help you avoid academic dishonesty, but improve your overall mastery of the material.

Cheating Policy

Redemption Period
After submitting any form of work, you’ll have 24 hours from when you submitted to notify a TA or instructor about any form of academic dishonesty you might have committed. In the email, clearly state what parts you did not complete honestly, and any sources you utilized. In the event that multiple individuals are involved, please make sure all individuals are cc’d in the email. We will remove points from the portions of the work you have plagiarized, but we will honor all other parts that have been completed honestly. (last word is berry)
Afterwards, we’ll follow up with an in-person meeting with you, where we can have a conversation about why you felt the need to cheat, how we as instructors could have better supported you, assess what content you need additional review for, and develop actionable learning goals so that we can all move forward feeling more confident about the course.
We believe that while cheating shows a lapse in academic integrity, coming forward and owning up to it also demonstrates a substantial amount of integrity. While we can’t turn a blind eye to work that has been completed dishonestly, we can all still learn from this situation and move toward a path that results in your overall success in the course.
Non-reported Cheating Cases
For any cases of academic dishonesty that are not reported to us within the 24-hour redemption period, we will unfortunately have to take harsher measures:
  1. You will receive full, negative points on the assignment you submitted dishonestly, including any extra credit points you recieved.
  2. The event will be reported to the Center of Student Conduct, and will be recorded in your permanent academic record.
  3. Your future work will be closely monitored and scrutinized for potential dishonesty.
Repeat offenses
Whether or not you reported to us that you cheated, in the event that you’re caught cheating multiple times, you will immediately fail the course. Furthermore, in the event that you choose to retake the course to remedy the deficient grade, we will inform subsequent instructors of CS10 of your record.
What if I didn’t cheat?
We also acknowledge that there are times where there are false-positives for cheating that can be particularly hard to refute. As such, if you are suspected of cheating, we will inform you and call you in for a meeting with the instructors where we will review the evidence, and provide you with an opportunity to voice your side of the story. Generally speaking, the best way to show that you didn’t cheat is to demonstrate your understanding of the material, and so we’ll most likely provide you with a similar/equivalent problem and ask you to implement it under our supervision.
In the event that we can’t reach a conclusion in the meeting, we’ll defer judgment to the Office of Student Conduct where they will provide their own judgment, and recommended course of action. From there on, the situation is mostly out of our hands, and we will follow the recommendations of the OSC.
If we cannot resolve the cheating case within the summer semester, an incomplete (I) grade will be given to you until the issue is resolved in a subsequent semester.

Cheating Policy

Discuss + Guide content like your TAs would!
  1. Ask instead of telling. If you’re working with your friends and one of them is stuck on a part of a problem set, don’t just tell them what they need to do, try to ask them questions that might’ve come up as you were trying to understand.
  2. Keep things conceptual! If you’re finding yourself explicitly telling your friend what they should be doing, that could very easily put you in breach of academic integrity.
  3. Use different ways to communicate concepts. Sometimes explaining things one way might not be quite understood by your peers, and it can be tempting to try to just give the answer. Drawing things out, using analogies, and any other ideas you might have could be particularly effective. Assuming it minimizes spoilers, this is something that we’d also be happy sharing with the rest of the class (garnering some EC while you’re at it).
Work out academic goals with your TA
All of our TAs have been with this course for quite a few semesters, and are very familiar with the content. As such, they’re well-equipped to help you navigate the course, both in the short and long term.