CS 1 (Spring 2025)

Welcome to CS 1! We’re super excited to have you here this term!

Most Recent Announcements

Due Next

Calendar

Wellness and Inclusion

It is very important to us that you succeed in CS 1. We provide many extra resources to help you. The professors and the TAs hold many office hours.

It is also very important to us that you maintain your mental wellness throughout the course. A few points are not worth losing sleep over. Everyone on the course staff is available to chat, and you can always attend office hours for a non-academic conversation if necessary. You can also visit the counseling center if you find you need help beyond the course staff. If you have a temporary health condition or permanent disability (either mental health or physical health related), you should contact accessibility services if you have not already. Additionally, if there is something we can do to make your experience better, please let us know.

Diversity, inclusion, and belonging are all core values of this course. All participants in this course must be treated with respect by other members of the community in accordance with the honor code. If you feel unwelcome or unsafe in any way, no matter how minor, we encourage you to talk to Prof. Blank or one of the Deans. We view these sorts of honor code violations as completely unacceptable, and we take them very seriously.

Tools

Project Registration Current Diagnostics Extension Request Form

Course Staff

Instructors

they/them
Book an appointment!
Annenberg 115
blank@caltech.edu
(626) 395-1765
he/him
Book an appointment by email!
Annenberg 245
tsang@caltech.edu
(626) 395-6251

Teaching Assistants

Hopper
she/her
hopper@
Jinhuang (Jin) Zhou
he/him
jzhou2@
Bisrat Kassahun
he/him
bkassahu@
Lucas Smith
he/him
lsmith2@
Maya Keys
she/her
mekeys@
Philippe des Boscs
he/him
pdesbosc@
Reiden Walker
he/they
rrwalker@
Tami Soyebo
she/her
tami@

Handouts

The following is a list of handouts that you might find helpful throughout the course. We’ve categorized them by when they are useful.

Course Information

Syllabus – an overview of the course and administrative information

Setup Instructions – setup instructions for the course

Policies

Diagnostics Policy – the rules around diagnostics in the course

Collaboration Policy – the course collaboration policy

Projects

Grading – guide to understanding project grading

Readings

Course Readings – an optional set of readings to supplement lecture material

Cheatsheet for Python - a comprehensive list of examples and tips for python syntax and libraries

Schedule

L00 Mon, Mar 31 Computation and Algorithms in 2025
Variables, Types, Calling a Function,
Introduction to CS 1. Administrivia. Our first program!
R01 Tue, Apr 01 Syntax Recitation 01 [ problems, solutions ]
Variables. Lists. for loops
L01 Wed, Apr 02 Introduction to Lists, Iteration, and Selection
lists, for Loops, if statements
Lists. for Loops. Basic if Statements.
L02 Fri, Apr 04 Functions and Returns
Defining Functions
Writing our own functions. Tips, tricks, and pitfalls.
L03 Mon, Apr 07 Return of the Return Values
Defining Functions
“Catching” return values from functions
DUE Mon, Apr 07
11:30 pm
Diagnostic 1a (attempt 2) [ link ]
This is the second attempt for this diagnostic. You can complete it even if you didn't do the first attempt in lecture.
R02 Tue, Apr 08 Syntax Recitation 02 [ problems, solutions ]
Types. Functions. Reading documentation.
DUE Tue, Apr 08
11:30 pm
project01 (battleship, part 1) [ guide ]
This project covers fundamental Python concepts with a particular emphasis on conditionals and lists.
L04 Wed, Apr 09 Reading Documentation, Type Annotations, and More!
none.
How should you go about reading the project guides? What is a type really?
DUE Wed, Apr 09
11:30 pm
Diagnostic 2a (attempt 2) [ link ]
This is the second attempt for this diagnostic. You can complete it even if you didn't do the first attempt in lecture.
L05 Fri, Apr 11 Indefinite Loops
while Loops
while loops. More common loop patterns.
DUE Fri, Apr 11
11:30 pm
Diagnostic 3a (attempt 2) [ link ]
This is the second attempt for this diagnostic. You can complete it even if you didn't do the first attempt in lecture.
L06 Mon, Apr 14 Doing It Again (and Loops and Lists)
More lists, tuples
More complicated loop and list patterns.
DUE Mon, Apr 14
11:30 pm
Diagnostic 4a (attempt 2) [ link ]
This is the second attempt for this diagnostic. You can complete it even if you didn't do the first attempt in lecture.
DUE Mon, Apr 14
11:30 pm
Diagnostic 4b (attempt 2) [ link ]
This is the second attempt for this diagnostic. You can complete it even if you didn't do the first attempt in lecture.
R03 Tue, Apr 15 Syntax Recitation 03 [ problems, solutions ]
Nested for loops. While loops. More types.
DUE Tue, Apr 15
11:30 pm
project02 (battleship, part 2) [ guide ]
This project covers more fundamental programming concepts including functional decomposition and computational thinking.
L07 Wed, Apr 16 Case Study: Wordle
list operations
An example program that synthesizes all that we’ve done so far!
DUE Wed, Apr 16
11:30 pm
Diagnostic 5a (attempt 2) [ link ]
This is the second attempt for this diagnostic. You can complete it even if you didn't do the first attempt in lecture.
L08 Fri, Apr 18 Storing Mappings (Dictionaries)
Dictionaries

