CS 3x (Spring 2026)

Welcome to CS 3! 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 3x. 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 Ethan, Adam, 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 Extension Requests

Course Staff

Instructors

he/him
Book an appointment!
Annenberg 122
eordentl@caltech.edu
they/them
Book an appointment!
Annenberg 115
blank@caltech.edu

Teaching Assistants

Reiden Walker
he/they
rrwalker@
Aaron Zhou
he/him
azhou7@
Alex Kumar
he/him
askumar@
Andrew Qin
he/him
asqin@
Carolyn Ruan
she/her
cruan@
Katia Avanesov
she/her
kavaneso@
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

Collaboration Policy – the course collaboration policy

Code Quality and Docs

Code Quality Guidelines – guidelines for how you should write C code

C Documentation – documentation for C standard library functions

Projects and Submission

Merge Requests – instructions on to make a merge request to complete reworks

Debugging with VSCode – an introduction to debugging strategies

Debugging Guide for C – a list of common error messages in C and potential causes

Schedule

L00 Mon, Mar 30 Introduction / Basic C
L01 Wed, Apr 01 Pointers (Linked Lists)
DUE Fri, Apr 03
11:30 pm
project00 (abc's) [ guide ]
This project helps us learn the basics of C.
L02 Mon, Apr 06 More Pointers (Stack vs Heap)
L03 Wed, Apr 08 More More Pointers (Addresses)
DUE Fri, Apr 10
11:30 pm
webserver01 (dictionary) [ guide ]
This project focuses on memory ownership and implementing a basic dictionary in C.
L04 Mon, Apr 13 Common C Bugs
L05 Wed, Apr 15 More More More Pointers
DUE Fri, Apr 17
11:30 pm
datastructures00 (packed_arrays) [ guide ]
In this project, we will try to optimize a data structure that we previously used in our webserver.
L06 Mon, Apr 20 String Library (Practicum)
DUE Wed, Apr 22
09:00 am
Quiz
L07 Wed, Apr 22
L08 Mon, Apr 27
L09 Wed, Apr 29
DUE Fri, May 01
11:30 pm
webserver02
L10 Mon, May 04
L11 Wed, May 06
DUE Fri, May 08
11:30 pm
datastructures01
L12 Mon, May 11
L13 Wed, May 13
DUE Fri, May 15
11:30 pm
webserver03
L14 Mon, May 18
DUE Wed, May 20
09:00 am
Midterm
L15 Wed, May 20
L16 Mon, May 25
L17 Wed, May 27
DUE Fri, May 29
11:30 pm
datastructures02
L18 Mon, Jun 01
L19 Wed, Jun 03
DUE Fri, Jun 05
11:30 pm
webserver04
DUE Wed, Jun 10
09:00 am
Final Exam