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
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
  • Midterm Project due 7/26
  • Final Project Proposal due 7/29
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 TBA
  • Final Project Proposal due 7/29
  • Final Project due 8/8
Monday
7/29
Social Implications- TBA
14. Data Structures in Python Python Data Structures
Tuesday
7/30
Procedures as Data
15. Procedures as Data in Python
Wednesday
7/31
Object-Oriented Programming 1
16. Text Processing in Python Procedures as Data
Thursday
8/1
Object-Oriented Programming 2
Final Project Work Session
7 TBA
  • Final Project due 8/8
Monday
8/5
Guest lecturer: Andrew Head
Human-Computer Interaction
17. Object-Oriented Programming Object-Oriented Programming
Tuesday
8/6
APIs
Final Project Work Session
Wednesday
8/7
Data Science
Final Project Work Session More Object-Oriented Programming
Thursday
8/8
Guest lecturer: Kaylee Burns
Artificial Intelligence
18. Data Science
8 TBA No upcoming assignments! Monday
8/12
Algorithmic Bias
Social Implications Session Social Implications
Tuesday
8/13
Alumni Panel
Final Exam Work Session
Wednesday
8/14
Farewell and Conclusion
In-Lab Final Exam Conclusion, Final Review
Thursday
8/15
Final Exam
Final Exam Work Session
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

Instructors

To email the instructors, please email cs10-su@berkeley.edu

Teaching Assistants

Readers

Academic Interns