415 is handled by Oliver Kennedy. Please use him as your first port of call with 415 questions.
| August 28 | Introduction / Cooperative Multitasking: Implement a simple thread implementation and scheduler, synchronization primitives, and queues. Use these to build a simple application |
| September 4 | Project 1 Questions |
| September 11 | Project 1 Questions |
| September 18 | Preemptive Multitasking: Use clock interrupts to add preemption to your thread implementation and write a more complex scheduler. Additionally, add alarm and sleep functionality to your thread implementation. |
| September 25 | Project 2 Questions |
| October 2 | Filesystems: Implement a simple filesystem, create a synchronous interface to the filesystem, and write a simple shell to test the filesystem. Optionally (Extra credit) build an application which showcases the features of your operating system. |
| October 9 | Fall Break |
| October 16 | Project 3 Questions |
| October 23 | TBD |
| October 30 | Unreliable Networking: Implement a network interface multiplexing protocol a'la UDP. |
| November 6 | Project 4 Questions |
| November 13 | Reliable Networking: Use your UDP implementation to build a reliable transport protocol a'la TCP |
| November 20 | Project 5 Questions |
| November 27 | Project 5 due / TBD |