Meet Alonzo, CS10's mascot!

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.

Course Calendar
Week Readings Assignments Date Lecture Labs Discussion
1 No Readings Monday 1/20 No Lecture- Happy MLK Day!
1. Welcome to Snap! No discussion!
Tuesday 1/21
Wednesday 1/22 1. Welcome and Abstraction
2. Build Your Own Blocks!
Thursday 1/23
2 Required:

Monday 1/27 2. Functions
3. Conditionals and Reporters Welcome to CS10!
Tuesday 1/28
Wednesday 1/29 3. Numbers and Abstraction
4. Abstraction
Thursday 1/30
3 Required:

Monday 2/3 4. Lists and Scoping
5. Lists Number Representation
Tuesday 2/4
Wednesday 2/5 5. Algorithms
6. Algorithms
Thursday 2/6
4 Required:

Monday 2/10 Quest!
HW2 Work Session HOFs and Quest Review
Tuesday 2/11
Wednesday 2/12 6. Concurrency
7. Concurrency
Thursday 2/13
5 Required:

Monday 2/17 No Lecture- Happy President's Day!
HW2 Work Session No discussion!
Tuesday 2/18
Wednesday 2/19 7. Algorithmic Complexity
9. Algorithmic Complexity
Thursday 2/20
6 Required:

  • HW3 due 3/6
Monday 2/24 8. Testing + HW3
8. Testing + HW3 Concurrency
Tuesday 2/25
Wednesday 2/26 9. Computing in Education
9. HW3 Work Session
Thursday 2/27
7 Required:

  • HW3 due 3/6
Monday 3/2 10. Recursion I
10. Boards Algorithms and Algo Complexity
Tuesday 3/3
Wednesday 3/4 11. Recursion II
11. Trees and Fractals using Recursion
Thursday 3/5
8 Required:

  • Midterm next Monday (3/16)
  • Midterm Project Proposal due 3/9
  • Midterm Project due 3/20
Monday 3/9 12. Programming Paradigms
Midterm Project Work Session Intro to Recursion
Tuesday 3/10
Wednesday 3/11 13. Social Implications II
12. Recursive Reporters
Thursday 3/12
9 No Readings
  • Midterm Monday night (3/16)
  • Midterm Project due 3/20
Monday 3/16 14. Social Implications III
In Lab Midterm Midterm Review
Tuesday 3/17
Wednesday 3/18 15. Procedures as Data- Higher Order Procedures
13. Functions as Data, HOFs
Thursday 3/19
10 No Readings No upcoming assignments! Monday 3/23 No Lecture- Happy Spring Break!
No Lab! No Discussion!
Tuesday 3/24
Wednesday 3/25 No Lecture- Happy Spring Break!
No Lab!
Thursday 3/26
11 Required:

  • Explore Post due 4/3
  • Explore Post Comments due 4/5
  • Final Project Proposal due 4/6
Monday 3/30 16. Python I, Basics
14. Welcome to Python Social Implications
Tuesday 3/31
Wednesday 4/1 17. Python II, Built-in Types
15. Data Structures in Python
Thursday 4/2
12 Required:

  • Final Project Proposal due 4/6
  • Final Project due 4/24
Monday 4/6 18. Python III, HOFs
16. Text Processing in Python Intro to Python
Tuesday 4/7
Wednesday 4/8 19. TBD Guest Lecture!
Brand New Hardware Lab! Details TBA
Thursday 4/9
13 Required:

  • Final Project due 4/24
Monday 4/13 20. Python IV, Tree Recursion and Game Theory
17. Data Science in Python Data Structures in Python
Tuesday 4/14
Wednesday 4/15 21. Python V, OOP
18. OOP in Python
Thursday 4/16
14 No Readings
  • Final Project due 4/24
Monday 4/20 22. TBD Guest Lecture!
Final Project Work Session More Python Proficiency
Tuesday 4/21
Wednesday 4/22 23. TBD Guest Lecture!
Final Project Work Session
Thursday 4/23
15 Required:

No upcoming assignments! Monday 4/27 24. Alumni Panel
Final Project Work Session Farewell and Final Review!
Tuesday 4/28
Wednesday 4/29 25. Conclusion and Farewell
In-lab Final Exam
Thursday 4/30
16 No Readings
  • Final Exam next Wednesday (5/13) 7-10 PM
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!
Tuesday 5/12 Sleep well before your exam!
No Lab
Wednesday 5/13 Final Exam
No Lab
Thursday 5/14 No Lab
Weekly Schedule
This calendar displays the class schedule for the current week. Click on any event to see the building location on a map.


To email the instructor, please email cs10@berkeley.edu

Teaching Assistants


Academic Interns