CS 3 (Spring 2023)

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

Course Staff

Instructor

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

Teaching Assistants

Hopper
she/her
hopper@
Alice Cheng
she/her
aycheng@
Sarah Dunbar
she/her
sdunbar@
Eshani Patel
she/her
ejpatel@
Devin Chotzen-Hartzell
he/him
dchotzen@
Eli Kugelsky
he/him
ekugelsk@
Enoch Luk
he/him
eluk@
Jun Hyuk Kwak
he/him
jkwak@
Jia Yue Wu
she/her
jwu7@
Leo Jenkins
he/him
lbjenkin@
Leo Zhang
he/him
lzhang3@
Markus Lendermann
he/him
mlenderm@
Maria Vazhaeparambil
she/her
mvazhaep@
Sahil Azad
he/him
sazad@
Rachael Kim
she/her
subinkim@
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

Getting Help in CS3 – a description of the course policy for questions and office hours

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 03 Introduction [ pdf ]
L01 Wed, Apr 05 Pointers [ pdf ]
Project00 (abc's) due @ 11:30 pm on Thu, Apr 06
L02 Mon, Apr 10 Debugging [ pdf ]
L03 Wed, Apr 12 More Pointers
Project01 (star) due @ 11:30 pm on Thu, Apr 13
L04 Mon, Apr 17 Abstraction in C
Practicum (code quality cycle 1) due @ 11:30 pm on Mon, Apr 17
L05 Wed, Apr 19 Cancelled: Adam Ill
Project02 (gravity) due @ 11:30 pm on Thu, Apr 20
L06 Mon, Apr 24 Design Concepts & Libraries [ pdf ]
Practicum (regex stage 1) due @ 11:30 pm on Mon, Apr 24
L07 Wed, Apr 26 Addresses, Pointers, and Memory, Again! [ pdf ]
Project03 (scenes) due @ 11:30 pm on Thu, Apr 27
L08 Mon, May 01 How I Terminal?
Practicum (code quality cycle 2) due @ 11:30 pm on Mon, May 01
L09 Wed, May 03 Makefiles
Project04 (forces) due @ 11:30 pm on Thu, May 04
L10 Mon, May 08 git
L11 Wed, May 10 Intrusive Data Structures
Project05 (collisions) due @ 11:30 pm on Thu, May 11
Practicum (code quality cycle 3) due @ 11:30 pm on Mon, May 15
L12 Wed, May 17 TBD
Project06 (resolution) due @ 11:30 pm on Thu, May 18
L13 Wed, May 24 Victory Lap
:( Mon, May 29 No Class: Memorial Day
Practicum (code quality cycle 4, regex stage 2) due @ 11:30 pm on Mon, May 29
L14 Wed, May 31
Practicum (code quality cycle 5) due @ 11:30 pm on Mon, Jun 12
Game () due @ 11:30 pm on Wed, Jun 14
Practicum (regex stage 3) due @ 11:30 pm on Fri, Jun 16