CS 10: The Beauty and Joy of Computing
UC Berkeley, Spring 2025
A gentle but thorough introduction to computer science.
Instructor: Teaching Professor Dan Garcia
Instructorโs OH: Wednesday 3-4PM @ Soda-777
Lectures: Monday, Wednesday, Friday 1-2 PM @ Anthropology and Art Practice Building, Room 160
Labs: Tuesday, Thursday 3-5 @ Soda Hall, Room 430-438 (The Woz)
Discussion: Thurs 6-7 PM @ Evans Hall, Room 60
OH Queue: oh.cs10.org
CS10 Calendar
Week | Date | Lecture | Lab | Discussion | Assignment |
---|---|---|---|---|---|
Week 1 | Mon 1/20 | NO CLASS (Holiday) | |||
Tue 1/21 | Presemester Survey Released Due (1/31) |
||||
Wed 1/22 | Lec 1. Logistics + Abstraction (Recording 1) (Slides 1) (Lecture Quiz 1) |
||||
Thu 1/23 | Lab 1. Welcome to Snap! | Disc 1. Welcome to CS10! | |||
Fri 1/24 | Talk 1: Ask Me Anything (Recording: Talk 1) (Slides: Talk 1) |
Week | Date | Lecture | Lab | Discussion | Assignment |
---|---|---|---|---|---|
Week 2 | Mon 1/27 | Lec 2. Functions + Conditional Logic
(Recording 2) (Slides 2) (Lecture Quiz 2) |
Proj 1: Worldle Released Due (2/05) |
||
Tue 1/28 | Lab 2. Build Your Own Blocks | ||||
Wed 1/29 | Lec 3. Numbers + Abstraction (Recording 3) (Slides 3) (Lecture Quiz 3) |
||||
Thu 1/30 | Lab 3. Conditionals, Reporters, Testing | Disc 2. Numeral Rep + Conditionals | Reading: Week 2 Due | ||
Fri 1/31 | Talk 2: Predicates, Truth Tables, Conversions (Recording: Talk 2) (Slides: Talk 2) |
Week | Date | Lecture | Lab | Discussion | Assignment |
---|---|---|---|---|---|
Week 3 | Mon 2/3 | Lec 4. Iteration (Recording 4) (Slides 4) (Lecture Quiz 4) |
|||
Tue 2/04 | Lab 4. Iteration | ||||
Wed 2/05 | Lec 5. Scope, Lists, HOFs (Recording 5) (Slides 5) (Lecture Quiz 5) |
Proj 1: Worldle Due | |||
Thu 2/06 | Lab 5. Lists + HOFs | Disc 3. Data-types, Domain / Range, Scoping, Lists | Reading: Week 3 Due | ||
Fri 2/07 | Talk 3: Quest Preview (Recording 5) (Slides 5) |
Quest 1 |
Week | Date | Lecture | Lab | Discussion | Assignment |
---|---|---|---|---|---|
Week 4 | Mon 2/10 | Lec 6. Algorithmic Complexity (Recording 6) (Slides 6) (Lecture Quiz 6) |
Proj 2: Spelling Bee Released (Due 2/24) |
||
Tue 2/11 | Lab 5. Algorithms | ||||
Wed 2/12 | Lec 7. Algorithmic Complexity (Recording 7) (Slides 7) (Lecture Quiz 7) |
||||
Thu 2/13 | Lab 6. Algorithmic Complexity | Disc 4. HOFs + Algorithmic Complexity | Reading: Week 4 Due | ||
Fri 2/14 | Talk 4. Quest 1 Review (No Recording) (No Slides) |
Quest 2 |
Week | Date | Lecture | Lab | Discussion | Assignment |
---|---|---|---|---|---|
Week 5 | Mon 2/17 | NO CLASS (Holiday) | |||
Tue 2/18 | Lab 8. Nested Lists + Boards | ||||
Wed 2/19 | Lec 8. Recursion (Functional) (Recording 8) (Slides 8) (Lecture Quiz 8) (L8: Recursion Code) |
||||
Thu 2/20 | Catch-up Session (attendance not required) |
Disc 5. Nested Lists + Recursion | Reading: Week 5 Due | ||
Fri 2/21 | Talk 5: Quest 2 Review (No Recording) (No Slides) |
Quest 3 |
Week | Date | Lecture | Lab | Discussion | Assignment |
---|---|---|---|---|---|
Week 6 | Mon 2/24 | Lec 9. Recursion II (Fractals) (Recording 9) (Slides 9) (Lecture Quiz 9) (L9: Recursion Code) |
Proj 2: Spelling Bee Due | ||
Tue 2/25 | Lab 9. Trees & Fractals | ||||
Wed 2/26 | Lec 10. Recursion III (Tree Recursion) (Recording 10) (Slides 10) (Lecture Quiz 10) (L10: Recursion Code) |
||||
Thu 2/27 | Lab 10. Recursive Reporters | Disc 6. More Recursion! (online only) |
Reading: Week 6 Due | ||
Fri 2/28 | Talk 6. Recursion I (Recording: Talk 6) (Slides: Talk 6) (Code: Talk 6) |
Week | Date | Lecture | Lab | Discussion | Assignment |
---|---|---|---|---|---|
Week 7 | Mon 3/03 | Lec 11. Testing, Debugging, 2048 (Recording 11) (Slides 11) (Lecture Quiz 11) |
Proj 3: 2048 Released (Due 3/17) |
||
Tue 3/04 | Lab 11. Testing + 2048 | ||||
Wed 3/05 | Lec 12. Higher-Order Functions (Recording 12) (Slides 12) (Lecture Quiz 12) |
||||
Thu 3/06 | Lab 12: Functions as Data, HOFs | Disc 7. HOFs, Lambdas, Debugging | Reading: Week 7 Due | ||
Fri 3/07 | Talk 7. Recursion II (Recording: Talk 7) (Slides: Talk 7) |
Week | Date | Lecture | Lab | Discussion | Assignment |
---|---|---|---|---|---|
Week 8 | Mon 3/10 | Lec 13. Dr. Kathy Yelick - Saving the World with Computing (Recording 13) (Slides 13) (Lecture Quiz 13) |
|||
Tue 3/11 | Practice Midterm: without Snap! | ||||
Wed 3/12 | Lec 14. Computing in Education (Recording 14) (Slides 14) (Lecture Quiz 14) |
||||
Thu 3/13 | Practice Midterm: with Snap! (Fractal) | Disc 8. Midterm Practice | |||
Fri 3/14 | Talk 8. Midterm Preview (Recording: Talk 8) (Slides: Talk 8) |
Midterm 1 |
Week | Date | Lecture | Lab | Discussion | Assignment |
---|---|---|---|---|---|
Week 9 | Mon 3/17 | Lec 15. Programming Paradigms (Recording 15) (Slides 15) (Lecture Quiz 15) |
Proj 3: 2048 Due Proj 4: Tech in Context Released (Due 3/31) |
||
Tue 3/18 | Catchup Session (no attendance required) |
||||
Wed 3/19 | Lec 16. OOP in Snap! (Recording 16) (Slides 16) (Lecture Quiz 16) |
||||
Thu 3/20 | Lab 13. OOP in Snap! | Disc 9. OOP, Clones, Events | Reading: Week 9 Due | ||
Fri 3/21 | Talk 9: Midterm 1 Review (No Recording) (No Slides) |
Midterm 2 |
Week | Date | Lecture | Lab | Discussion | Assignment |
---|---|---|---|---|---|
Week 10 | Mon 3/24 | NO CLASS (Holiday) | |||
Tue 3/25 | NO CLASS (Holiday) | ||||
Wed 3/26 | NO CLASS (Holiday) | ||||
Thu 3/27 | NO CLASS (Holiday) | ||||
Fri 3/28 | NO CLASS (Holiday) |
Week | Date | Lecture | Lab | Discussion | Assignment |
---|---|---|---|---|---|
Week 11 | Mon 3/31 | Lec 17. Intro to Python (Recording 17) (Slides 17) (Lecture Quiz 17) |
Proj 4: Tech in Context Due | ||
Tue 4/01 | Lab 14. Intro to Python | ||||
Wed 4/02 | Lec 18. Data Types & Structures in Python (Recording 18) (Slides 18) (Lecture Quiz 18) |
Proj 6: Final Project Proposals Released (Due 4/7) |
|||
Thu 4/03 | Lab 15. Data Structures in Python | Disc 11: Project 4 Presentations | Reading: Week 11 Due |
||
Fri 4/04 | Talk 11: Midterm 2 Review (No Recording)</a> (No Slides)</a> |
Midterm 3 |
Week | Date | Lecture | Lab | Discussion | Assignment |
---|---|---|---|---|---|
Week 12 | Mon 4/7 | Lec 19. Concurrency (Recording 19) (Slides 19) (Lecture Quiz 19) |
Proj 6: Final Project Proposals Due | ||
Tue 4/8 | Lab 16. Concurrency + Parallelism | Final Project Proposal Meetings | |||
Wed 4/9 | Lec 20. Human-Computer Interaction (HCI) (Recording 20) (Slides 20) (Lecture Quiz 20) |
Final Project Proposal Meetings | |||
Thu 4/10 | Practice Postterm (coding and non-coding) | Disc 12: Data Structures in Python | Final Project Proposal Meetings Reading: Week 12 Due |
||
Fri 4/11 | Talk 12. Python Live Coding (Recording: Talk 12) (Slides: Talk 12) (Code Demo: Talk 12) |
Proj 4: Feedback + Comments Due Proj 4: Makeup Presentations Due |
Week | Date | Lecture | Lab | Discussion | Assignment |
---|---|---|---|---|---|
Week 13 | Mon 4/14 | Lec 21. Generative AI (Recording 21) (Slides 21) (Lecture Quiz 21) |
|||
Tue 4/15 | Lab 17: Text Processing in Python | ||||
Wed 4/16 | Lec 22. Ethics in AI (Recording 22) (Slides 22) (Lecture Quiz 22) |
||||
Thu 4/17 | Lab 20. Data Science | Disc 13: Concurrency + Postterm Practice | Reading: Week 13 Due | ||
Fri 4/18 | Talk 13. Postterm Preview (Recording: Talk 13) (Slides: Talk 13) |
Postterm 1 |
Week | Date | Lecture | Lab | Discussion | Assignment |
---|---|---|---|---|---|
Week 14 | Mon 4/21 | Lec 23. Tree Recursion & Game Theory (Recording 25) (Slides 25) (Lecture Quiz 25) |
|||
Tue 4/22 | Catchup Session (no attendance required) |
||||
Week 14 | Wed 4/23 | Lec 24. OOP in Python (Recording 24) (Slides 24) (Lecture Quiz 24) |
|||
Week 14 | Thu 4/24 | Postterm Practice (no attendance required) |
Disc 14. Postterm Practice | Reading: Week 14 Due | |
Week 14 | Fri 4/25 | Talk 14. Postterm 1 Review (No Recording) (No Slides) |
Postterm 2 |
Week | Date | Lecture | Lab | Discussion | Assignment |
---|---|---|---|---|---|
Week 15 | Mon 4/28 | Lec 25. Alumni Panel (Recording 25) (Slides 25) (Lecture Quiz 25) |
|||
Tue 4/29 | Project 6 Party (no attendance required) |
||||
Wed 4/30 | Lec 27. Conclusion + Farewell (Recording 27) (Slides 27) (Lecture Quiz 27) |
||||
Thu 5/1 | Project 6 Party (no attendance required) |
Disc 15: Conceptual Review + Ask Me Anything | Reading: Week 15 Due | ||
Fri 5/2 | Talk 15. Postterm 2 Review (No Recording) (No Slides) |
Postterm 3 |
Week | Date | Lecture | Lab | Discussion | Assignment |
---|---|---|---|---|---|
Week 16 | Mon 5/5 | NO CLASS (RRR Week) | Proj 6: Final Project Due | ||
Tue 5/6 | NO CLASS (RRR Week) | ||||
Wed 5/7 | NO CLASS (RRR Week) | ||||
Thu 5/8 | NO CLASS (RRR Week) | ||||
Fri 5/9 | NO CLASS (RRR Week) |
Week | Date | Lecture | Lab | Discussion | Assignment |
---|---|---|---|---|---|
Week 17 | Mon 5/12 | NO CLASS (Finals Week) | |||
Tue 5/13 | NO CLASS (Finals Week) | ||||
Wed 5/14 | NO CLASS (Finals Week) | ||||
Thu 5/15 | NO CLASS (Finals Week) | ||||
Fri 5/16 | NO CLASS (Finals Week) |