CS 3 (Spring 2024)

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

Announcements

Due Next

Calendar

Wellness and Inclusion

It is very important to us that you succeed in CS 3. We provide many extra resources to help you. Adam and the TAs hold many office hours, and we have a discord 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 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 Grades

Course Staff

Instructor

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

Teaching Assistants

Hopper
she/her
hopper@
Eshani Patel
she/her
ejpatel@
Max Chen
he/him
mfchen@
Antonio Caceres
he/they
acaceres@
Jia Yue Wu
she/her
jwu7@
Leo Jenkins
he/him
lbjenkin@
Madeline Egan
she/her
msegan@
Nico Adamo
he/him
nadamo@
Sahil Azad
he/him
sazad@
Vansh Tibrewal
he/him
vtibrewa@
Winter Pearson
they/them
winter@

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

Pair Programming – introduction to pair programming

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 and Emscripten – an introduction to debugging strategies

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

Schedule

L00 Mon, Apr 01 Introduction / Basic C [ pdf ]
L01 Wed, Apr 03 Pointers [ pdf ]
Project00 (project00) due @ 11:30 pm on Fri, Apr 05
L02 Mon, Apr 08 More Pointers [ pdf ]
Mini_Game_Design_Doc (mini_gdd) due @ 11:30 pm on Mon, Apr 08
Diagnostic_Attempt_2 (attempt2) due @ 11:30 pm on Mon, Apr 08
L03 Wed, Apr 10 Common C Bugs [ pdf ]
Solo01 (solo01) due @ 11:30 pm on Sat, Apr 13
Project01 (project01) due @ 11:30 pm on Sat, Apr 13
L04 Mon, Apr 15 Abstraction in C [ pdf ]
Diagnostic_Attempt_2 (attempt2) due @ 11:30 pm on Mon, Apr 15
L05 Wed, Apr 17 String Library (Practicum) [ pdf ]
Project02 (project02) due @ 11:30 pm on Fri, Apr 19
L06 Mon, Apr 22 Addresses and More More Pointers [ pdf ]
Diagnostic_Attempt_2 (attempt2) due @ 11:30 pm on Mon, Apr 22
L07 Wed, Apr 24 More More More Pointers [ pdf ]
Solo02 (solo02) due @ 11:30 pm on Fri, Apr 26
Project03 (project03) due @ 11:30 pm on Sun, Apr 28
L08 Mon, Apr 29 Image Library (Practicum) [ pdf ]
Diagnostic_Attempt_2 (attempt2) due @ 11:30 pm on Mon, Apr 29
L09 Wed, May 01 BMP Library [ code ]
Project04 (project04) due @ 11:30 pm on Sat, May 04
L10 Mon, May 06 UNIX Regular Expressions [ code ]
Diagnostic_Attempt_2 (attempt2) due @ 11:30 pm on Mon, May 06
L11 Wed, May 08 Regular Expression Library (Practicum) [ code ]
Project05 (project05) due @ 11:30 pm on Sat, May 11
L12 Mon, May 13 Mystery Password Hunt
Diagnostic_Attempt_2 (attempt2) due @ 11:30 pm on Mon, May 13
L13 Wed, May 15 Bitops [ pdf ]
Solo03 (solo03) due @ 11:30 pm on Fri, May 17
Project06 (project06) due @ 11:30 pm on Sat, May 18
L14 Mon, May 20 Llama VM [ pdf ]
Game_Design_Document (gdd) due @ 11:30 pm on Mon, May 20
Diagnostic_Attempt_2 (attempt2) due @ 11:30 pm on Mon, May 20
L15 Wed, May 22 LLama VM Part 2
:( Mon, May 27 No Class: Memorial Day
Diagnostic_Attempt_2 (attempt2) due @ 11:30 pm on Mon, May 27
L16 Wed, May 29 Victory Lap
Diagnostic_Attempt_2 (attempt2) due @ 11:30 pm on Mon, Jun 03
Game (game) due @ 11:30 pm on Sun, Jun 09
Solo04 (solo04) due @ 11:30 pm on Sun, Jun 09