| SES # | TOPICS | KEY DATES |
|---|---|---|
| 1 | Lec #1: Static checking | Problem set 0 due |
| 2 | Lec #2: Test-first programming | |
| 3 | Lec #3: Specifications | Problem set 1 due |
| 4 | Lec #4: State machines | Problem set 2 due |
| 5 | Lec #5: Regular expressions and grammars | |
| 6 | Lec #6: Abstract data types | Problem set 3 due |
| 7 | Lec #7: Recursive data types | |
| 8 | Lec #8: Interpreters and visitors | Problem set 4 due |
| 9 | Lec #9: Review |
Project 1 out Quiz 1 |
| 10 | Team worktime (no class) | |
| 11 | TA/team meetings | |
| 12 | Team worktime | |
| 13 | Lec #10: Concurrency | Project 1 due |
| 14 | Lec #11: Processes and sockets | |
| 15 | Lec #12: Thread safety | Problem set 5 due |
| 16 | Lec #13: Synchronization | |
| 17 | Lec #14: Graphical user interfaces | Problem set 6 due |
| 18 | Lec #15: Map, filter, reduce | |
| 19 | Lec #16: Little languages | Problem set 7 due |
| 20 | Team worktime |
Project 2 out Quiz 2 |
| 21 | Team worktime | |
| 22 | Team worktime | Project 2 milestone 1 due |
| 23 | TA/team meetings | |
| 24 | Team worktime | Project 2 milestone 2 due |
| 25 | TA/team meetings | |
| 26 | Team worktime | Project presentations for award consideration |
| 27 | Conclusion |
Project 2 due Project 2 reflections |
