| CS 330 | Home | Schedule | Resources |
| Week | Date | Topic | Reading | HW | SG | Slides/code |
| 1 | Jan 9 | Introduction and Oz Tutorial | Preface, 1 Appendix A | 1 | 1 | 1 1.oz |
| Declarative Model Semantics | ||||||
| 6 | Jan 18 | Syntax, Semantics, Stores, Environments, Declarative datatypes | 2 - 2.3, B | 2 | 2 | 1 2-3 |
| 7 | Jan 23 | Abstract machine, Formal Kernel Language Semantics, Language translation | 2.4, 2.6, skim C | 3 | 3 | 4 |
| 2 | Jan 30 | Memory Management, Exceptions, Unification, Dynamic and Static Typing | 2.5, 2.7 - end | 4 | 4 | 5,7 |
| Declarative Programming Techniques | ||||||
| 3 | Feb 6 | Recursion as Iteration, Type-directed design | 3 - 3.3.3 | 5 | - | 1 2-3 |
| 3 | Feb 13 | Accumulators and Invariants, Recursion on Lists | 3.4 - 3.4.4 | 6 | 6 | 3-4 4b |
| 4 | Feb 21 | Higher-Order Programming | 3.4.8, 3.6 | 7 | 7 | 6 .oz |
| 5 | Feb 28 | ADTs, Software Components | 3.7 - end | 8 | 8 | 7 8 9 8.oz |
| Concurrency | ||||||
| 8 | Mar 6 | Threads, Streams, Lazy execution | 4 - 4.5 | 9 | 9 | 4a 4a.oz 4b 4b.oz Lazy.oz |
| 10 | Mar 13 | Soft real-time, Haskell, Message Passing Concurrency | 4.6-end | 10 | 10 | 4c
soft.oz
pong.oz |
| Stateful Programming | ||||||
| 11 | Mar 20 | Explicit State | 5 - 5.2.3, 6 - 6.4.3 | 11 | 11 | 5 .oz 6a |
| 12 | Mar 27 | Polymorphism, parameter passing mechanisms | 6.4.4-6.5.3 | 12 | 12 | 6b
6c a.java obj.java .cpp .c .oz |
| 13 | Apr 3 | Object-Oriented Programming | 7, 8 - 8.2 | 13 | 13 | 7a 7b |
| Other Models | ||||||
| 14 | Apr 10 | Relational Programming, Specialized Computation Models, Learning new languages | Selections from 9-12, D | 14 | 14 | 9 L .oz |
| 15 | Apr 17 | Review | Review | 15 | _ | 15 |
| Apr 22 Apr 21 |
Section 2 Final: 2:30-5:30pm Saturday Section 3 Final: 11-2pm Friday | |||||