Topic classes cover one of 11 topics from the course syllabus, or a student-chosen topic if applicable. Students must sign up in advance for a particular topic.
Design classes involve the discussion and design of a large scale system (on the level of an operating system). The class will design parts of this system over several classes, guided by the student discussion leader. This includes design classes devoted to the final projects.
Week | Date | Topic |
3 | 2/18 | Design of Final Project #1 |
4 | 2/23 | Design of Final Project #1 |
4 | 2/25 | Design of Final Project #1 |
5 | 3/2 | Multiple Inheritance |
5 | 3/4 | Strong Abstractions |
6 | 3/9 | Algorithmic and Object Abstractions |
6 | 3/11 | Bidirectional Abstraction and Protected Interfaces |
7 | 3/23 | Wrap up of abstraction, Class-level Modularity |
7 | 3/25 | Component Object Models |
8 | 3/30 | Design of Final Project #2 |
8 | 4/1 | Design of Final Project #2 |
9 | 4/6 | Design of Final Project #2 |
9 | 4/8 | Scripting Languages and Scripting Support |
10 | 4/13 | Structuring for Incremental Development |
10 | 4/15 | Structuring for Future Expansion, Modification of Code by others |
11 | 4/20 | Advanced Topices - Versioning, Scripting |
11 | 4/22 | Large Scale Design Class 1 |
12 | 4/27 | Large Scale Design Class 2 |
12 | 4/29 | Large Scale Design Class 3 |