Syllabus

Table of contents

  1. Preface
  2. Welcome
  3. Platforms
  4. Primary Course Components
    1. Lecture
    2. Lab Sections
    3. Discussion Sections
    4. Office Hours (OH)
      1. General OH
      2. Student Support OH
      3. Instructor OH
    5. Projects
  5. Projects and Deadlines
  6. Exams
  7. Exam Clobber Policy
  8. Grading
    1. General Grading Breakdown — Percentages
    2. Specific Grading Breakdown — Points
    3. Grading Bins
  9. Extension Requests
    1. Lab Extensions
    2. Project Extensions
    3. Lecture Quiz Extensions
    4. Discussion Worksheet Extensions
  10. Lateness Penalties
  11. DSP Accommodations
  12. Academic Integrity
    1. Generative AI Policy
  13. Diversity and Inclusion Statement
  14. Academic Accommodations Hub
  15. EECS Student Climate & Incident Reporting Form

Preface

All times below are in PST. If you have any questions, please make an EdStem post (rather than emailing) or come to office hours.

Welcome

Welcome to CS10: The Beauty and Joy of Computing!

We’re really excited to have you on board with us this semester for a gentle, but thorough introduction to Computer Science. Our course will start out in the block-based language Snap!, but will transition into Python once you’ve learned some fundamentals of programming. By the end of the course, we hope you’ll 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.

Platforms

This semester, CS10 will run fully in-person. Consequently, remote (or hybrid) students cannot be supported. However, there are make-up options for lecture, lab, and discussion attendance.

  • Course Website: The day-to-day happenings of the course (and links to all the platforms below) can be found at cs10.org. Consult the daily schedule to find the times/locations for all synchronous course engagements.
  • Edstem: This will be our main Q&A platform, where you can ask (and answer) questions, see announcements, and read Weekly Blasts, which are required readings in CS10. Click the Ed Discussion tab on the left to navigate to Edstem. Here is the link to the EdStem. If you need to join the EdStem, click the following: Join EdStem
  • Gradescope: This is where you will submit Projects 1-4, and the Final Project. Click the Gradescope tab on the left to open Gradescope. Submission instructions can be found at the following: Gradescope. To join, you can enter the following entry code: 2DEGXG
  • Bcourses: Lecture recordings can be found on the bCourses site, generally within 48 hours of lecture. You will have to be logged into your Berkeley email to access the recordings. The recordings are under the “Media Gallery” tab in bCourses.
  • iClicker: You are required to create a free iClicker account and download the free iClicker app. Then, you should sign up with your Berkeley email. To get credit for attending lecture, please open the app once you’re seated in the lecture hall and mark your attendance. If for some reason you are not enrolled, use the following links:
  • PrairieLearn: This is the platform you will use to take exams (Quest, Midterm, and Postterm). We will manually add you to the site later in the semester. For now, here is the link to PrairieLearn. If you are not added when you need it later in the semester, please post a message on EdStem.
  • Snap!: The programming language we will be using for more than half of the semester. The website can be found here: Snap!. You will need to set up a Snap! account by following the Snap! Account Setup Guide.
  • Gradeview: This is the website where you will be able to access your current grades in the class. You will need to sign in using your UC Berkeley credentials on the Gradeview website.

Primary Course Components

Lecture

Lectures will be live and in-person in Evans Hall, Room 60 on Mondays, Wednesdays, and Fridays from 10AM to 11AM. They will be recorded, and recordings will be posted on bCourses (see platforms section).

Lectures aim to introduce concepts and provide a “big-picture view” of material from a theoretical standpoint. Most lectures will be live and in person. However, some lectures may be pre-recorded, which you can watch in your free time, and there will be an assignment that corresponds to it to test your conceptual understanding. Attendance for these days will be through the “Lecture Quiz” solely (and no iClicker is needed for those days).

Attendance is required, and credit for attending will be through the iClicker app. If you cannot attend lecture, you will need to complete the corresponding “Lecture Quiz” on Gradescope for attendance credit. The corresponding lecture quiz will be due on Gradescope the day of the following lecture at 23:59. On this quiz, we will ask questions about lecture content. You may fill out our general extension form (linked below) to receive an automatic extension for lecture quizzes.

