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

Jump to Current Week

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