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
6/24 |
Welcome to CS10!
|
1. Welcome to Snap! |
Welcome to CS10!
|
|
Tuesday
6/25 |
Number Systems
|
2. Build Your Own Blocks | ||||
Wednesday
6/26 |
Building Blocks
|
3. Conditionals and Variables |
Number Systems, Boolean Logic
|
|||
Thursday
6/27 |
Lists, Loops, and Higher Order Functions
|
4. Functions | ||||
2 |
Required:
Optional: |
Monday
7/1 |
Mutability and Scoping
|
5. Lists |
Domain and Range, Higher Order Functions
|
|
Tuesday
7/2 |
Algorithmic Complexity
|
6. Algorithms | ||||
Wednesday
7/3 |
Testing and Coding Practices
|
7. Algorithmic Complexity |
Mutability and Scoping
|
|||
Thursday
7/4 |
No lecture | No Lab | ||||
3 |
Required:
Optional: |
Monday
7/8 |
Quest
|
HW2 Work Session |
Algorithmic Complexity
|
|
Tuesday
7/9 |
Guest lecturer: Maxson Yang
Computing and the Environment |
8. Testing + HW3 | ||||
Wednesday
7/10 |
Concurrency
|
9. Boards + Tic Tac Toe |
Social Implications Session
|
|||
Thursday
7/11 |
Recursion 1
|
HW3 Work Session | ||||
4 |
Required:
|
Monday
7/15 |
Recursion 2
|
10. Trees and Fractals Using Recursion |
Introduction to Recursion
|
|
Tuesday
7/16 |
Tree Recursion
|
11. Recursive Reporters | ||||
Wednesday
7/17 |
Guest lecturer: Edwin Lin
Social Media and Virtual Communities |
Midterm Project Work Session |
More Recursion
|
|||
Thursday
7/18 |
Guest lecturer: Bryant Bettencourt
Computational Game Theory |
12. HOFs with Recursion | ||||
5 | No Readings |
Monday
7/22 |
Midterm Exam
|
In-Lab Midterm Exam |
Midterm Review
|
|
Tuesday
7/23 |
Introduction to Python
|
Midterm Project Work Session | ||||
Wednesday
7/24 |
Python Data Structures
|
13. Welcome to Python! |
Introduction to Python
|
|||
Thursday
7/25 |
Guest lecturer: Jobel Vecino
Cyberpolitics |
Midterm Project Work Session | ||||
6 |
Required:
Optional: |
Monday
7/29 |
Procedures as Data
|
14. Data Structures in Python |
Python Data Structures
|
|
Tuesday
7/30 |
Object-Oriented Programming 1
|
15. Procedures as Data in Python | ||||
Wednesday
7/31 |
Object-Oriented Programming 2
|
16. Text Processing in Python |
Procedures as Data
|
|||
Thursday
8/1 |
APIs and Design
|
Final Project Work Session | ||||
7 |
Required:
Optional: |
Monday
8/5 |
Guest lecturer: Andrew Head
Human-Computer Interaction |
17. Object-Oriented Programming |
Object-Oriented Programming
|
|
Tuesday
8/6 |
Diversity in Computing
|
Final Project Work Session | ||||
Wednesday
8/7 |
Data Science
|
Final Project Work Session |
Social Implications of Computing
|
|||
Thursday
8/8 |
Guest lecturer: Kaylee Burns
Artificial Intelligence |
18. Data Science | ||||
8 | No Readings |
|
Monday
8/12 |
Algorithmic Bias
|
Final Exam Work Session |
Data Science
|
Tuesday
8/13 |
Alumni Panel
|
Social Implications Session | ||||
Wednesday
8/14 |
Farewell and Conclusion
|
In-Lab Final Exam |
Conclusion, Final Review
|
|||
Thursday
8/15 |
Final Exam 4-7PM in 390 Hearst Memorial Mining Building
|
Final Exam Work Session |
To email the instructors, please email cs10-su@berkeley.edu