Welcome to CS10! This is an introductory class designed for students who have never had formal exposure to computer science and are looking for a gentle, but thorough introduction to the wonderful world of computing in a friendly and supportive environment. This class will not only prepare students for future computer science courses, but also empower them to use computer science in their own field of study.
Throughout the semester, students can expect to explore a variety of topics, from core computer science principles like abstraction and recursion, to apply these principles by building fun assignments like 2048, Mastermind, and some projects of their own choice! What’s more? We’ll also be covering various applications and implications of computing, including topics like AI, privacy, and algorithmic bias, to explore the exciting, and frightening ways computers are changing the world as we know it. By the end of the semester, students will have learned two programming languages: Snap!, a friendly graphical language, and Python, an industry-standard programming language.
We are especially excited about bringing computing (through this course) to traditionally under-represented groups in computing, i.e., women and ethnic minorities. We are proud that we regularly have more than 50% female enrollment (with a high of 60% in the Spring of 2017), and the national exposure the course has received in the New York Times, KQED, NPR's All Things Considered, USA Today, San Jose Mercury News, San Francisco Chronicle, and many others.
No Lecture- Happy MLK Day!
||1. Welcome to Snap!||No discussion!|
1. Welcome and Abstraction
||2. Build Your Own Blocks!|
||3. Conditionals and Reporters||
Welcome to CS10!
3. Numbers and Abstraction
4. Lists and Scoping
||HW2 Work Session||
HOFs and Quest Review
No Lecture- Happy President's Day!
||HW2 Work Session||No discussion!|
7. Algorithmic Complexity
||8. Algorithmic Complexity|
8. Testing + HW3
||9. Testing + HW3||
Scoping, Mutability, and Concurrency
9. Computing in Education
||HW3 Work Session|
10. Recursion I
|Tuesday 3/3||Lab 10 checkoff|
11. Recursion II
||11. Trees and Fractals using Recursion|
|Thursday 3/5||Lab 11 checkoff|
12. Programming Paradigms
||Midterm Project Work Session||
Intro to Recursion
13. Data and the Law
||12. Recursive Reporters|
|Thursday 3/12||Lab 12 checkoff|
14. Social Implications III - Cyber Security
Guest lecturer: Gerald Friedland
|Open Lab for Catch-up||
|Tuesday 3/17||Zoom Link|
15. Social Implications IV - HCI
Guest lecturer: Bjoern Hartmann
|Open Lab for Catch-up|
|Thursday 3/19||Lab Queue|
|10||No Readings||No upcoming assignments!||Monday 3/23||
No Lecture- Happy Spring Break!
No Lecture- Happy Spring Break!
16. Procedures as Data- Higher Order Procedures
||13. Functions as Data, HOFs||
17. Python I, Basics
||Lab 13 checkoff|
|Wednesday 4/1||14. Welcome to Python|
|Thursday 4/2||Lab 14 checkoff|
18. Python II, Built-in Types
||15. Data Structures in Python||
Intro to Python
|Tuesday 4/7||Lab 15 checkoff|
19. Python III, HOFs
||16. Text Processing in Python|
|Thursday 4/9||Lab 16 checkoff|
20. Python IV, OOP
||17. OOP in Python||
Data Structures in Python
|Tuesday 4/14||Lab 17 checkoff|
21. Python V, Tree Recursion and Game Theory
||18. Data Science in Python|
|Thursday 4/16||Lab 18 checkoff|
23. Social Implications - AI Guest Lecture
||Final Project Work Session||
More Python Proficiency
|Tuesday 4/21||Zoom Link|
23. Saving the World with Computing
Guest lecturer: Kathy Yelick
|Final Project Work Session|
|Thursday 4/23||Lab Queue|
24. Alumni Panel
||Practice In-lab Final||
Farewell and Final Review!
|Tuesday 4/28||Zoom Link|
25. Conclusion and Farewell
||In-lab Final Exam|
|Thursday 4/30||Lab Queue|
||Monday 5/4||No Lab||No discussion!|
|Tuesday 5/5||No Lab|
|Wednesday 5/6||No Lab|
|Thursday 5/7||No Lab|
|17||No Readings||No upcoming assignments!||Monday 5/11||
Good luck on your final exam!
||No Lab||No discussion!|
Sleep well before your exam!
|Thursday 5/14||No Lab|
To email the instructor, please email