Date | Topic | Reading |
---|---|---|
9/11 | Introduction | Parnas 72, Hanson 97 |
9/16 | ML | Ullman 94 |
9/18 | ML modules | Tofte 96 |
9/23 | Modula-3 partial revelation | Cardelli 91, Freeman 95 |
9/25 | Modula-3 IO Streams (lecture by Norman Ramsey) | Brown 91 |
9/30 | IO streams using ML functors | Appel 94 |
10/2 | Higher-order functors | MacQueen 94 |
10/7 | Translucent sums [L. Bauer] | Lillibridge 97 |
10/9 | Java [H. Zhao] | Arnold 96 |
10/14 | IO streams in Java [J. Hainsworth] | Gosling 96 |
10/16 | Hierarchical modularity (lecture by Matthias Blume) | Blume 97b |
10/21 | Modules in O-O languages (lecture by Kim Bruce) | Bruce 97 |
10/23 | Theory of linking [A. Ahmed] | Cardelli 97 |
Midterm break | ||
11/4 | What makes security hard (lecture by Ed Felten) | |
11/6 | Software fault isolation [Y. Shuf] | Wahbe 93 |
11/11 | SPIN [D. Balfanz] | Bershad 95 |
11/13 | Static typing, dynamic linking | Dean 97 |
11/18 | Extensible Security Architectures for Java [D. Wallach] | Wallach 97 |
11/20 | Examples of applications that need security | |
11/25 | Interfaces, tools, and access control for secure programming | |
12/2 | Cross-module optimization (lecture by Matthias Blume) | Blume 97a |
12/4 | Classes, objects and data abstraction (lecture by Kathleen Fisher) | Fisher 97 |
12/9 | Proof-carrying code S. Kumar | Necula 97 |
12/11 | OOP in the real world [B. Dressner] | Jacobson 87 |