CS 10: The Beauty and Joy of Computing

UC Berkeley, Fall 2024

A gentle but thorough introduction to computer science.

Instructor: Teaching Professor Dan Garcia
Instructorโ€™s OH: Friday 1-2PM @ Soda-777
Lectures: Monday, Wednesday 1-2 PM @ Hearst Field Annex, Room A1
Labs: Monday, Wednesday 5-7 PM or 7-9 PM @ Moffitt Library, Room 145
Discussion: Thurs 7-9 PM @ Anthropology and Art Practice Building, Room 160
OH Queue: oh.cs10.org


CS10 Calendar

Jump to Current Week

Week Date Lecture Lab Discussion Assignment
Week 1 Mon 8/26
Tue 8/27 Lec 1. Logistics + Abstraction
(Recording 1)
(Slides 1)
(Lecture Quiz 1)
Presemester Survey Released
Due (08/30)
Wed 8/28 Lec 2. Functions + Conditional Logic
(Recording 2)
(Slides 2)
(Lecture Quiz 2)
Lab 1. Welcome to Snap!
Thu 8/29 Disc 1. Welcome to Snap!
Fri 8/30


Week Date Lecture Lab Discussion Assignment
Week 2 Mon 9/2 NO CLASS (Holiday)
Tue 9/3 Proj 1: Worldle Released
Due (9/12)
Wed 9/4 Lec 3. Numbers + Abstraction
(Recording 3)
(Slides 3)
(Lecture Quiz 3)
Lab 2. Build Your Own Blocks
Thu 9/5 Disc 2. Number Rep + Conditionals Reading: Week 2 Due
Fri 9/6



Week Date Lecture Lab Discussion Assignment
Week 4 Mon 9/16 Lec 6. Algorithmic Complexity
(Recording 6)
(Slides 6)
(Lecture Quiz 6)
Lab 5. Algorithms
Tue 9/10
Wed 9/18 Lec 7. Quest Review
(Recording 7)
(Lecture Quiz 7)
Lab 6. Algorithmic Complexity
Thu 9/19 Disc 4. HOFs + Quest Review Reading: Week 4 Due
Fri 9/20 Quest (from Sat to Sun)


Week Date Lecture Lab Discussion Assignment
Week 5 Mon 9/23 Lec 8. Testing + 2048
(Recording 8)
(Slides 8)
(Lecture Quiz 8)
Lab 7. Testing + Proj 3
Tue 9/24
Wed 9/25 Lec 9. Social Implications of Computing: Computers in Education
(Recording 9)
(Slides 9)
(Lecture Quiz 9)
No Lab Assignment:
Project Party 2 during lab
Thu 9/26 Disc 5. Algorithms Reading: Week 5 Due
Proj 2 Due
Fri 9/27 Quest Retake


Week Date Lecture Lab Discussion Assignment
Week 6 Mon 9/30 Lec 10. Recursion I (Functional)
(Recording 10)
(Slides 10)
(Lecture Quiz 10)
Lab 8. Boards
Tue 10/1 Proj 3 Released (due 10/10)
Wed 10/2 Lec 11. Recursion II (Fractals)
(Recording 11)
(Slides 11)
(Lecture Quiz 11)
(Recursion Code)
Lab 9. Trees & Fractals
Thu 10/3 Disc 6. Recursion Reading: Week 6 Due
Fri 10/4 Quest Retake


Week Date Lecture Lab Discussion Assignment
Week 7 Mon 10/7 Lec 12. Dr. Kathy Yelick - Saving the World with Computing
(Recording 12)
(Slides 12)
(Lecture Quiz 12)
Proj 3 Party (no new lab)
Tue 10/8
Wed 10/9 Lec 13. Tree Recursion (Count Change)
(Recording 13)
(Slides 13)
(Lecture Quiz 13)
(Tree Recursion Code)
Lab 10: Recursive Reporters
Thu 10/10 Disc 7. Tree Recursion Reading: Week 7 Due
Proj 3 Due
Project 4 Released (due 10/16)
Fri 10/10 Quest Retake


Week Date Lecture Lab Discussion Assignment
Week 8 Mon 10/14 Lec 14. Higher-Order Functions
(Recording 14)
(Slides 14)
(Lecture Quiz 14)
Lab 11: HOFs and Functions as Data
Tue 10/15
Wed 10/16 Lec 15. Programming Paradigms
(Recording 15)
(Slides 15)
(Lecture Quiz 15) (Lec 15. Code)
Midterm Review + Practice Midterm
Practice Midterm
Practice Fractal
Proj 4 Due
Thu 10/17 Disc 8. Proj 4 Presentations Reading: Week 8 Due
Fri 10/18 Midterm


