CS 1 (Fall 2024)

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

Most Recent Announcements

Due Next

Office Hours Status

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, and we have a message board called Ed where you can ask questions asynchronously.

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

Diagnostics Attempt #1 Website

Course Staff

Instructors

they/them
Book an appointment!
Annenberg 115
blank@caltech.edu
(626) 395-1765
Prof. Vanier
he/him
 
Annenberg 110
mvanier@cms.caltech.edu
(626) 395-3127

Teaching Assistants

Hopper
she/her
hopper@
Philippe des Boscs
he/him
pdesbosc@
Aiden Di Carlo
he/him
adicarlo@
Bisrat Kassahun
he/him
bkassahu@
Ellie Chen
she/her
echen2@
Felipe Cruz Falquez
he/him
fcruzfal@
Jinhuang (Jin) Zhou
he/him
jzhou2@
Maya Keys
she/her
mekeys@
Neev Mangal
he/him
nmangal@
Robert Reiden Walker
he/they
rrwalker@
Shallon Kobusinge
she/her
skobusin@
Shrishti Kulkarni
she/her
spkulkar@
Ying Tan
she/her
ytan2@

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

Reading Test Output – guide to reading the output of our tests

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, Sep 30 Computation and Algorithms in 2024 [ pdf ]
Variables, Types, Calling a Function,
Introduction to CS 1. Administrivia. Our first program!
L01 Wed, Oct 02 Introduction to Lists, Iteration, and Selection
lists, for Loops, if statements
Lists. for Loops. Basic if Statements.
R01 Fri, Oct 04 Recitation 01 [ pitfalls, cheatsheet, problems ]
Strings. Conditionals. for loops.
L02 Fri, Oct 04 Functions and Returns
Defining Functions
Writing our own functions. Tips, tricks, and pitfalls.
L03 Mon, Oct 07 Reading Documentation, Type Annotations, and More!
none.
How should you go about reading the project guides? What is a type really?
DUE Mon, Oct 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.
DUE Tue, Oct 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, Oct 09 Indefinite Loops
while Loops
while loops. More common loop patterns.
DUE Wed, Oct 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.
R02 Fri, Oct 11 Recitation 02 [ pitfalls, cheatsheet, problems ]
Functions. Cumulative algorithms.
L05 Fri, Oct 11 Doing It Again (and Loops and Lists)
More lists, tuples
More complicated loop and list patterns.
DUE Fri, Oct 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, Oct 14 Case Study: Wordle
list operations
An example program that synthesizes all that we’ve done so far!
DUE Mon, Oct 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 Tue, Oct 15
11:30 pm
project02 (battleship, part 2) [ guide ]
This project covers more fundamental programming concepts including functional decomposition and computational thinking.
L07 Wed, Oct 16 Working with Hardware
Dictionaries
Introducing the Trinkey which is a piece of hardware we will be working with in project03!
DUE Wed, Oct 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.
R03 Fri, Oct 18 Recitation 03 [ pitfalls, cheatsheet, problems ]
VPython, Dictionaries, and Loop Applications.
L08 Fri, Oct 18 Storing Mappings (Dictionaries)
Dictionaries

DUE Fri, Oct 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, Oct 21 Exceptions
Exceptions

DUE Tue, Oct 22
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 Tue, Oct 22
11:30 pm
project03 (morse code) [ guide ]
This project covers indefinite loops, dictionaries, and advanced string manipulation.
L10 Wed, Oct 23 vpython and using objects
TBD
DUE Wed, Oct 23
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.
R04 Fri, Oct 25 Recitation 04
L11 Fri, Oct 25 Mysteries and Tests!
TBD
L12 Mon, Oct 28 Cancelled due to Prof. Blank Illness
TBD
DUE Mon, Oct 28
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.
DUE Tue, Oct 29
11:30 pm
project04 (newton's cradle) [ guide ]
This project covers dictionaries and using objects.
L13 Wed, Oct 30 Midterm Review
TBD
DUE Wed, Oct 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.
DUE Wed, Oct 30
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.
R05 Fri, Nov 01 Recitation 05
L14 Fri, Nov 01 Recursion
TBD
DUE Fri, Nov 01
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.
L15 Mon, Nov 04 Enrichment Lecture 1
TBD
L16 Wed, Nov 06 Enrichment Lecture 2
TBD
DUE Wed, Nov 06
11:30 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.
R06 Fri, Nov 08 Recitation 06
L17 Fri, Nov 08 Enrichment Lecture 3
TBD
DUE Fri, Nov 08
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 Fri, Nov 08
11:30 pm
midterm (midterm exam) [ guide ]
Happy coding!
L18 Wed, Nov 13 ...why Java? why NOW?
TBD
R07 Fri, Nov 15 Recitation 07
L19 Fri, Nov 15 Structuring Code
TBD
L20 Mon, Nov 18 Objects and Classes
TBD
DUE Mon, Nov 18
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 Wed, Nov 20 Constructors and Instances
TBD
DUE Wed, Nov 20
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.
R08 Fri, Nov 22 Recitation 08
DUE Fri, Nov 22
12:00 am
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.
L22 Fri, Nov 22 Choosing and Using Fields
TBD
DUE Mon, Nov 25
12:00 am
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.
L23 Mon, Nov 25
DUE Mon, Nov 25
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.
DUE Tue, Nov 26
11:30 pm
project05 (equation balancer and solver) [ guide ]
This project covers using custom types and linear algebra operations in Python.
DUE Wed, Nov 27
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.
R09 Fri, Nov 29 Recitation 09
L24 Mon, Dec 02
DUE Mon, Dec 02
11:30 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.
L25 Wed, Dec 04
R10 Fri, Dec 06 Recitation 10
L26 Fri, Dec 06
DUE Sun, Dec 08
11:30 pm
project06 (Critters and LLMs) [ guide ]
It's here!
DUE Wed, Dec 11
11:30 pm
final (secret) [ guide ]
The FINAL goal of CS 1 (24fa)...more turtles in the pond!