CS 10: The Beauty and Joy of Computing

UC Berkeley, Spring 2026

A gentle but thorough introduction to computer science.

Announcements: Friday, April 3

Instructor: Teaching Professor Dan Garcia
Instructor’s OH: Monday @ 3–4 PM in 777 Soda Hall
Lectures: Monday, Wednesday, Friday @ 10–11 AM in 60 Evans Hall
Labs: Tuesday, Thursday @ 3–5 PM in 430 Soda Hall
Discussion: Thursday @ 11 AM–12 PM in 430 Soda Hall
OH Queue: oh.cs10.org


CS10 Calendar

Jump to Current Week

Week Date Lecture Lab Discussion Assignment / Exam
Week 1 Mon 1/19 HOLIDAY
Tue 1/20
Wed 1/21 Lec 1. Welcome + Abstraction
(Recording)
(Slides 1)
(Lecture Quiz 1)
Thu 1/22 Lab 1: Welcome to Snap!
Disc 1. Welcome to CS 10!
Fri 1/23 Talk 1. Fun "Ask me anything", abstraction, using Snap! (but NOT making blocks)
(Recording)


Week Date Lecture Lab Discussion Assignment / Exam
Week 2 Mon 1/26 Lec 2. Functions
(Recording)
(Slides 2)
(Lecture Quiz 2)
Proj 1: Wordleâ„¢ Lite Released
Tue 1/27 Lab 2. Build Your Own Blocks
Wed 1/28 Lec 3. Abstraction II
(Recording)
(Slides 3)
(Lecture Quiz 3)
Thu 1/29 Lab 3. Conditionals, Reporters, & Testing
Disc 2. Number Rep & Control Structures
Fri 1/30 Talk 2. Conditionals, Truth Tables, Predicates, Binary/Dec/Hex conversion
(Recording)


Week Date Lecture Lab Discussion Assignment / Exam
Week 3 Mon 2/2 Lec 4. Iteration NEW
(Recording)
(Slides 4)
(Lecture Quiz 4)
Tue 2/3 Lab 4. Iteration NEW
Wed 2/4 Lec 5. Variables, Lists, Scope, HOFs
(Recording)
(Slides 5)
(Lecture Quiz 5)
Proj 1 DUE
Thu 2/5 Lab 5. Lists & HOFs
Disc 3. Domain/Range, Scoping, Iteration, Lists
Fri 2/6 Talk 3. HOFs
(Recording)


Week Date Lecture Lab Discussion Assignment / Exam
Week 4 Mon 2/9 Lec 6. Algorithms
(Recording)
(Slides 6)
(Lecture Quiz 6)
Proj 2 Released
Tue 2/10 Lab 6. Algorithms
Wed 2/11 Lec 7. Algorithmic Complexity
(Recording)
(Slides 7)
(Lecture Quiz 7)
Thu 2/12 Lab 7. Algorithmic Complexity
Disc 4. Quest Practice
Fri 2/13 Talk 4. Quest 1 Preview
(Recording)
QUEST 1


Week Date Lecture Lab Discussion Assignment / Exam
Week 5 Mon 2/16 HOLIDAY
Tue 2/17 Lab 8. Boards
Wed 2/18 Lec 8. Recursion I (Functional)
(Recording)
(Slides 8)
(Lecture Quiz 8)
Thu 2/19 Catch-up Session (Optional) Disc 5. Recursion I + Nested Lists
Fri 2/20 Talk 5. Quest 1 Review
QUEST 2


Week Date Lecture Lab Discussion Assignment / Exam
Week 6 Mon 2/23 Lec 9. Recursion II (Fractals)
(Recording)
(Slides 9)
(Lecture Quiz 9)
Proj 2 Due
Tue 2/24 Lab 9. Trees & Fractals
Wed 2/25 Lec 10. Recursion III (Count Change)
(Recording)
(Slides 10)
(Lecture Quiz 10)
Thu 2/26 Lab 10. Recursive Reporters
Disc 6. Recursion II
Fri 2/27 Talk 6. Quest 2 Review
QUEST 3


Week Date Lecture Lab Discussion Assignment / Exam
Week 7 Mon 3/2 Lec 11. Testing + 2048
(Recording)
(Slides 11)
(Lecture Quiz 11)
Proj 3 Released
Tue 3/3 Lab 11. Testing + 2048
Wed 3/4 Lec 12. Practice Midterm (Zone 5-11)
(Recording)
(Slides 12)
(No Lecture Quiz)
Thu 3/5 Lab 12. Functions as Data, HOFs
Disc 7. HOFs, Lambdas, Debugging
Fri 3/6 Talk 7. Practice Midterm (Zone 12 & With Snap!)
(Recording)