Only Monday and Wednesday lectures have required attendance. Friday lectures (we call them the Friday “Talks”!) will be optional and will have no lecture quiz. Some Friday lectures will be review sessions where we prep for exams or go over the answers to an exam. Exam review Friday lectures will not be recorded and will not have any slides, so we recommend coming in person to get the answers to exam questions!

Your lowest 5 lecture-quiz scores will be automatically dropped — so you can miss up to 5 lectures (or skip 5 quizzes) without penalty, and you don’t need to inform us when you miss class. These drops are not intended to be “free-passes” to skip lectures: please reserve them for unexpected emergencies / sickness / … since missing out on content will only disrupt your learning. If there are extenuating circumstances which cause you to miss more than 5 lectures (like prolonged sickness, family emergencies, etc.) then you should visit Support OH.

Lab Sections

Labs will be held synchronously and are the primary place you will learn to program. Note that you are strongly recommended to complete all labs with a partner, and that partner-matching threads have been added to our Edstem Forum. On the first day of lab, Teaching Assistants (TAs) will help you find a partner in your assigned lab section.

Lab assignments will be submitted to Gradescope. There will be two assignments for each lab (unless specified) that are a part of your grade: one wherein you’ll submit the code you wrote, and one with conceptual checkoff problems. If you get a full score on both Gradescope assignments, you will get credit for that lab. Labs are graded on an all-or-nothing basis, which means if you don’t get a full score on either (or both) of the two assignments, then you won’t get credit for that lab. In our lab sections, TAs and Tutors will be available to help you with the problems.

Tuesday lab assignments are due on Thursday at 23:59, and Thursday lab assignments are due the following Tuesday at 23:59. All labs that do not explicitly say “optional” on the schedule page will be graded, with the exception of Lab 1. Lab 1 is not optional, but there is no submission or credit. Attendance is not required for optional labs. The graded labs include three practice exam labs (Midterm Practice (no code), Midterm Practice (code), and Postterm Practice), which are graded based on completion only. Your lowest two lab assignment scores will be dropped.

This semester, there is only one lab option, which is in person: Tuesday and Thursday from 3–5 PM in Soda Hall, Room 430.

Attendance at lab sections is required and counts toward your grade. You may miss up to 5 lab sessions without penalty, so you do not need to inform us if you cannot attend a lab. If extenuating circumstances cause you to miss more than 5 lab sections (such as prolonged illness or family emergencies), you should visit Support OH. Please note that the 5 “skip days” apply only to attendance—you are still required to complete and submit the lab assignment. Lab attendance will be tracked using iClicker.

If you cannot attend a lab section on a particular day or are unable to attend labs regularly for the semester, you can earn lab attendance credit by submitting the lab assignment “early.” In other words, if you miss a lab or cannot regularly attend in person, the lab will be due earlier. For example, if Lab X is due on Tuesday at 23:59 but you did not attend the in-person lab, your deadline to submit Lab X would be Thursday at 3:00 PM (the time before the lab section). There is no lab attendance grade for Lab 1.

The lab attendance grade is based solely on whether you attend lab in person or submit the assignment early if you do not attend. This attendance grade is part of your overall attendance and participation grade. The grade you earn on a lab assignment is tracked separately under your lab grade.

Some lab days will be designated as Project Parties or Catch-up Sessions. On these days, attendance is not required, and labs will function as optional office hours. We will explicitly label all optional labs, discussions, and lectures as “optional.”

Discussion Sections

Discussion sections are where you will explore course content more deeply through worksheets in a traditional “pen-and-paper” format. This is where you will develop the theoretical computational skills needed to understand the basics of programming and prepare for exams. Discussion meets from 11 AM–12 PM and will be held in Soda Hall, Room 430, the same location as lab.

Discussion attendance is mandatory and will be tracked using iClicker. If you attend and do the iClicker, no further action is needed to receive attendance credit beyond your participation during discussion. If you do not attend—whether due to a regular conflict or missing a few sessions—you may make up the attendance credit by submitting the discussion worksheet (required portions only) to Gradescope. You must complete all required portions of the worksheet to receive credit. Worksheets will be graded based on completion and honest effort. Discussions will also be recorded, and we recommend watching the recordings to help with the worksheet problems. However, discussions will not go over every problem on the worksheet.

