| Date | Topic | Reading | HW | |
|---|---|---|---|---|
| Week 1 | ||||
| Jan 31 | Introduction and Course Overview | |||
| Feb 02 | Introduction to UNIX and the shell | Read LCL, Chapters 1-3 Run the vim and emacs tutorials |
HW0 | |
| Week 2 | ||||
| Feb 07 | UNIX Commands | Read LCL, Chapters 4-8 | ||
| Feb 09 | Version control and git | Read LCL, Chapters 9-11. Git Book, sections 1.1, 1.3, 1.6, 1.7, 2.1, and 2.2 Interactive Git Tutorial |
Exercise 2 Exercise 3 Exercise 4 |
|
| Week 3 | ||||
| Feb 14 | Introduction to C and Compilation | Effective C Ch. 1 | HW1 | Exercise 7 |
| Feb 16 | Makefiles | A short introduction to Make Variables in Make Implicit rules in Make Standard targets in Makefiles |
||
| Week 4 | ||||
| Feb 21 | Objects, Functions, and Types | Effective C Ch. 2 | HW2 | |
| Feb 23 | Arithmetic Types | Effective C Ch. 3 Dis Ch. 4.1 - 4.6 |
||
| Week 5 | ||||
| Feb 28 | Expressions and Operators | Effective C Ch. 4 | ||
| Mar 02 | Control Flow | Effective C Ch. 5 | HW3 | |
| Week 6 | ||||
| Mar 07 | Dynamically Allocated Memory | Effective C Ch. 6 | ||
| Mar 09 | Debugging, Testing, and Analysis | Effective C Ch. 11 DiS Ch. 3.1 - 3.4 21st Century C, Ch. 2 |
||
| Week 7 | ||||
| Mar 14 | Project Proposals | |||
| Mar 16 | No class (RJH at SIGCSE) | HW4 | ||
| Fall Break | ||||
| Week 8 | ||||
| Mar 28 | Characters and Strings | DiS 2.6 | ||
| Mar 30 | Self-referential Structures | DiS Ch. 2.5, 2.7 | ||
| Week 9 | ||||
| Apr 04 | Input/Output | Effective C Ch. 8 | HW5 | |
| Apr 06 | Input/Output | |||
| Week 10 | ||||
| Apr 11 | Advanced git | HW6 | ||
| Apr 13 | Compression | Read HW8 | ||
| Week 11 | ||||
| Apr 18 | Open Source Software | HW7 | ||
| Apr 20 | System Calls | DiS 13.0 - 13.1 | ||
| Week 12 | ||||
| Apr 25 | Processes | DiS 13.2 | ||
| Apr 27 | Interprocess Communication | DiS 13.4 | ||
| Week 13 | ||||
| May 02 | Networking | |||
| May 04 | Virtual Memory | DiS 13.3 | HW8 | |
| Week 14 | ||||
| May 09 | TBD | |||
| May 11 | Buffer Overflows |