Welcome to CS 1! We’re super excited to have you here this term!
Most Recent Announcements
-
Reminders from the Victory Lap LectureAs always, feel free to email us at CS001@caltech.edu if you have any questions! ...(continued here)
-
Extra Office Hours (for ANY questions) with Prof. Blank today from 1:30pm-3pm!I've decided to hold extra office hours today from 1:30pm-3pm in my office (ANB 115)! Feel free to stop by with course questions, non-course questions, or even just to say hi and chat! :)...(continued here)
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
Course Staff
Instructor
Leadership


Teaching Assistants













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 |

