| CS 330 | Home | Schedule | Resources |
| Week | Date | Topic | Reading | HW | Slides/code |
| 1 | Aug 29 | Introduction and declarative kernel concepts | Preface, 1, 2-2.1.1,2.2-2.3, Appendix A | 1 | 1 1.oz |
| Declarative Programming Techniques | |||||
| 2 | Sept 5 | Iteration, and Recursion on lists | 3 - 3.3 | 2 | 2 |
| 3 | Sept 12 | Accumulators, and Recursion on trees | 3.4 - 3.4.2 | 3 | 3a 3b |
| 4 | Sept 19 | Recursion, Higher-Order Programming | 3.4.3 - 3.6 | 4 | 4a, 4b .oz |
| 5 | Sept 26 | Abstract Data Types, Software Components | 3.7 - end | 5 | 5a,
5b,
5c adt.oz gui.oz |
| Declarative Model Semantics | |||||
| 6 | Oct 3 | Kernel language, Single-Assignment Store | 2 - 2.4 | 6 | 6a 6b |
| 7 | Oct 10 | Memory management, Translating a Practical Language | 2.5 - end, B, C, D | 7 | 7 |
| Concurrency | |||||
| 8 | Oct 17 | Declarative Concurrency with Threads, Streams | 4 - 4.4 | 8 | 8a 8b .oz |
| 9 | Oct 24 | Lazy execution, Modeling Issues | 4.5 - end | 9 | 9 a.oz b.oz c.oz |
| 10 | Oct 31 | Message Passing Concurrency | 5 | 10 | 10 .oz |
| Stateful Programming | |||||
| 11 | Nov. 7 | Explicit State | 6 - 6.4 | 11 | 11a
11b
a.java b.java .cpp .c .oz |
| 12 | Nov 14 | Object-Oriented Programming | 6.5-end, 7 | 12 | 12a 12b |
| 13 | Nov 21 | Object-Oriented Programming | 7, 8 - 8.2 | _ | 13a 13b |
| Relational Programming | |||||
| 14 | Nov 28 | Relational Programming | 9 | 13 | 14 |
| Specialized Computation Models | |||||
| 15 | Dec 5 | GUIs, Distributed, Constraint-based | Selections from 10-12 | _ | 15 |
| Dec 14 | Final exam: 7-10am Wednesday | ||||