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

Jump to Current Week

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)


</tbody> </table>
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)