DUE Fri, Apr 18
11:30 pm
Diagnostic 8a (attempt 2) [ link ]
This is the second attempt for this diagnostic. You can complete it even if you didn't do the first attempt in lecture.
DUE Fri, Apr 18
11:30 pm
Diagnostic 6a (attempt 2) [ link ]
This is the second attempt for this diagnostic. You can complete it even if you didn't do the first attempt in lecture.
L09 Mon, Apr 21 In-Class Quiz
DUE Mon, Apr 21
11:30 pm
Diagnostic 6b (attempt 2) [ link ]
This is the second attempt for this diagnostic. You can complete it even if you didn't do the first attempt in lecture.
DUE Mon, Apr 21
11:30 pm
quiz01
L10 Wed, Apr 23 Working with Hardware
Dictionaries
Introducing the Trinkey which is a piece of hardware we will be working with in project03!
DUE Wed, Apr 23
11:30 pm
Diagnostic 7a (attempt 2) [ link ]
This is the second attempt for this diagnostic. You can complete it even if you didn't do the first attempt in lecture.
L11 Fri, Apr 25 Exceptions
Exceptions

L12 Mon, Apr 28 vpython and using objects
TBD
DUE Tue, Apr 29
11:30 pm
project03 (morse code) [ guide ]
This project covers indefinite loops, dictionaries, and advanced string manipulation.
L13 Wed, Apr 30 Mysteries and Tests!
TBD
DUE Wed, Apr 30
11:30 pm
Diagnostic 9a (attempt 2) [ link ]
This is the second attempt for this diagnostic. You can complete it even if you didn't do the first attempt in lecture.
L14 Fri, May 02 TBD
TBD
DUE Fri, May 02
11:30 pm
Diagnostic 10a (attempt 2) [ link ]
This is the second attempt for this diagnostic. You can complete it even if you didn't do the first attempt in lecture.
L15 Mon, May 05 ...why Java? why NOW?
TBD
DUE Mon, May 05
11:30 pm
Diagnostic 11a (attempt 2) [ link ]
This is the second attempt for this diagnostic. You can complete it even if you didn't do the first attempt in lecture.
DUE Tue, May 06
11:30 pm
project04 (newton's cradle) [ guide ]
This project covers dictionaries and using objects.
L16 Wed, May 07 Structuring Code
TBD
L17 Fri, May 09 Objects and Classes
TBD
L18 Mon, May 12 Constructors and Instances
TBD
DUE Tue, May 13
11:30 pm
project05
L19 Wed, May 14 Choosing and Using Fields
TBD
L20 Fri, May 16 LLMs 1
TBD
L21 Mon, May 19 In-Class Quiz
DUE Mon, May 19
11:30 pm
quiz02
L22 Wed, May 21 Recursion
TBD
L23 Fri, May 23 Enrichment Lecture 1
TBD
DUE Tue, May 27
11:30 pm
project06
L24 Wed, May 28 Enrichment Lecture 2
TBD
L25 Fri, May 30 Enrichment Lecture 3
TBD
L26 Mon, Jun 02 Victory Lap
TBD
DUE Tue, Jun 03
11:30 pm
project07
L27 Wed, Jun 04