Overview

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 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:

  • HW3 due 10/18
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:

  • HW3 due 10/18
  • Midterm next Monday (10/21)
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
  • Midterm Project Proposal due 10/26
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:
  • Midterm Proposal due 10/26
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
  • Midterm Project due 11/15
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:

  • Explore Post due 11/19
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:

  • Explore Comments due 11/21
  • Final Project Proposal due 11/23
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
  • Final Project due 12/9
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:

  • Final Project due 12/9
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
  • Final Project due 12/9
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
  • Final Project due 12/9
Monday 12/16 Final Exam
No Lab No discussion!
Tuesday 12/17 No Lab
Wednesday 12/18 No Lab
Thursday 12/19 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.
Staff

Instructor

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

Teaching Assistants

Readers

Academic Interns