The discussion worksheets are located on the course website and should be submitted to Gradescope. You may submit the worksheet in any format (for example, handwritten, electronically written, or typed). If you attend discussion in person, no submission is required. You only need to submit the worksheet if you miss discussion. Discussion worksheets are due on the day of the next discussion section at 11:59 PM. In other words, Discussion X is due the same day Discussion X+1 is released.

You may miss one discussion session without penalty (i.e., without having to submit the worksheet). This means you may skip submitting one worksheet and still receive full credit for your discussion grade. Please reserve this drop for unexpected circumstances such as illness or emergencies. You do not need to contact us if you miss or do not attend discussion. If you need an extension, please refer to the extension request section.

From experience, we have observed that students who regularly attend and actively participate in discussions tend to perform better on exams.

Office Hours (OH)

There will be three types of office hours, described below. The times and locations for all office hours are posted under the “Daily Schedule” tab on the course website. You do not need to email or make an appointment to attend. You may attend any office hours that work for you.

General OH

General office hours are intended for any course- or content-related questions. You can get help with code, debugging, conceptual understanding, getting started on assignments, and more. The location for General OH will be listed under the “Daily Schedule” tab.

Student Support OH

Student Support OH is intended for discussing your status in the class, catching up, extenuating circumstances, requesting longer extensions, or getting additional support. Support OH is not for content-related questions. If you have questions about course content, you will be redirected to General OH or Instructor OH.

Instructor OH

Professor Garcia will host Instructor OH (times and locations are also listed under the “Daily Schedule” tab). You may attend for higher-level or conceptual help (for example, if you are confused about a topic or want to go over practice problems), or to discuss more general topics such as how you are doing in the class, college advice, or research opportunities. For help with specific assignments (labs or projects), please attend General OH.

Projects

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 course.

  • There will be 3 Snap! projects, 1 research-based project, and a Final Project wherein you can use a language of your choice to build something of your choice. The number of points per project is listed in the Grading Breakdown. Project specs will be released on the website and on Edstem, and you should always read them before starting to work on a project.

Projects and Deadlines

Project Submission Deadline
Project 1: Wordle™-lite Wed 2/4
Project 2: Spelling-Bee Mon 2/23
Project 3: 2048 Mon 3/16
Project 4: Explore Post Tue 3/31
Project 4: Explore Post Presentations THU 4/2
Project 4: Explore Post Feedback + Comments Fri 4/10
Project 5: Final Project Porposals Mon 4/6
Project 5: Final Project Mon 5/4

All deadlines are at 11:59PM.

  • Project Parties: These will serve as specialized OH wherein you’ll be able to work with your peers (within the limits of our collaboration policies) and seek assistance from course-staff on whatever project is currently assigned. We strongly encourage you to attend project parties as they will help you finish your assignments on time. Project Parties will take place during scheduled Lab Times or special Office Hours. Dates and locations will be listed on the daily schedule and announced in the weekly blast.

Here are the following Project Parties times and dates:

Project Parties Date Time Room
Project 1 Party: Wordle™-lite TBD TBD TBD
Project 2 Party: Spelling-Bee TBD TBD TBD
Project 3 Party: 2048 TBD TBD TBD
Project 5 Party: Final Project TBD TBD TBD
Project 5 Party: Final Project TBD TBD TBD

Exams

There will be three take-home, untimed, online, 48-hour, open-note exams (Quest, Midterm, and Postterm):

  • Quest
  • Midterm
  • Postterm (final)

Here are the specific dates for exams, although these dates may change. All exams will be released at 4 PM on Fridays.

Exam Release Due
Quest 1 FRI 2/13 @ 4 PM SUN 2/15
Quest 2 FRI 2/20 @ 4 PM SUN 2/22
Quest 3 FRI 2/27 @ 4 PM SUN 3/1
Midterm 1 FRI 3/13 @ 4 PM SUN 3/15
Midterm 2 FRI 3/20 @ 4 PM SUN 3/22
Midterm 3 FRI 4/3 @ 4 PM SUN 4/5
Postterm 1 FRI 4/17 @ 4 PM SUN 4/19
Postterm 2 FRI 4/24 @ 4 PM SUN 4/26
Postterm 3 FRI 5/1 @ 4 PM SUN 5/3

