| SES # | READING | ASSIGNMENTS |
|---|---|---|
| 1 | Static Checking | |
| 2 | Basic Java | |
| 3 | Testing | Problem Set 0 Beta Due |
| 4 | Code Review | Problem Set 0 Code Review Due |
| 5 | Version Control | |
| 6 | Specifications | Problem Set 0 Final Due |
| 7 | Designing Specifications | |
| 8 | Avoiding Debugging | |
| 9 | Mutability and Immutability | Problem Set 1 Beta Due |
| 10 | Recursion | Problem Set 1 Code Review Due |
| 11 | Debugging | |
| 12 | Abstract Data Type | Problem Set 1 Final Due |
| 13 | Abstraction Functions and Rep Invariants | |
| 14 | Interfaces | |
| 15 | Equality | Problem Set 2 Beta Due |
| 16 | Recursive Data Types | Problem Set 2 Code Review Due; Quiz 1 |
| 17 | Regular Expressions And Grammars | Problem Set 2 Final Due |
| 18 | Parser Generators | |
| 19 | Concurrency | Problem Set 3 Beta Due |
| 20 | Thread Safety | Problem Set 3 Code Review Due |
| 21 | Sockets and Networking | |
| 22 | Queues and Message-Passing | Problem Set 3 Final Due |
| 23 | Locks and Synchronization | |
| 24 | Graphical User Interfaces | |
| 25 | Map, Filter, Reduce | Problem Set 4 Beta Due |
| 26 | Little Languages | Problem Set 4 Final Due; Quiz 2 |
| 27 | Team Version Control |
Projects were due two weeks after the last class.