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
| 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 3 | Mon 9/9 | Lec 4. List, Scope, + HOFs (Recording 4) (Slides 4) (Lecture Quiz 4) | Lab 3. Conditionals, Reporters, Testing | ||
| Tue 9/10 | Proj 1: Worldle Due | ||||
| Wed 9/11 | Lec 5. Algorithms (Recording 5) (Slides 5) (Lecture Quiz 5) | Lab 4. Lists + HOFs | |||
| Thu 9/12 | Disc 3. Data-types, Domain / Range, Scoping, Lists | Reading: Week 3 Due Proj 2: Worldle Released (due 9/26) | |||
| Fri 9/13 | 
| 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 | |||