You will see several exams throughout the semester (for example, Quest 1, Quest 2, Quest 3, etc.). Each exam type (Quest, Midterm, and Postterm) has three versions. The purpose of this structure is to allow you to retake an exam—each retake will be similar in content but not identical—and earn credit for questions you missed on earlier attempts. You are only required to complete questions that you did not receive full credit for in previous attempts of the same exam type.

Quest 1, Midterm 1, and Postterm 1 are mandatory. All subsequent retakes are optional. However, if you do not take the first exam of a given type, you will lose the opportunity to take any retakes for that exam type.

On a retake exam, you only need to redo the problems on which you did not receive full credit. For example, if a Quest has five questions and you received full credit on Questions 1 through 4 but lost points on Question 5, you only need to redo Question 5 on the retake to earn full credit.

We will keep the maximum score you earn on each question across all attempts. For instance, if you retake Question 5 but score fewer points than on your original attempt on Question 5, we will keep your higher score from the original exam.

The best way to prepare is to use the practice exams posted under the Resources section and the practice exams we release on PrairieLearn.

If you are an incomplete student, you may only take the first exams (Quest 1, Midterm 1, and Postterm 1).

Exam Clobber Policy

If your percentage score on a latter exam is higher than your percentage score on a prior exam, then we’ll replace your percentage score on the prior exam with the percentage score on the latter exam. The clobber can never hurt your grade: if you score lower, no replacement will be done.

Grading

General Grading Breakdown — Percentages

Component Percentage Weighting
Attendance / Participation 3.75%
Labs 20%
Projects 38.75%
Quest 6.25%
Midterm 12.5%
Postterm 18.75%

Specific Grading Breakdown — Points

Component Points
Quest 25
Midterm 50
Postterm 75
Project 1: Wordle™-lite 15
Project 2: Spelling-Bee 25
Project 3: 2048 35
Project 4: Explore 20
Final Project 60
Labs 80
Attendance / Participation 15

Total: 400 Points

Grading Bins

Letter Grade Range
A+ 390-400
A 370-390
A- 360-370
B+ 350-360
B 330-350
B- 320-330
C+ 310-320
C 290-310
C- 280-290
D 240-280
F 0-240

Your total points will be rounded to the nearest integer when we compute letter grades. 0.5 will round to 1, but 0.49 will round to 0. We will not shift the bins / curve the class / ooch or round your grade beyond the listed rounding scheme, so please don’t ask.

Extension Requests

For all extension requests on any assignment, please use the Extension Request Form.

You are also allowed to request extensions retroactively without penalty. That is, you may request an extension even after the original deadline of a lab or project, but not after the extended deadline for that assignment.

NOTE: If you added the course late, please use your updated deadline as the “original due date.”

Important: Extensions may not be visible on PrairieLearn or Gradescope (for example, your assignment may appear as “Late”), but they will be factored in when we compute your final grade. Extensions are automatically approved after submitting the form, and you may immediately continue or start working on the assignment.

If you require an extension longer than what is available through the Extension Request Form, please visit Support OH.

Lab Extensions

We understand that circumstances may arise that prevent you from meeting assignment deadlines.

The policy for extension requests on labs is as follows:

  • An extension request grants you an additional lab section to complete the lab assignment without any lateness penalties.
  • The extended deadline for labs, as noted above under the “Lab Section,” is 48 hours (ending at 23:59); for projects, the extension is 72 hours after the original deadline.

  • There are two exceptions:
    • Practice Midterm will only be granted a 48-hour extension (for both coding and non-coding portions).
    • Practice Postterm will only be granted a 48-hour extension (for both coding and non-coding portions).

Project Extensions

The policy for project extension requests on projects is as follows:

  • An extension request will automatically extend your project submission deadline by 72 hours without any lateness penalties. For instance, if a project is due by Monday at midnight, it will now be due by Thursday at midnight.

Lecture Quiz Extensions

  • An extension request will automatically extend your lecture quiz submission deadline to the day of the following lecture at 11:59 PM. For example, if a lecture quiz was originally due on Monday, the extended deadline would be Wednesday at 11:59 PM. Similar to the lab extension and deadline policy, a lecture quiz with an extension is due when Lecture Quiz X + 2 is released.