Week Date Lecture Lab Discussion Assignment / Exam
Week 8 Mon 3/9 Lec 13. Guest Lecture: Saving the World with Computing
(Recording)
(Slides 13)
(Lecture Quiz 13)
Tue 3/10 Midterm Practice (no code)
Wed 3/11 Lec 14. Computing in Education
(Recording)
(Slides 14)
(Lecture Quiz 14)
Proj 4 Released
Thu 3/12 Midterm Practice (code)
Disc 8. Midterm Preview
Fri 3/13 Talk 8. Midterm 1 Preview
(Recording)
MIDTERM 1


Week Date Lecture Lab Discussion Assignment / Exam
Week 9 Mon 3/16 Lec 15. Higher-Order Functions
(Recording)
(Slides 15)
(Lecture Quiz 15)
Project 3 Due
Tue 3/17 NO LAB
Wed 3/18 Lec 16. Programming Paradigms
(Recording)
(Slides 16)
(Lecture Quiz 16)
Thu 3/19 (Optional) Lab 13. OOP in Snap!
Disc 9. OOP
Fri 3/20 Talk 9. Midterm 1 Review
MIDTERM 2


Week Date Lecture Lab Discussion Assignment / Exam
Week 10 Mon 3/23 HOLIDAY
Tue 3/24 HOLIDAY
Wed 3/25 HOLIDAY
Thu 3/26 HOLIDAY
Fri 3/27 HOLIDAY


Week Date Lecture Lab Discussion Assignment / Exam
Week 11 Mon 3/30 Lec 17. Python I - Intro
(Recording)
(Slides 17)
(Lecture Quiz 17)
Tue 3/31 Lab 14. Welcome to Python
Proj 4 Due
Wed 4/1 Lec 18. Python II - Data Types & Structures
(Recording)
(Slides 18)
(Lecture Quiz 18)
Final Projects Released
Thu 4/2 Lab 15. Data Structures in Python
Proj 4 Presentations Proj 4 Presentations
Fri 4/3 Talk 10. Midterm 2 review
(Recording)
MIDTERM 3


Week Date Lecture Lab Discussion Assignment / Exam
Week 12 Mon 4/6 Lec 19. Concurrency
(Recording)
(Slides 19)
(Lecture Quiz 19)
Final Project Proposals Due
Tue 4/7 Lab 16. Concurrency Final Project Proposal Meetings
Wed 4/8 Lec 20. Gen AI
(Recording)
(Slides 20)
(Lecture Quiz 20)
Final Project Proposal Meetings
Thu 4/9 Catch-up Session (Optional) Disc 10: Data Structures in Python + Concurrency Final Project Proposal Meetings
Fri 4/10 Talk 11. Python live coding
(Recording)
Proj 4 Comments Due
Proj 4 Makeup Presentations Due


Week Date Lecture Lab Discussion Assignment / Exam
Week 13 Mon 4/13 Lec 21. Guest Lecture: Human-computer interaction (HCI)
(Recording)
(Slides 21)
(Lecture Quiz 21)
Tue 4/14 Lab 17. Text Processing in Python
Wed 4/15 Lec 22. Ethics in AI
(Recording)
(Slides 22)
(Lecture Quiz 22)
Thu 4/16 Postterm Practice Disc 11: Postterm Practice
Fri 4/17 Talk 12. POSTTERM 1 PREVIEW
(Recording)
POSTTERM 1


Week Date Lecture Lab Discussion Assignment / Exam
Week 14 Mon 4/20 Lec 23. Python III - Game Theory
(Recording)
(Slides 23)
(Lecture Quiz 23)
Tue 4/21 Lab 18. Linear Recursion in Python
Wed 4/22 Lec 24. Python IV – OOP
(Recording)
(Slides 24)
(Lecture Quiz 24)
Thu 4/23 Lab 19. FUN Data Science Disc 12. Review
Fri 4/24 Talk 13. POSTTERM 1 REVIEW
(Recording)
POSTTERM 2


Week Date Lecture Lab Discussion Assignment / Exam
Week 15 Mon 4/27 Lec 25. Alumni Panel
(Recording)
(Slides 25)
(Lecture Quiz 25)
Tue 4/28 Lab 20. Snap + Python Libraries (Optional)
Wed 4/29 Lec 26. Conclusion and Farewell
(Recording)
(Slides 26)
(Lecture Quiz 26)
Thu 4/30 Project Work Session (Optional) Disc 15: Review
Fri 5/1 Talk 14. POSTTERM 2 REVIEW
(Recording)
POSTTERM 3


Week Date Lecture Lab Discussion Assignment / Exam
RRR Week Mon 5/4
Tue 5/5
Wed 5/6
Thu 5/7
Fri 5/8


Week Date Lecture Lab Discussion Assignment / Exam
Finals Week Mon 5/11
Tue 5/12
Wed 5/13
Thu 5/14
Fri 5/15