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 |