| Date | Meeting | Material covered | Relevant reading |
| 3/26 | Lecture 1 | Introduction to the course and C (libraries and control structures) | |
| 3/27 | Lab 1 | Finding primes | |
| 3/28 | Lecture 2 | Man pages; pointers | Mystery code |
| 3/31 | Lecture 3 | Arrays, strings, buffer overflows | |
| 4/2 | Lecture 4 | Finish pointers; History of OSes | Section 1.2 |
| 4/3 | Lab 2 | Implementing file copy | |
| 4/4 | Lecture 5 | Lab debrief; Structs; OS concepts | Sections 1.4-1.7 |
| 4/7 | Lecture 6 | Process life cycle | Section 2.1 |
| 4/9 | Lecture 7 | Scheduling; File naming | Sections 2.4 and 4.1 |
| 4/10 | Lab 3 | Implementing a simple shell | |
| 4/11 | Lecture 8 | Implementing files; Begin directories | Section 4.3 |
| 4/14 | Lecture 9 | Directories and other FS issues | Sections 4.2 and 4.4 |
| 4/16 | No class - work on midterm | ||
| 4/17 | No class - work on midterm | ||
| 4/18 | Lecture 10 | Introduction to networking; Reference models | Networks sections 1.3 and 1.4 |
| 4/21 | Lecture 11 | Begin interprocess communication | Section 2.3; handout |
| 4/23 | Lecture 12 | Go over exam; Pipes; Semaphores; Intro to dining philosophers | Section 2.3 |
| 4/24 | Lab 4 | Input redirection | |
| 4/25 | Lecture 13 | Dining philosophers; Readers and Writers | Section 2.5; handout |
| 4/28 | Lecture 14 | Threads; Begin detecting deadlock | Sections 2.2, 6.1-6.4, 6.6 |
| 4/30 | Lecture 15 | Deadlock detection and prevention | |
| 5/1 | Flunk Day! | ||
| 5/2 | Lab 5 | Issues in multi-threaded programming | |
| 5/5 | Lecture 16 | More deadlock; Allocation of IP addresses | Networks 5.6.2; cartoon |
| 5/7 | Lecture 17 | Address allocation by CIDR; NAT | |
| 5/8 | Lab 6 | Sockets | |
| 5/9 | Lecture 18 | Separate compilation; make; IP header | |
| 5/12 | Lecture 19 | finish IP header; UDP; error detection/correction | Network 3.2 and 6.4 |
| 5/14 | Lecture 20 | Finish error correction/detection; begin TCP | Network 6.5 |
| 5/15 | Lab 7 | Sending numbers over the network | |
| 5/16 | Lecture 21 | finish TCP | |
| 5/19 | Lecture 22 | DNS; HTTP | Sections 7.1 and 7.3 |
| 5/21 | Lecture 23 | email: SMTP, POP, IMAP | Network 7.2 |
| 5/22 | Lab 8 | Using UDP | |
| 5/23 | Lecture 24 | base64 encoding; MIME | Network 7.2.3 |
| 5/26 | Lecture 25 | ALOHA | Network 4.2.1 |
| 5/28 | Lecture 26 | Manchester encoding; RFCs | |
| 5/29 | Lab 9 | Using a debugger | |
| 5/30 | Lab 10 | Timeouts and retransmission | |
Sections in "Networks" refer to Tanenbaum's "Computer Networks".