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

Optional:
Monday
7/29
Procedures as Data
14. Data Structures in Python Python Data Structures
Tuesday
7/30
Object-Oriented Programming 1
15. Procedures as Data in Python
Wednesday
7/31
Object-Oriented Programming 2
16. Text Processing in Python Procedures as Data
Thursday
8/1
APIs and Design
Final Project Work Session
7 Required:

Optional:
Monday
8/5
Guest lecturer: Andrew Head
Human-Computer Interaction
17. Object-Oriented Programming Object-Oriented Programming
Tuesday
8/6
Diversity in Computing
Final Project Work Session
Wednesday
8/7
Data Science
Final Project Work Session Social Implications of Computing
Thursday
8/8
Guest lecturer: Kaylee Burns
Artificial Intelligence
18. Data Science
8 No Readings
  • Extra Credit BJC Artwork due at the Final
Monday
8/12
Algorithmic Bias
Final Exam Work Session Data Science
Tuesday
8/13
Alumni Panel
Social Implications Session
Wednesday
8/14
Farewell and Conclusion
In-Lab Final Exam Conclusion, Final Review
Thursday
8/15
Final Exam 4-7PM in 390 Hearst Memorial Mining Building
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