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 Lecture Labs Discussion
1 No Readings No lecture No Lab Welcome to CS10!
Welcome and Abstraction
1. Welcome to Snap!
2 Required:

No lecture 2. Build Your Own Blocks! Number Representation
3. Conditionals and Reporters
3 Required:

Numbers and Abstraction
4. Abstraction Quest Review
Lists and Scoping
5. Lists
4 Required:

HW2 Work Session Algorithms
6. Algorithms
5 Required:

7. Concurrency Concurrency
Computing and the Environment
Guest lecturer: Maxson Yang
HW2 Work Session
6 Required:

Algorithmic Complexity
8. Algorithmic Complexity Algorithmic Complexity
Testing + HW3
9. Testing + HW3
7 Required:

  • HW3 due 10/18
Recursion I
10. Tic-Tac-Toe Recursion
Recursion II
11. Trees and Fractals using Recursion
8 Required:

  • HW3 due 10/18
Programming Paradigms
HW3 Work Session Midterm Review
Social Implications - Education
12. Recursive Reporters
9 No Readings
  • Midterm Project Proposal due 10/22
Social Implications - TBA
13. Finch Lab / Midterm Project Work Session Social Implications Topics.
Social Implications - TBA
In-lab Midterm
10 Required:

  • Midterm Project due 11/18
Python I, Basics
14. Welcome to Python Intro to Python
Python II, Built-in Types
15. Data Structures in Python
11 TBA
  • Midterm Project due 11/18
Python III, HOFs
16. Functions as Data and HOFs Python List Comprehensions & Data Structures
Midterm Project Work Session
12 Required:

  • Explore Post due 11/13
No lecture 17. Text Processing in Python HOFs, Lambdas, and Tree Recursion
Python IV, Tree Recursion and Game Theory
18. Data Science in Python
13 Required:

  • Explore Comments due 11/17
  • Final Project Proposal due 11/19
Python V, OOP
19. OOP in Python Final Review
Final Project Work Session
14 No Readings
  • Final Project due 12/9
Final Project Work Session No discussion!
No lecture No Lab
15 Required:

  • Final Project due 12/9
Alumni Panel
Final Project Work Session Farewell and Final Review!
In-lab Final Exam
16 No Readings
  • Final Project due 12/9
Final Exam
No Lab No discussion!
No lecture 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