CS 88, DATA C88C, "88C"... It's all the same. :)

Important Course Links

  • Gradescope. This is where you will submit ALL assignments (lecture quizzes, labs, homeworks, projects)

    • Tip: log in with "School Credentials" -> "CalNet ID"
  • Ed. This is the course's online discussion forum, and the teaching staff's primary means of communicating important announcements to you all (the students).
  • bCourses. This is where you will find the course Zoom links (Lectures, Labs, Office Hours) and uploaded lecture/lab recordings.

  • Lab/Lecture slides. These are were additional course materials like lab/lecture slides will be posted.

For the above links, it's important to log in with your @berkeley.edu CalNet ID.

Course Description

CS 88 is a "connector" for Data 8 that is designed for students who would like a more complete introduction to Computer Science. We will cover a variety of topics such as functional programming, data abstraction, object-oriented programming, and program complexity. This course will be taught primarily in Python. However, we are interested in teaching you foundational programming ideas, not just how to use one particular programming language. Once you have learned the essence of programming and the concepts that appear in various forms in programming languages, you will be able to pick up other languages and other programming concepts rapidly.

The material for this course has significant overlap with CS 61A. We do not cover the interpretation section of CS61A. If you are certain that you want to major or minor in Computer Science, CS 61A is the right introductory course. You can take CS 61A for credit after having taken CS 88. However, you cannot take CS 88 for credit after having taken CS 61A. Data 8 and CS 88 together satisfy the knowledge prerequisite for CS 61B.

(Data C88C Summer 2024) Remote learning overview

Data C88C Summer 2024 is notable in that the course is "fully remote". All aspects of the course will take place online. Lectures, lab sections, office hours, and exams will take place over Zoom. Thus, it is not required for students to physically be in UC Berkeley for this course.

With the important exception of exams, all course material will be uploaded and available to students online, including: lecture slides + recordings, lab/homework/project assignments, and additional review material.

Exams will be done over Zoom, proctored by course staff. The exact date + time will be determined and announced within the first 1-2 weeks of class.

Exams & Proctoring

There will be two exams: a midterm and a final. Both the midterm and final will be administered remotely over Zoom, and course staff will remotely proctor the exams. Exact details and setup will be shared soon.


It is recommended, but not required, that you are currently enrolled in or have taken Data 8. There is no formal programming-related prerequisite for CS 88. You do not need to be familiar with any particular programming language.

Course Activities

Lecture: There will be four 50-minute lectures per week. The class calendar will contain links to videos for each lecture.

Lecture Self-Checks: Every lecture will have a short series of questions, which can be answered during or online after the lecture. These questions will help check your understanding. Each lecture "quiz" is worth 1 point, and are due 48 hours after each lecture, however late assignments are accepted for 14 days without penalty. You have unlimited attempts during that period.

Labs: This course also includes two weekly two-hour "lab" sections. The first hour will be going over a discussion-based worksheet and writing code on paper. The second hour will be writing code on your own computer.

Each lab section will be lead by a teaching assistant, and are designed to be interactive. Labs assignments are short, relatively simple exercises designed to introduce a new topic.

Most lab assignments are designed to be completed within the two hour time slot.

Labs will generally be released on every Tuesday and Thursday, at 12:01 AM PST (subject to change), and are due 4 days after release date at 11:59 PM PST.

Homework: There will be two homework assignments per week that will be more involved and are meant to illustrate and explore new topics. You are encouraged to discuss the homework with other students, but your final solution should be developed alone. Homework will be graded on correctness.

Homeworks will generally be released on every Tuesday and Thursday, at 12:01 AM PST (subject to change), and are due 4 days after release date at 11:59 PM PST.

Projects: There will be 2 projects intended to teach you how to combine ideas from the course in interesting ways. Projects will be graded on accuracy.

Project release/due dates will be communicated on the course calendar/Ed page.

Exams: This course will have one midterm and a final, administered and proctored remotely. Exact details will be provided soon.

Office Hours: Attending office hours is another great way to succeed in this course. Office hours are held by TAs and the instructor each week. An office hours schedule appears on the course website. In office hours, you can ask questions about the material, receive guidance on assignments, work with peers and course staff in a small group setting, find project partners, and learn about computer science at Berkeley.

Office hours are administered remotely via Zoom, see the course Ed page for links to the teaching staff's OH Zoom links.

Optional Sections: In addition to the weekly class meetings, the course will include optional events such as review sessions/LOST sections that are designed to help you master the course material and complete the assignments. Details of these events will be announced as they approach.


The online textbook for the course is Composing Programs, which was created specifically for CS61A but is also the best basis for this course. Readings for each lecture appear in the course schedule. We will be jumping around a little due to the data-centric orientation of the course. You should complete the readings before attending lecture.

