Course Schedule and Materials (Tentative)

Spring 2026


(L) = Lectures; (R) = Recitation

Theme Date Topic Materials Due (Before the Class)
C Programming Week 1 Jan 12 (L) Course Introduction Slides
Jan 14 (L) Variables and Functions Code Anonymous Survey (0.5%)
Jan 14 (R) Environment Setup Slides
LRC Setup Script
C++ Test Run
Week 2 Jan 19 Martin Luther King Jr. Day (No Class)
Jan 21 (L) Arrays and Strings Code
Printf and Format Specifier
Jan 21 (R) C/C++ Programming in VSCode Slides
Week 3 Jan 26 (L) Pointers and Memory Basics Code
How to read complex type definitions
PA #0 Due (2%)
Jan 28 (L) Memory Management in C Code
Jan 28 (R) In-Class Quiz
Week 4 Feb 2 (L) Structs Code (Heap) Code (Struct) PA #1 Due (3%)
Feb 4 (L) Structs Excercise Code (Struct) Code (Calculator)
Feb 4 (R) Valgrind and AddressSanitizer Slides
Code
Week 5 Feb 9 (L) Advanced C Topics Code PA #2 Due (3%)
Feb 11 (L) Makefile Code
Feb 11 (R) Version Control and Git Slides
Introductory Algorithm and Data Structures Week 6 Feb 16 (L) Searching & Complexity timer.h search.c PA #3 Due (3%)
Feb 18 (L) Sorting helper.h sort.c
Feb 18 (R) Complexity Review
Week 7 Feb 23 (L) More Algorithm Complexity and Sorting Slides PA #4 Due (3%)
Feb 25 (L) Recursion Slides Code
Feb 25 (R) Exam 1 Review Slides
FRQAnswer
Week 8 Mar 2 (L) Linked Lists Slides; Code
Tastes in Code and Linked Lists (Linus Torvalds)
Mar 4 (L) Trees Slides
Code
Code for Calculator Using an Expression Tree (changes are made in calculator.c)
Week 9 Mar 9 (L) Hash Tables Slides Code
Mar 11 Exam 1 (20%)
Week 10 Spring Break (Optional Reading: "Why We Sleep" by Matthew Walker)
Week 11 Mar 23 (L) Exam 1 Solutions
C++ Programming Mar 25 (L) Introduction to C++ Code
Mar 25 (R) PA #5 Hints Slides
Week 12 Mar 30 (L) Object Lifetime Slides Code
Apr 1 (L) Inheritance and Polymorphism I bad_blocks.cpp good_blocks.cpp PA #5 Due1 (7%)
Apr 1 (R) PA #5 Checkout Sign-Up Sheet
Week 13 Apr 6 Exam 2 (20%)
Apr 8 (L) Inheritance and Polymorphism II
Apr 8 (R) Exam 2 Solutions
Week 14 Apr 13 (L) Containers
Apr 15 (L) Templates
Apr 15 (R) PA #6 Hints
Week 15 Apr 20 (L) System Programming
Apr 22 (L) Final Review2 PA #6 Due1 (7%)
Apr 22 (R) PA #6 Checkout
Apr 27 Exam 3 (20%)

1 Due before the corresponding recitation session
2 With free food!