
CS 10: The Beauty and Joy of Computing
UC Berkeley, Fall 2026
A gentle but thorough introduction to computer science.
Announcements: Wednesday, August 26
- Welcome to CS10! π
Instructor: Teaching Professor Dan Garcia
Instructorβs OH: TBD
Lectures: Monday, Wednesday, Friday @ 1β2 PM in Physics 4
Discussion 801: Friday @ 3β4 PM in AAPB 160
Discussion 802: Friday @ 4β5 PM in AAPB 160
Lab 801L: Monday, Wednesday @ 4β6 PM in SOCS 110
Lab 802L: Tuesday, Thursday @ 5β7 PM in Wheeler 212
OH Queue: oh.cs10.org
CS10 Calendar
β
This page has been verified against the Fa26 schedule as of 8/21.
| Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
|---|---|---|---|---|---|
| Week 1 | Mon 8/24 | No class | |||
| Tue 8/25 | No class | ||||
| Wed 8/26 |
Lec 1. Welcome + Abstraction (Video) (Slides) |
Lab 1. Welcome to Snap! |
|||
| Thu 8/27 | |||||
| Fri 8/28 |
Talk 1. Fun "Ask me anything", abstraction, using Snap! (Video) |
Disc 1. Welcome to CS 10! | |||
| Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
|---|---|---|---|---|---|
| Week 2 | Mon 8/31 |
Lec 2. Functions (Video) (Slides) |
Lab 2. Build Your Own Blocks |
||
| Tue 9/1 | |||||
| Wed 9/2 |
Lec 3. Abstraction II (Video) (Slides) |
Lab 3. Conditionals, Reporters, & Testing |
|||
| Thu 9/3 | |||||
| Fri 9/4 |
Talk 2. Making functions (Video) |
Disc 2. Number Rep & Control Structures | Proj 1: Wordleβ’ Lite Released |
| Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
|---|---|---|---|---|---|
| Week 3 | Mon 9/7 | No class (holiday) | |||
| Tue 9/8 | No Lab | ||||
| Wed 9/9 |
Lec 4. Computing in Education (Video) (Slides) |
Project 1 Party |
|||
| Thu 9/10 | |||||
| Fri 9/11 |
Talk 3. All Quest practice except for Iteration, Boolean, HOF (Video) |
Disc 3. Domain/Range, Scoping, Iteration, Lists | |||
| Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
|---|---|---|---|---|---|
| Week 4 | Mon 9/14 |
Lec 5. Iteration (Video) (Slides) |
Lab 4. Iteration |
||
| Tue 9/15 | |||||
| Wed 9/16 |
Lec 6. Lists, Scoping, & HOFs (Video) (Slides) |
Lab 5. Lists & HOFs |
Proj 1 Due | ||
| Thu 9/17 | |||||
| Fri 9/18 |
Talk 4. (Practice Quest) Booleans + Iteration (Video) |
Disc. 4: HOFs + Iteration |
| Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
|---|---|---|---|---|---|
| Week 5 | Mon 9/21 |
Lec 7. Higher-Order Functions (Video) (Slides) |
Lab 6. Functions as Data, HOFs |
Proj 2: Spelling Bee Released | |
| Tue 9/22 | |||||
| Wed 9/23 |
Lec 8. Social Implications of Computing: Privacy (Video) (Slides) |
Catch-up (optional) |
|||
| Thu 9/24 | |||||
| Fri 9/25 |
Talk 5. Quest 1 Preview (Video) |
Disc. 5 HOFs + Quest Review | QUEST 1 |
| Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
|---|---|---|---|---|---|
| Week 6 | Mon 9/28 |
Lec 9. Algorithms (Video) (Slides) |
Lab 7. Algorithms |
||
| Tue 9/29 | |||||
| Wed 9/30 |
Lec 10. Testing + 2048 (Video) (Slides) |
Lab 8. Testing + 2048 |
|||
| Thu 10/1 | |||||
| Fri 10/2 |
Talk 6. Quest 1 Review (Video) |
Disc 6. HOFs, Lambdas, Debugging | Proj 2 Due QUEST 2 |
| Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
|---|---|---|---|---|---|
| Week 7 | Mon 10/5 |
Lec 11. Recursion I (Functional) (Video) (Slides) |
Lab 9. Boards |
Proj 3: 2048 Released | |
| Tue 10/6 | |||||
| Wed 10/7 |
Lec 12. Recursion II (Fractals) (Video) (Slides) |
Lab 10. Trees & Fractals |
|||
| Thu 10/8 | |||||
| Fri 10/9 |
Talk 7. Quest 2 Review (Video) |
Disc 7. Recursion I | QUEST 3 |
| Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
|---|---|---|---|---|---|
| Week 8 | Mon 10/12 |
Lec 13. Recursion III (Count Change) (Video) (Slides) |
Lab 11. Recursive Reporters |
||
| Tue 10/13 | |||||
| Wed 10/14 |
Lec 14. Algorithmic Complexity (Video) (Slides) |
Lab 12. Algorithmic Complexity |
|||
| Thu 10/15 | |||||
| Fri 10/16 |
Talk 8. Recursion III (Video) |
Disc 8. Algorithmic Complexity + Tree Recursion |
| Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
|---|---|---|---|---|---|
| Week 9 | Mon 10/19 |
Lec 15. Kathy Yelick "Saving the World with Computing" (Video) (Slides) |
Practice Midterm (no code) |
Proj 3: Due | |
| Tue 10/20 | |||||
| Wed 10/21 |
Lec 16. HCI (Tim Aveni) (Video) (Slides) |
Practice Midterm (fractal) |
Proj 4: Explore Released | ||
| Thu 10/22 | |||||
| Fri 10/23 |
Talk 9. Midterm 1 Preview (Video) |
Disc 9. Midterm Preview | MIDTERM 1 |
| Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
|---|---|---|---|---|---|
| Week 10 | Mon 10/26 |
Lec 17. Concurrency (Video) (Slides) |
Lab 13. Concurrency |
||
| Tue 10/27 | |||||
| Wed 10/28 |
Lec 18. OOP in Snap! (Video) (Slides) |
Lab 14. OOP in Snap! |
Proj 4 Due | ||
| Thu 10/29 | |||||
| Fri 10/30 |
Talk 10. Midterm 2 Review (Video) |
Disc 10. Proj 4 Presentations | Final Projects Released MIDTERM 2 |
| Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
|---|---|---|---|---|---|
| Week 11 | Mon 11/2 |
Lec 19. Python I - Intro (Video) (Slides) |
Lab 15. Welcome to Python |
||
| Tue 11/3 | |||||
| Wed 11/4 |
Lec 20. Python II - Data Types & Structures (Video) (Slides) |
Lab 16. Lists and Mutability |
|||
| Thu 11/5 | |||||
| Fri 11/6 |
Talk 11. Midterm 3 Review (Video) |
Disc 11: Welcome to Python | Proj 4 Comments Due Proj 4 Makeup Presentations Due Final Project Proposals Due MIDTERM 3 |
| Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
|---|---|---|---|---|---|
| Week 12 | Mon 11/9 |
Lec 21. Programming Paradigms (Video) (Slides) |
Lab 17. Data Structures in Python |
Final Project Meetings | |
| Tue 11/10 | Final Project Meetings | ||||
| Wed 11/11 | No class (holiday) | ||||
| Thu 11/12 | Lab 18. Text Processing in Python |
Final Project Meetings | |||
| Fri 11/13 |
Talk 12. Python live coding (Video) |
Disc 12: Data Structures in Python + Concurrency | Final Project Meetings Project 4 Resubmissions Due |
||
| Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
|---|---|---|---|---|---|
| Week 13 | Mon 11/16 |
Lec 22. Gen AI (Video) (Slides) |
Lab 19. Data Science |
||
| Tue 11/17 | |||||
| Wed 11/18 |
Lec 23. Ethics in AI (Video) (Slides) |
Practice Postterm |
|||
| Thu 11/19 | |||||
| Fri 11/20 |
Talk 13. POSTTERM 1 PREVIEW (Video) |
Disc 13: Postterm Practice | POSTTERM 1 |
| Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
|---|---|---|---|---|---|
| Week 14 | Mon 11/23 |
Lec 24. Python III - Game Theory (Video) (Slides) |
Lab 20. Linear Recursion in Python |
||
| Tue 11/24 | |||||
| Wed 11/25 | No class (holiday) | ||||
| Thu 11/26 | No class (holiday) | ||||
| Fri 11/27 | No class (holiday) | ||||
| Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
|---|---|---|---|---|---|
| Week 15 | Mon 11/30 |
Lec 25. Alumni Panel (Video) (Slides) |
Lab 21 OPTIONAL. Snap + Python Libraries |
||
| Tue 12/1 | |||||
| Wed 12/2 |
Lec 26. Conclusion and Farewell (Video) (Slides) |
Project Work Session |
|||
| Thu 12/3 | |||||
| Fri 12/4 |
Talk 14. POSTTERM 1 REVIEW (Video) |
Disc 15: Postterm Review | POSTTERM 2 |
| Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
|---|---|---|---|---|---|
| Week 16 (RRR Week) |
Mon 12/7 |
POSTTERM 2 REVIEW (Video) |
Final Project Due | ||
| Tue 12/8 | |||||
| Wed 12/9 | |||||
| Thu 12/10 | |||||
| Fri 12/11 | POSTTERM 3 |
| Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
|---|---|---|---|---|---|
| Week 17 (Finals Week) |
Mon 12/14 | Release Grades Final Project Regrades |
|||
| Tue 12/15 | |||||
| Wed 12/16 | |||||
| Thu 12/17 | |||||
| Fri 12/18 |