CS 10: The Beauty and Joy of Computing
UC Berkeley, Fall 2025
A gentle but thorough introduction to computer science.
Instructor: Teaching Professor Dan Garcia
Instructor’s Office Hours: Wednesday 2-3PM @ Soda Hall, Room 777
Lecture:
- Days: Monday, Wednesday, Friday
- Time: 1-2PM
- Place: Dwinelle Hall, Room 145
Lab:
- Days: Monday, Wednesday
- Time: 3-5PM (Nahee) or 8-10PM (Marius)
- Place: Barker Hall, Room 101 (Nahee) or Soda Hall, Room 438 (Marius)
Discussion:
- Days: Thursday
- Time: 4-5PM or 5-6PM
- Place: Soda Hall, Room 438 (4-5PM) or Stanley Hall, Room 106 (5-6PM)
OH Queue: oh.cs10.org
CS10 Calendar
Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
---|---|---|---|---|---|
Week 1 | Mon 8/25 | NO CLASS | |||
Tue 8/26 | NO CLASS | ||||
Wed 8/27 | Lec 1. Welcome + Abstraction (Recording 1) (Slides 1) (Lecture Quiz 1) |
Lab 1: Welcome to Snap! | Presemester Survey Released Due (9/5) |
||
Thu 8/28 | Disc 1. Welcome to CS10! | ||||
Fri 8/29 | Talk 1: Ask Me Anything (Recording: Talk 1) |
Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
---|---|---|---|---|---|
Week 2 | Mon 9/01 | NO CLASS | |||
Tue 9/02 | |||||
Wed 9/03 | Lec 2. Functions (Recording 2) (Slides 2) (Lecture Quiz 2) |
Lab 2. Build Your Own Blocks | |||
Thu 9/04 | Disc 2. Numeral Rep + Control Structures | ||||
Fri 9/05 | Talk 2: Making Functions (Recording: Talk 2) |
Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
---|---|---|---|---|---|
Week 3 | Mon 9/08 | Lec 3. Abstraction II (Recording 3) (Slides 3) (Lecture Quiz 3) |
Lab 3. Conditionals, Reporters, & Testing | Proj 1: Worldle Released Due (9/17) |
|
Tue 9/09 | |||||
Wed 9/10 | Lec 14. Computing in Education (Recording 14) (Slides 14) (Lecture Quiz 14) |
Catch-up Lab (optional) | |||
Thu 9/11 | Disc 3. Domain/Range, Scoping, Iteration, Lists | ||||
Fri 9/12 | Talk 3: Binary/Dec/Hex Conversion (Recording: Talk 3) |
Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
---|---|---|---|---|---|
Week 4 | Mon 9/15 | Lec 4. Iteration (Recording 4) (Slides 4) (Lecture Quiz 4) |
Lab 4. Iteration | ||
Tue 9/16 | |||||
Wed 9/17 | Lec 5. Lists, Scoping, & HOFs (Recording 5) (Slides 5) (Lecture Quiz 5) |
Lab 5. Lists & HOFs | Proj 1 Due | ||
Thu 9/18 | Disc 4. Quest Review | ||||
Fri 9/19 | Talk 4: Conditionals, Truth Tables, Predicates (Recording: Talk 4) |
Quest 1 </br>(due by 9/20) |
Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
---|---|---|---|---|---|
Week 5 | Mon 9/22 | Lec 6. Saving the World with Computing (Guest Lecture) (Recording 5) (Slides 5) (Lecture Quiz 5) |
Catch-up Session (optional) | Proj 2: Spelling Bee Released | |
Tue 9/23 | |||||
Wed 9/24 | Lec 6. Higher-Order Functions (Recording 6) (Slides 6) (Lecture Quiz 6) |
Lab 6. Functions as Data, HOFs | |||
Thu 9/25 | Disc 5. HOFs | ||||
Fri 9/26 | Talk 5: Quest 1 Preview (Recording: Talk 5) |
QUEST 1 |
Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
---|---|---|---|---|---|
Week 6 | Mon 9/29 | Lec 7. Algorithms (Recording 7) (Slides 7) (Lecture Quiz 7) |
Lab 7. Algorithms | ||
Tue 9/30 | |||||
Wed 10/01 | Lec 8. Testing + 2048 (Recording 8) (Slides 8) (Lecture Quiz 8) |
Lab 8. Testing + 2048 | |||
Thu 10/02 | Disc 6. HOFs, Lambdas, Debugging | ||||
Fri 10/03 | Talk 6: Quest 1 Review (Recording: Talk 6) |
Proj 2 Due QUEST 2 |
Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
---|---|---|---|---|---|
Week 7 | Mon 10/06 | Lec 9. Recursion I (Functional) (Recording 9) (Slides 9) (Lecture Quiz 9) |
Lab 9. Boards | Proj 3: 2048 Released Due (10/20) QUEST 2 |
|
Tue 10/07 | |||||
Wed 10/08 | Lec 10. Recursion II (Fractals) (Recording 10) (Slides 10) (Lecture Quiz 10) |
Lab 10. Trees & Fractals | |||
Thu 10/09 | Disc 7. Recursion I | ||||
Fri 10/10 | Talk 7: Quest 2 Review (Recording: Talk 7) |
QUEST 3 |
Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
---|---|---|---|---|---|
Week 8 | Mon 10/13 | Lec 11. Recursion III (Count Change) (Recording 11) (Slides 11) (Lecture Quiz 11) |
Lab 11. Recursive Reporters | ||
Tue 10/14 | |||||
Wed 10/15 | Lec 12. Algorithmic Complexity (Recording 12) (Slides 12) (Lecture Quiz 12) |
Lab 12. Algorithmic Complexity | |||
Thu 10/16 | Disc 8. Algorithmic Complexity + Tree Recursion | ||||
Fri 10/17 | Talk 8: Quest 3 Preview (Recording: Talk 8) |
Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
---|---|---|---|---|---|
Week 9 | Mon 10/20 | Lec 13. Guest Lecture: Human–Computer Interaction (HCI) (Recording 13) (Slides 13) (Lecture Quiz 13) |
Practice Midterm (no code) | Proj 3 Due | |
Tue 10/21 | |||||
Wed 10/22 | Lec 14. Guest Lecture (Recording 14) (Slides 14) (Lecture Quiz 14) |
Practice Midterm (fractal) | Proj 4: Explore Released Due (10/29) |
||
Thu 10/23 | Disc 9. Midterm Preview | ||||
Fri 10/24 | Talk 9: Midterm 1 Preview (Recording: Talk 9) |
MIDTERM 1 |
Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
---|---|---|---|---|---|
Week 10 | Mon 10/27 | Lec 15. Concurrency (Recording 15) (Slides 15) (Lecture Quiz 15) |
Lab 13. Concurrency | ||
Tue 10/28 | |||||
Wed 10/29 | Lec 16. OOP in Snap! (Recording 16) (Slides 16) (Lecture Quiz 16) |
Lab 14. OOP in Snap! | Proj 4 Due | ||
Thu 10/30 | Disc 10. Proj 4 Presentations | ||||
Fri 10/31 | Talk 10: Midterm 2 Review (Recording: Talk 10) |
Final Projects Released MIDTERM 2 |
Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
---|---|---|---|---|---|
Week 11 | Mon 11/03 | Lec 17. Python I – Intro (Recording 17) (Slides 17) (Lecture Quiz 17) |
Lab 15. Welcome to Python | ||
Tue 11/04 | |||||
Wed 11/05 | Lec 18. Python II – Data Structures (Recording 18) (Slides 18) (Lecture Quiz 18) |
Lab 16. Lists and Mutability | |||
Thu 11/06 | Disc 11. Welcome to Python | ||||
Fri 11/07 | Talk 11: Midterm 3 Review (Recording: Talk 11) |
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/10 | Lec 19. Guest Lecture (Recording 19) (Slides 19) (Lecture Quiz 19) |
Lab 17. Data Structures in Python | Final Project Meetings | |
Tue 11/11 | NO CLASS | ||||
Wed 11/12 | Lec 20. Programming Paradigms (Recording 20) (Slides 20) (Lecture Quiz 20) |
Lab 18. Text Processing in Python | Final Project Meetings | ||
Thu 11/13 | Disc 12. Data Structures in Python | Final Project Meetings | |||
Fri 11/14 | Talk 12: Python Live Coding (Recording: Talk 12) |
Final Project Meetings |
Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
---|---|---|---|---|---|
Week 13 | Mon 11/17 | Lec 21. Generative AI (Recording 21) (Slides 21) (Lecture Quiz 21) |
Lab 19. Data Science | ||
Tue 11/18 | |||||
Wed 11/19 | Lec 22. Ethics in AI (Recording 22) (Slides 22) (Lecture Quiz 22) |
Practice Postterm (no code + code) | Proj 4 Resubmissions Due | ||
Thu 11/20 | Disc 13. Concurrency + Postterm Practice | ||||
Fri 11/21 | Talk 13: Postterm 1 Preview (Recording: Talk 13) |
POSTTERM 1 |
Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
---|---|---|---|---|---|
Week 14 | Mon 11/24 | Lec 23. Python III – Game Theory (Recording 23) (Slides 23) (Lecture Quiz 23) |
Lab 20. Recursion in Python | ||
Tue 11/25 | |||||
Wed 11/26 | NO CLASS | ||||
Thu 11/27 | NO CLASS | ||||
Fri 11/28 | NO CLASS |
Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
---|---|---|---|---|---|
Week 15 | Mon 12/01 | Lec 25. Alumni Panel (Recording 25) (Slides 25) (Lecture Quiz 25) |
Lab 21 OPTIONAL. Snap + Python Libraries | ||
Tue 12/02 | |||||
Wed 12/03 | Lec 26. Conclusion and Farewell (Recording 26) (Slides 26) (Lecture Quiz 26) |
Project Work Session | |||
Thu 12/04 | Disc 14. Review | ||||
Fri 12/05 | POSTTERM 2 REVIEW (Recording: Postterm 2 Review) |
POSTTERM 2 |
Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
---|---|---|---|---|---|
RRR Week | Mon 12/08 | ||||
Tue 12/09 | Final Project Due | ||||
Wed 12/10 | |||||
Thu 12/11 | |||||
Fri 12/12 | POSTTERM 3 |
Week | Date | Lecture | Lab | Discussion | Assignment / Exam |
---|---|---|---|---|---|
Finals Week | Mon 12/15 | ||||
Tue 12/16 | Release Grades Final Project Regrades |
||||
Wed 12/17 | |||||
Thu 12/18 | |||||
Fri 12/19 |