Discussion Worksheet Extensions

  • An extension request will automatically extend your discussion worksheet submission deadline to the day of the following discussion section at 11:59 PM. For example, if a worksheet was originally due on 9/11, the new due date would be 9/18 at 11:59 PM.

Lateness Penalties

Any labs or projects submitted late will receive half credit, regardless of how late the submission is. For Project 4 and the Final Project, late submissions may not be graded at all due to limited grading staff availability. If you need an extension, please use the extension request form. No extensions are provided for Reading Quizzes, and late submissions will not be graded.

If, after using the initial extension, you still need additional time, please visit Support OH, where we will help you come up with a plan to catch up. Lateness penalties apply only if you do not obtain an extension (by submitting the form or visiting Support OH) and submit the work late.

DSP Accommodations

If you have a DSP accommodation through the university, 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 the Head TA naheejeong@.

UC Berkeley is 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 me.

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: dsp.berkeley.edu. If you have already been approved for accommodations through DSP, please meet with me so we can develop an implementation plan together.”

Students who need academic accommodations or have questions about their accommodations should contact DSP, located at 260 César Chávez Student Center. Students may call 642-0518 (voice), 642-6376 (TTY), or e-mail dsp@berkeley.edu(link sends e-mail)

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 as both current and former students, we understand that oftentimes, juggling various assignment deadlines while keeping up with material can be stressful. If you feel overwhelmed in this class, reach out! We are here to support you.

Here, we will lay out our academic integrity policies which can help you distinguish between cheating (prohibited) and collaboration (encouraged.)

Generative AI Policy

In this course, generative AI tools (e.g., ChatGPT, Copilot) are permitted solely as aids for enhancing your understanding of challenging concepts, but should not be used to produce answers, generate code, or verify solutions. Generative AI may only support conceptual growth, helping you explore topics that need further clarification.

Misuse of generative AI to obtain answers or complete assignments violates academic integrity and course standards, as all submitted work must reflect your own understanding and effort. This policy ensures AI serves as a tool for your learning without compromising the integrity of the course objectives and assessments.

What constitutes cheating?

  • Copying part or all of another student’s project code with the exception of your partner(s) assuming that the project you are working on allows for partnered work. 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 exams by receiving or giving assistance of any kind.
  • Copying code from online sources.

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 take cheating extremely seriously and will almost always pursue the strictest consequences available to us. We have advanced cheating detection software, and we will routinely run this to detect cheating. These are sophisticated tools that are pretty hard to fool- any attempts to obfuscate your code to avoid detection will likely fail, and instead may result in additional consequences.

Note that you will always have a chance to explain your actions before any action is taken. If you admit that you cheated, we will apply the necessary sanctions. If you’d like to meet with us to discuss your situation, we’ll set up a meeting. Afterwards, if staff determines that you cheated and you don’t agree with that decision, we’ll proceed with a Student-Conduct Investigation.

What are the sanctions?

On projects / other assignments, the minimum penalty is negative points on that assignment alongside a referral to the Office of Student Conduct. For repeated / more egregious offences, we may grant a failing grade in the class.

On exams, we will be absolutely unforgiving. Any instance of cheating results in an immediate F in the class alongside a referral to the Office of Student Conduct.

If at any point in the academic-integrity process, a student lies or attempts to mislead course-staff —thereby wasting everyone’s time— then in addition to the aforementioned sanctions, the staff will write a recommendation for the student’s dismissal and submit it to the Office of Student Conduct.

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 not be tolerated under any circumstances. Should someone make you feel uncomfortable or disrespected in any way, please let the instructor know immediately.

Academic Accommodations Hub

Here’s a link to the Academic Accommodations Hub.

EECS Student Climate & Incident Reporting Form

It is very important to the EECS Department that every student in the EECS community feels safe, respected, and welcome. We recognize though that incidents happen, sometimes unintentionally, that run counter to that goal. The EECS department provides a secure and anonymous Incident Reporting Form that can be used to report incidents including (but not limited to) microaggressions, discrimination, marginalizing / alienating behaviour, etc.