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

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

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

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

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

Monday 2/24 8. Testing + HW3
9. Testing + HW3 Scoping, Mutability, and Concurrency
Tuesday 2/25
Wednesday 2/26 9. Computing in Education
HW3 Work Session
Thursday 2/27
7 Required:

Monday 3/2 10. Recursion I
10. Boards Algorithmic Complexity
Tuesday 3/3 Lab 10 checkoff
Wednesday 3/4 11. Recursion II
11. Trees and Fractals using Recursion
Thursday 3/5 Lab 11 checkoff
8 Required:

  • Midterm Cancelled!
  • Midterm Project Cancelled!
Monday 3/9 12. Programming Paradigms
Midterm Project Work Session Intro to Recursion
Tuesday 3/10
Wednesday 3/11 13. Data and the Law
12. Recursive Reporters
Thursday 3/12 Lab 12 checkoff
9 No Readings
  • Midterm Cancelled!
  • Midterm Cancelled!
Monday 3/16 14. Social Implications III - Cyber Security
Guest lecturer: Gerald Friedland
Open Lab for Catch-up Midterm Review
Tuesday 3/17 Zoom Link
Wednesday 3/18 15. Social Implications IV - HCI
Guest lecturer: Bjoern Hartmann
Open Lab for Catch-up
Thursday 3/19 Lab Queue
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:

Optional:
  • Explore Post due 4/10
  • Fall 2019 Midterm (on bCourses) due 4/11
  • Explore Post Comments due 4/12

Monday 3/30 16. Procedures as Data- Higher Order Procedures
13. Functions as Data, HOFs Social Implications
Tuesday 3/31 17. Python I, Basics
Lab 13 checkoff
Wednesday 4/1 14. Welcome to Python
Thursday 4/2 Lab 14 checkoff
12 Required:

  • Explore Post due 4/10
  • Explore Post Comments due 4/12
  • Final Project Proposal due 4/17

Monday 4/6 18. Python II, Built-in Types
15. Data Structures in Python Intro to Python
Tuesday 4/7 Lab 15 checkoff
Wednesday 4/8 19. Python III, HOFs
16. Text Processing in Python
Thursday 4/9 Lab 16 checkoff
13 Required:

  • Final Project Proposal due 4/17
  • Final Project due 5/1
Monday 4/13 20. Python IV, OOP
17. OOP in Python Data Structures in Python
Tuesday 4/14 Lab 17 checkoff
Wednesday 4/15 21. Python V, Tree Recursion and Game Theory
18. Data Science in Python
Thursday 4/16 Lab 18 checkoff
14 No Readings
  • Final Project due 5/1
Monday 4/20 23. Social Implications - AI Guest Lecture
Final Project Work Session More Python Proficiency
Tuesday 4/21 Zoom Link
Wednesday 4/22 23. Saving the World with Computing
Guest lecturer: Kathy Yelick
Final Project Work Session
Thursday 4/23 Lab Queue
15 Required:

  • Final Project due 5/1
Monday 4/27 24. Alumni Panel
Practice In-lab Final Farewell and Final Review!
Tuesday 4/28 Zoom Link
Wednesday 4/29 25. Conclusion and Farewell
In-lab Final Exam
Thursday 4/30 Lab Queue
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.
As of March 8, all in-person meetings of CS10 are canceled and moved online. See Piazza for more details.
Zoom meeting link: https://bjc.link/cs10sp20
Lab Queue: https://bjc.link/onlinelabqueue
Office Hours Queue: https://bjc.link/onlineohqueue
Staff

Instructor

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

Teaching Assistants

Readers

Academic Interns