In addition, the course website and Ed will contain additional links to guides, handouts, and practice materials available for the course.

ChatGPT, AI Tools and The Internet

While you may search for conceptual questions, e.g. "How do I add an item to a list in Python", you may not search under any circumstances for specific questions assigned in class.

This policy applies whether you're using ChatGPT, Google Search, or talking with your peers–which are all useful resources!

On your assignments you will be asked to cite what sources you consulted, similar to a research paper. (Though not so formally.) Code is like writing and ideas, it gets built up from many previous examples and ideas, and we should cite those.


Your course grade is computed using a point system with the following distribution:

Assignment Weight
Lecture Quizzes 5% (20 points)
Labs 10% (40 points)
Homework 20% (80 points)
Projects 25% (100 points)
Midterm 15% (60 points)
Final 25% (100 points)

This means the total points scale is out of 400 points. In this class, we will use grading bins to determine your grade, so you will know the number of points you need to get your desired grade in the class. Remember, with grading bins, there are no comparisons to your peers, no curves, no guessing or complex formulas.

Grade Bins

              A  ≥ 380    A-  ≥ 360
 B+  ≥ 330    B  ≥ 312    B-  ≥ 292
 C+  ≥ 274    C  ≥ 258    C-  ≥ 232
              D  ≥ 172


  • Self-Checks: We will count your 20 best self-check submissions. (There are typically 1 self-check per lecture. "Bonus" self-checks are for practice, but can replace and missing self-check questions.)
  • Clobber Policy: This allows your final exam to replace your midterm score, if it is better based on the percentage. That is, your midterm score is always max(midterm-%, final-%) * 60 pts.

Late Policy

Everyone has 14 slip days, which can be applied to late submissions of labs, homework, and projects.

  • Each assignment can have a max of 2 slip days applied to it. These slip days will be automatically applied at the end of the semester to maximize your grade.
  • If you have no remaining slip days, there is a -25% reduction to your total score for every day that the assignment is late.

    • After 3 late days, you can no longer receive credit for the submission, unless an extension has been approved before the assignment deadline.
For exceptional circumstances, please e-mail the course staff at cs88@berkeley.edu. When making extension requests, if possible:
  • Send requests before the assignment deadline
  • Send one extension request per assignment

Assignment Drops: We will drop your lowest homework and lab score from your final grade calculation.

Projects: Projects will offer extra credit for early submission.

Self-Checks: Lecture self-checks are not eligible for slip days. You will receive full credit for late submissions, as long as they are open on Gradescope. These are graded on correctness, but you have infinite attempts. Self-Checks must be correct to earn full points.

Device Lending options

Students can access device lending options through the Student Technology Equity Program STEP program.

Data Science Student Climate

Data Science Undergraduate Studies faculty and staff are committed to creating a community where every person feels respected, included, and supported. We recognize that incidents may happen, sometimes unintentionally, that run counter to this goal. There are many things we can do to try to improve the climate for students, but we need to understand where the challenges lie. If you experience a remark, or disrespectful treatment, or if you feel you are being ignored, excluded or marginalized in a course or program-related activity, please speak up. Consider talking to your instructor, but you are also welcome to contact Executive Director Christina Teller at cpteller@berkeley.edu or report an incident anonymously through this online form.

Community Standards

Ed is a formal, academic space. We must demonstrate appropriate respect, consideration, and compassion for others. Please be friendly and thoughtful; our community draws from a wide spectrum of valuable experiences. For further reading, please reference Berkeley’s Principles of Community and the Berkeley Campus Code of Student Conduct.

Learning Cooperatively

With the obvious exception of exams and take-home quizzes, we encourage you to discuss all of the course activities with your friends and classmates as you are working on them. You will definitely learn more in this class if you work with others than if you do not. Ask questions, answer questions, and share ideas liberally.

Since you're working collaboratively, keep your project partner and TA informed. If some medical or personal emergency takes you away from the course for an extended period, or if you decide to drop the course for any reason, please don't just disappear silently! You should inform your project partner, so that nobody is depending on you to do something you can't finish.

Academic Honesty

Cooperation has a limit, however, and in CS 88 that limit is sharing code. Feel free to discuss the problems with others beforehand, but not the code that solves them. Projects can be completed in pairs. You can share everything with your partner. Do not share your code with anyone but your partner, and do not read anyone but your partner's code. Do not post your solutions online. Do not use pastebin or GitHub, which post your work publicly by default. Do not read solutions that you find online. Write your own programs and keep them to yourself. In the case of office hours, sections, and in the presence of a TA, you may see someone else's code to help them debug, but you should not use this as a guide to your own solution.

If you find a solution online, please email a link to that solution to the instructor.

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, which is why you're here. 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.

