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.
Week | Readings | Assignments | Date | Lecture | Labs | Discussion |
1 | No Readings |
|
Monday 8/26 |
Welcome to CS10!
|
||
Tuesday 8/27 | ||||||
Wednesday 8/28 |
Welcome and Abstraction
|
1. Welcome to Snap! | ||||
Thursday 8/29 | ||||||
2 |
Required:
Optional: |
|
Monday 9/2 |
Number Representation
|
||
Tuesday 9/3 | 2. Build Your Own Blocks! | |||||
Wednesday 9/4 |
Functions
|
3. Conditionals and Reporters | ||||
Thursday 9/5 | ||||||
3 |
Required:
Optional: |
|
Monday 9/9 |
Numbers and Abstraction
|
4. Abstraction |
Quest Review
|
Tuesday 9/10 | ||||||
Wednesday 9/11 |
Lists and Scoping
|
5. Lists | ||||
Thursday 9/12 | ||||||
4 |
Required:
Optional: |
|
Monday 9/16 |
Quest!
|
HW2 Work Session |
Scope & Mutability
|
Tuesday 9/17 | ||||||
Wednesday 9/18 |
Algorithms
Guest lecturer: Bryant Bettencourt |
6. Algorithms | ||||
Thursday 9/19 | ||||||
5 |
Required:
Optional: |
|
Monday 9/23 |
Computing and the Environment
Guest lecturer: Maxson Yang |
HW2 Work Session |
Concurrency
|
Tuesday 9/24 | ||||||
Wednesday 9/25 |
Concurrency
Guest lecturer: Aaron Baker |
7. Concurrency | ||||
Thursday 9/26 | ||||||
6 |
Required:
|
|
Monday 9/30 |
Algorithmic Complexity
|
8. Algorithmic Complexity |
Algorithmic Complexity
|
Tuesday 10/1 | ||||||
Wednesday 10/2 |
Testing + HW3
|
9. Testing + HW3 | ||||
Thursday 10/3 | ||||||
7 |
Required:
|
|
Monday 10/7 |
Recursion I
|
10. Tic-Tac-Toe |
Recursion
|
Tuesday 10/8 | ||||||
Wednesday 10/9 |
Recursion II
|
11. Trees and Fractals using Recursion | ||||
Thursday 10/10 | ||||||
8 |
Required:
|
|
Monday 10/14 |
Programming Paradigms
|
HW3 Work Session |
Midterm Review
|
Tuesday 10/15 | ||||||
Wednesday 10/16 |
Computing in Education
|
12. Recursive Reporters | ||||
Thursday 10/17 | ||||||
9 | No Readings |
|
Monday 10/21 |
Midterm Review
Guest lecturer: Rafael Félix |
13. Finch Lab / Midterm Project Work Session |
Social Implications Topics.
|
Tuesday 10/22 | ||||||
Wednesday 10/23 |
History of Cryptography
Guest lecturer: Murtaza Ali & Kathleen Gao |
In-lab Midterm | ||||
Thursday 10/24 | ||||||
10 |
Required:
Optional: |
|
Monday 10/28 |
Python I, Basics
|
14. Welcome to Python |
Intro to Python
|
Tuesday 10/29 | ||||||
Wednesday 10/30 |
Python II, Built-in Types
|
15. Data Structures in Python | ||||
Thursday 10/31 | ||||||
11 | TBA |
|
Monday 11/4 |
Python III, HOFs
|
16. Functions as Data and HOFs |
Python List Comprehensions & Data Structures
|
Tuesday 11/5 | ||||||
Wednesday 11/6 |
Python IV, Tree Recursion and Game Theory
|
Midterm Project Work Session | ||||
Thursday 11/7 | ||||||
12 |
Required:
|
|
Monday 11/11 |
Veterans Day
|
17. Text Processing in Python |
HOFs, Lambdas, and Tree Recursion
|
Tuesday 11/12 | ||||||
Wednesday 11/13 |
Artificial Intelligence
Guest lecturer: Kaylee Burns |
18. Data Science in Python | ||||
Thursday 11/14 | ||||||
13 |
Required:
|
|
Monday 11/18 |
Limits of Computing
|
Explore Post Work Session |
Final Review
|
Tuesday 11/19 | ||||||
Wednesday 11/20 |
Human-Computer Interaction
Guest lecturer: Sarah Stermann |
Final Project Work Session | ||||
Thursday 11/21 | ||||||
14 | No Readings |
|
Monday 11/25 |
Saving the World with Computing
Guest lecturer: Kathy Yelick |
Final Project Work Session | No discussion! |
Tuesday 11/26 | ||||||
Wednesday 11/27 |
Thanksgiving
|
|||||
Thursday 11/28 | ||||||
15 |
Required:
|
|
Monday 12/2 |
Alumni Panel
|
Final Project Work Session |
Farewell and Final Review!
|
Tuesday 12/3 | ||||||
Wednesday 12/4 |
Conclusion
|
In-lab Final Exam | ||||
Thursday 12/5 | ||||||
16 | No Readings |
|
Monday 12/9 | No Lab | No discussion! | |
Tuesday 12/10 | No Lab | |||||
Wednesday 12/11 | No Lab | |||||
Thursday 12/12 | No Lab | |||||
17 | No Readings |
|
Monday 12/16 |
Final Exam
|
No Lab | No discussion! |
Tuesday 12/17 | No Lab | |||||
Wednesday 12/18 | No Lab | |||||
Thursday 12/19 | No Lab |
To email the instructor, please email cs10@berkeley.edu