Week Date Lecture Lab Discussion Assignment
Week 9 Mon 10/21 Lec 16. Intro to Python
(Recording 16)
(Slides 16)
(Lecture Quiz 16)
Lab 12. Welcome to Python
Tue 10/22
Wed 10/23 Lec 17. Data Types & Structures (Python II)
(Recording 17)
(Slides 17)
(Lecture Quiz 17)
Lab 13. Data Structures in Python Final Proj Released
Thu 10/24 Disc 9. Intro to Python Reading: Week 9 Due
Fri 10/25 Midterm Retake


Week Date Lecture Lab Discussion Assignment
Week 10 Mon 10/28 Lec 18. Linear Recursion (Python III)
(Recording 18)
(Slides 18)
(Lecture Quiz 18)
Lab 14. Linear Recursion
Tue 10/29
Wed 10/30 Lec 19. Tree Recursion & Game Theory (Python IV)
(Recording 19)
(Slides 19)
(Lecture Quiz 19)
Lab 15. Tree Recursion Final Proj Prosposal Due
Thu 10/31 Disc 10. List Comprehension + Dictionaries Reading: Week 10 Due
Fri 11/1 Midterm Retake
Proj 5: Pyturis released
(due 11/14)


Week Date Lecture Lab Discussion Assignment
Week 11 Mon 11/4 Lec 20. OOP (Python V)
(Recording 20)
(Slides 20)
(Demo Code)
(Lecture Quiz 20)
Lab 16. OOP in Python Proj 6: Final Project
Tue 11/5
Wed 11/6 Lec 21. HOFs in Python (Python VI)
(Recording 21)
(Slides 21)
(Lecture Quiz 21)
Lab 17. Text Processing in Python
Thu 11/7 Disc 11: OOP + Python HOFs Proj 6: Final Project (due 12/6)
Reading: Week 11 Due
Fri 11/8 Midterm Retake


Week Date Lecture Lab Discussion Assignment
Week 12 Mon 11/11 NO CLASS (Holiday)
Tue 11/12 Proj 5 Due
Wed 11/13 Lec 22. Concurrency + Parallelism
(Recording 22)
(Slides 22)
(Lecture Quiz 22)
Lab 18. Concurrency + Parallelism
Thu 11/14 Disc 12: Concurrency + Review Reading: Week 12 Due
Fri 11/15 Postterm


Week Date Lecture Lab Discussion Assignment
Week 13 Mon 11/18 Lec 23. Generative AI
(Recording 23)
(Slides 23)
(Lecture Quiz 23)
Catch Up + PostTerm Practice (No New Lab)
Tue 11/19
Wed 11/20 Lec 24. Ethics in AI
(Recording 24)
(Slides 24)
(Lecture Quiz 24)
Lab 20. Data Science
Thu 11/21 Disc 13: Review Reading: Week 13 Due
Fri 11/22 Postterm Retake


Week Date Lecture Lab Discussion Assignment
Week 14 Mon 11/25 Lec 25. Human-computer Interaction (HCI) - Guest
(Recording 25)
(Slides 25)
(Lecture Quiz 25)
Final Proj Party
Tue 11/26
Wed 11/27 NO CLASS (Holiday)
Thu 11/28 NO CLASS (Holiday)
Fri 11/29 NO CLASS (Holiday)


Week Date Lecture Lab Discussion Assignment
Week 15 Mon 12/2 Lec 26. Alumni Panel
(Recording 26)
(Slides 26)
(Lecture Quiz 26)
Final Proj Party
Tue 12/3
Wed 12/4 Lec 27. Conclusion + Farewell
(Recording 27)
(Slides 27)
(Lecture Quiz 27)
Practice Postterm
Thu 12/5 Disc 14: Review Reading: Week 15 Due
Fri 12/6 Final Proj Due
Postterm Retake


Week Date Lecture Lab Discussion Assignment
Week 16 Mon 12/9 NO CLASS (RRR Week) Postterm Retake
Tue 12/10 NO CLASS (RRR Week) Postterm Retake
Wed 12/11 NO CLASS (RRR Week) Postterm Retake
Thu 12/12 NO CLASS (RRR Week) Postterm Retake
Fri 12/13 NO CLASS (RRR Week) Postterm Retake


Week Date Lecture Lab Discussion Assignment
Week 17 Mon 12/16 NO CLASS (Finals Week) Postterm Retake
Tue 12/17 NO CLASS (Finals Week) Postterm Retake
Wed 12/18 NO CLASS (Finals Week) Postterm Retake
Thu 12/19 NO CLASS (Finals Week) Postterm Retake
Fri 12/20 NO CLASS (Finals Week) Postterm Retake