In this class, cheating on an assignment can result in -100% on that assignment.

The creation of computer programs is the most rewarding and the same time most frustrating activity: As exhilarating as it is when a program works, as frustrating can it be when it doesn't. This frustration, however, is a very important part of the learning experience: You are sharpening your own analytical skills by having the computer constantly test your hypotheses. Sharing code and short cutting the mental discovery process that goes along with creating code strips you off the most important part of this class. If you find you are running out of ideas, take a break and do something else, then go back to it. If you end up not finding a solution after major time spent, try to formulate in your head what your most constructive question would be and seek help from a peer, a TA, or the professor. The TAs, academic interns, and instructor are all here to help you succeed. If you cannot solve a problem in time for the deadline, try to come as close as you can, even if you might not end up getting points for it. You are attending Berkeley for the experience, not for the grades. Don't strip yourself off that experience by copying somebody else's code.

A Parting Thought

The main goal of this course is to help you learn and enjoy the material. Please don't hesitate to reach out to the staff for any questions or concerns. We are here to help you however we can. Welcome to CS 88!

Resources for Berkeley Students

Should you find yourself in need of help, beyond just the topics of CS88, the course staff are more than happy to help you access resources of all kinds. UC Berkeley has many resources, whether it's food assistance, counseling, or tutoring, we'll do our best to get you what you need.

Center for Access to Engineering Excellence (CAEE)

The Center for Access to Engineering Excellence (227 Bechtel Engineering Center) is an inclusive center that offers study spaces, nutritious snacks, and tutoring in >50 courses for Berkeley engineers and other majors across campus. The Center also offers a wide range of professional development, leadership, and wellness programs, and loans iclickers, laptops, and professional attire for interviews.

Disabled Students’ Program (DSP)

The [Disabled Student’s Program]dsp serves students with disabilities of all kinds. Services are individually designed and based on the specific needs of each student as identified by DSP’s Specialists.

Counseling and Psychological Services

The main University Health Services Counseling and Psychological Services staff is located at the Tang Center (2222 Bancroft Way; 642-9494) and provides confidential assistance to students managing problems that can emerge from illness such as financial, academic, legal, family concerns, and more.

To improve access for engineering students, a licensed psychologist from the Tang Center also holds walk-in appointments for confidential counseling in 241 Bechtel Engineering Center (Schedule).

The Care Line (PATH to Care Center)

The Care Line (510-643-2005) is a 24/7, confidential, free, campus-based resource for urgent support around sexual assault, sexual harassment, interpersonal violence, stalking, and invasion of sexual privacy. The Care Line will connect you with a confidential advocate for trauma-informed crisis support including time-sensitive information, securing urgent safety resources, and accompaniment to medical care or reporting.

Ombudsperson for Students

The Ombudsperson for Students (102 Sproul Hall; 642-5754) provides a confidential service for students involved in a University-related problem (academic or administrative), acting as a neutral complaint resolver and not as an advocate for any of the parties involved in a dispute. The Ombudsman can provide information on policies and procedures affecting students, facilitate students’ contact with services able to assist in resolving the problem, and assist students in complaints concerning improper application of University policies or procedures. All matters referred to this office are held in strict confidence. The only exceptions, at the sole discretion of the Ombudsman, are cases where there appears to be imminent threat of serious harm.

UC Berkeley Food Pantry

The UC Berkeley Food Pantry (#68 Martin Luther King Student Union) aims to reduce food insecurity among students and staff at UC Berkeley, especially the lack of nutritious food. Students and staff can visit the pantry as many times as they need and take as much as they need while being mindful that it is a shared resource. The pantry operates on a self-assessed need basis; there are no eligibility requirements. The pantry is not for students and staff who need supplemental snacking food, but rather, core food support.

The UC Berkeley Basic Needs Center

The Basic Needs Center team is committed to fostering belonging and justice on the UC Berkeley campus through a robust model of prevention, intervention and emergency relief efforts. Our efforts aim to combat the structural drivers of basic needs insecurity such as rising income inequality, increasing cost of living, inadequate high school preparation, and more. Using a holistic and systematic approach, we target the different facets of basic needs insecurity on campus in order to consistently reduce the number of students that require emergency resources.

ASUC Student Advocate's Office (SAO)

The Student Advocate's Office (SAO) is a student-run, non-partisan office of the ASUC. They offer free, confidential casework services and resources to any student(s) navigating through issues with the University, including academic, conduct, financial aid, and grievance concerns. All support is centered around students and aims for an equity-based approach.

A Word of Thanks!

This course would not be possible without the contributions of, most especially, John DeNero for CS 61A. Along the way there have been countless faculty and students who have poured hours into developing content and tools for this course. We stand on the shoulders of giants.