CS 1 (Fall 2025)

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

Most Recent Announcements

Due Next

Syntax LLMs and Cheatsheets

Python - a list of examples and tips for python syntax and the Python Syntax LLM

Java - a list of examples and tips for Java syntax and the Java Syntax LLM

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 Diagnostic Extension Request Form

Course Staff

Instructor

they/them
Book an appointment!
Annenberg 115
blank@caltech.edu
(626) 395-1765

Leadership

Justin Yokota
he/him
Jinhuang (Jin) Zhou
he/him

Teaching Assistants

Hopper
she/her
hopper@
Bisrat Kassahun
he/him
bkassahu@
Lucas Smith
he/him
lsmith2@
Tuyen Nguyen
she/her
thnguyen@
Karen Cao
she/her
kcao@
Kateryna Mygushchenko
she/her
kmygushc@
Shallon Kobusinge
she/her
skobusin@
Tobjorn (Toby) Nelson
they/them
tlnelson@
Alex Kumar
he/him
askumar@
Andrew Qin
he/him
asqin@
Aditya Pakal
he/him
apakal@
Joe Giambrone
he/him
jgiambro@
Maya Yie
she/her
myie@

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

Guide on VScode – guide to using VScode 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

Test Output – guide to understanding test outputs

DUEs – guide to understanding DUEs

Code Quality – guide to understanding code quality

Schedule

L00 Mon, Sep 29 Computation and Algorithms in 2025
Variables, Types, Calling a Function,
Introduction to CS 1. Administrivia. Our first program!
L01 Wed, Oct 01 LLMs and You
Be there or be square!
L02 Fri, Oct 03 Introduction to Lists, Iteration, and Selection
lists, for Loops, if statements
Lists. for Loops. Basic if Statements.
L03 Mon, Oct 06 Functions and Returns
Defining Functions
Writing our own functions. Tips, tricks, and pitfalls.
DUE Mon, Oct 06
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.
DUE Tue, Oct 07
11:30 pm
project01 (battleship, part 1) [ guide ]
This project covers fundamental Python concepts with a particular emphasis on conditionals and lists.
L04 Wed, Oct 08 Practice Quiz 00

DUE Wed, Oct 08
03:00 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.
R01 Wed, Oct 08 Syntax Recitation 01 [ problems, solutions ]
Variables. Lists. for loops
DUE Wed, Oct 08
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, Oct 10 Practice Quiz 01

DUE Fri, Oct 10
03:00 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.
DUE Fri, Oct 10
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, Oct 13 Return of the Return Values
Defining Functions
“Catching” return values from functions
L07 Wed, Oct 15 Reading Documentation, Type Annotations, and More!
none.
How should you go about reading the project guides? What is a type really?
R02 Wed, Oct 15 Syntax Recitation 02 [ problems, solutions ]
Types. Functions. Reading documentation.
DUE Fri, Oct 17
02:00 pm
In-Class Quiz
L08 Fri, Oct 17 In-Class Quiz

L09 Mon, Oct 20 Indefinite Loops
while Loops
while loops. More common loop patterns.
DUE Mon, Oct 20
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.
L10 Wed, Oct 22 Doing It Again (and Loops and Lists)
More lists, tuples
More complicated loop and list patterns.
DUE Wed, Oct 22
11:30 pm
miniproject (information) [ guide ]
This miniproject covers techniques and trade-offs for finding information.
L11 Fri, Oct 24 Case Study: Wordle
list operations
An example program that synthesizes all that we’ve done so far!
L12 Mon, Oct 27 Storing Mappings (Dictionaries)
Dictionaries

DUE Mon, Oct 27
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.
DUE Mon, Oct 27
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 Tue, Oct 28
11:30 pm
project02 (battleship, part 2) [ guide ]
This project covers more fundamental programming concepts including functional decomposition and computational thinking.
L13 Wed, Oct 29 Working with Hardware
Dictionaries
Introducing the Trinkey which is a piece of hardware we will be working with in project03!
R03 Wed, Oct 29 Syntax Recitation 03 [ problems, solutions ]
Nested for loops. While loops. More types.
DUE Wed, Oct 29
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, Oct 31 Exceptions
Exceptions

DUE Fri, Oct 31
03:00 pm
Diagnostic 13a (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, Oct 31
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, Nov 03 vpython and using objects
TBD
DUE Mon, Nov 03
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, Nov 04
11:30 pm
project03 (morse code) [ guide ]
This project covers indefinite loops, dictionaries, and advanced string manipulation.
L16 Wed, Nov 05 Monty Hall Problem
floats and Fractions
R04 Wed, Nov 05 Syntax Recitation 04 [ problems, solutions ]
Exceptions and dictionaries.
DUE Wed, Nov 05
11:30 pm
Diagnostic 12a (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.
L17 Fri, Nov 07 Matrices and More Objects
L18 Mon, Nov 10 ...why Java? why NOW?
TBD
DUE Mon, Nov 10
11:30 pm
Diagnostic 14a (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, Nov 11
11:30 pm
project04 (newton's cradle) [ guide ]
This project covers dictionaries and using objects.
L19 Wed, Nov 12 Structuring Code
TBD
R05 Wed, Nov 12 Syntax Recitation 05 [ problems, solutions ]
Enums. Counters. Fractions. vpython objects.
L20 Fri, Nov 14 Objects and Classes
TBD
DUE Fri, Nov 14
03:00 pm
Diagnostic 17a (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, Nov 14
11:30 pm
Diagnostic 15a (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.
L21 Mon, Nov 17 In-Class Midterm
L22 Wed, Nov 19 Mysteries and Tests!
What does a unit test look like? It’s a mystery!
DUE Wed, Nov 19
11:30 pm
Diagnostic 16a (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.
L23 Fri, Nov 21 Recursion
TBD
L24 Mon, Nov 24 Enrichment Lecture
TBD
DUE Mon, Nov 24
03:00 pm
Diagnostic 20a (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, Nov 25
11:30 pm
project05 (equation balancer and solver) [ guide ]
This project covers using custom types and linear algebra operations in Python.
:( Wed, Nov 26 No Class (Thanksgiving)
DUE Wed, Nov 26
11:30 pm
Diagnostic 18a (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.
:( Fri, Nov 28 No Class (Thanksgiving)
DUE Fri, Nov 28
11:30 pm
Diagnostic 19a (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.
L25 Mon, Dec 01 LLMs 2
TBD
DUE Mon, Dec 01
03:00 pm
Diagnostic 21a (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.
L26 Wed, Dec 03 Victory Lap
TBD
DUE Wed, Dec 03
03:00 pm
Diagnostic 22a (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.
L27 Fri, Dec 05 In-Class Final
DUE Fri, Dec 05
11:30 pm
project06 (Critters and LLMs) [ guide ]
It's here!
DUE Fri, Dec 12
11:30 pm
project07 (Minecraft Plugin) [ guide ]
The final project of CS 1...more turtles in the pond!
DUE Mon, Dec 15
12:00 am
Final
DUE Mon, Dec 15
12:00 am
Midterm