Welcome to CS 1! We’re super excited to have you here this term!
Most Recent Announcements
-
quiz01 grades and feedback released on gradescope!We've graded quiz01 and released the grades and feedback on gradescope! If you have any questions, please email cs001@caltech.edu. If you'd like to make a regrade request, you must do so on gradescope before Friday night; we will not accept any regrade requests after that point!...(continued here)
-
Extra Conceptual OH TODAY from 4pm-6pm in Prof. Blank's Office! (Also, quiz01 is tomorrow!)I am holding extra office hours today to help you prepare for quiz01 (which is tomorrow in lecture (!))! I have a few practice problems, and I'm happy to go through concepts or diagnostics! Please stop by my office (ANB 115) between 4pm-6pm with any questions you have!...(continued here)
Due Next
-
project03 (morse code) due @ 11:30 pm on Tue, Apr 29 -
Diagnostic 9a due @ 11:30 pm on Wed, Apr 30
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
Instructors
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
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
list s, 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 list s, tuple s
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 |