| Week | Mon. | Wed. | Fri. | HWx (due after weekend) |
|---|---|---|---|---|
| 1 | 1/10 | 1/12 | 1/14 | |
| Starting C | Syllabus [v] | Git [v] | HW0 Review [v] | HW0: x_sort (Bubble Sort) [Code] |
| 2 | 1/17 | 1/19 | 1/21 | |
| Structures | King Day | Standard I/O [v] | Structs [v] | |
| 3 | 1/24 | 1/26 | 1/28 | |
| Memory Use | Structures and Headers [v] | Two Dimensional Arrays [v] | Two Dimensional Arrays II [v] | HW1: plist (Pythonic List) [Code] |
| 4 | 1/31 | 2/2 | 2/4 | |
| Memory Allocation | Pythonic List [-] | Debugging Pythonic List [v] | Olympics Opening Day [v] | |
| 5 | 2/7 | 2/9 | 2/11 | |
| Scientific Computing | Pixels and Memory [v] | Graphics and Geometry [v] | C for Scientific Computing [v] | |
| 6 | 2/14 | 2/16 | 2/18 | |
| Information Encoding | Complex Planes [v] | Complex Planes II [-] | Bit Encoding [v] | HW2: brot (Buddhabrot) [Code] |
| 7 | 2/21 | 2/23 | 2/25 | |
| Review | Mid-Semester Break | Buddhabrot Review | Midterm Review [v] | Practice Midterm I |
| 8 | 2/28 | 3/2 | 3/4 | |
| Midterm 1 | Midterm 1 | Extra Credit [v] | Incrementation [v] | |
| 9 | 3/7 | 3/9 | 3/11 | |
| Sockets | Sockets [v] | snek.c [v] | Busy Wait [v] | Check-in 0 |
| 10 | 3/14 | 3/16 | 3/18 | |
| Systems Libraries | Error Checking [v] | ncurses [v] | Workday | Check-in 1 or 2 |
| 11 | 3/21 | 3/23 | 3/25 | |
| OFF | OFF | OFF | OFF | |
| 12 | 3/28 | 3/30 | 4/1 | |
| System Theory | RM | EDF | ROP Gadgets | Check-in 1 and 2 |
| 13 | 4/4 | 4/6 | 4/8 | Network Theory | Distributed Consensus | Byzantine Generals | Paxos | Check-in 3 |
| 14 | 4/11 | 4/13 | 4/15 | |
| Midterm 2 | Reserved | Research Fair | Reserved | |
| 15 | 4/18 | 4/20 | 4/22 | |
| Efficiency | Vector Instructions | Micro-ops | Specialized ops | Check-in 4 |
| 16 | 4/25 | 4/27 | 4/29 | |
| Enrichment | C++ Part 1 | C++ Part 2 | Study Days | Project (snek) (Due 5/3) [v] |