Topics Covered by Day
August
25: intro, simple oz examples
27: tuples, records, lists, simple recursion, tail recursion
September
1: kernel language, list recursion functions, map
3: lambda functions, dynamic vs static scoping, filter, foldl, foldr, zip, unzip
8: 2.6 (kernel language to practical language)
10: 3.1—3.3: declarativeness, iteration, recursion
15: 3.4, up to 3.4.4 Difference lists
17: 3.4, flatten lists through queues
22: 3.4, trees up to DFS, red-black trees
24: 3.6, higher-order programming
29: 3.7 abstract data types, 3.8 nondeclarative needs, 3.9 programming in the small
October
1: 4.1—4.2, declarative concurrency, threads, interleaving and causal ordering
6: 4.3, streams, logic gates and circuits
8: skew binary random access lists
13: 4.5, lazy execution
20: 4.5, worst-case persistent queues, Haskell
22: 5.1—5.3, message-passing concurrency
27: 5.4—5.5, lift example
29: Erlang intro
November
3: 6.1—6.4, explicit state and data abstractions
5: 6.5—6.7, explicit state vs declarative, transitive closure example
10: python (Curtis)
12: language assignments, inheritence implementation/virtual tables in C++
19: 7.1—7.3, OOP, classes, methods, attributes, inheritence, self
24:
December
1:
3:
8:
10:



