- Jan 10: Intro to Scheme
- Evaluating atoms and lists. Bindings. The list function,
single quote notation, cons, car/cdr. Exercises in
constructing and extracting pieces of lists.
- Jan 17: Scheme and functions
- Anonymous functions. Higher-order functions. map,
filter, and reduce. Exercises using recursion over lists and
- Jan 24: Scheme wrapup (XML-like queries)
- XML and document markup languages. The equivalence of XML
and Lisp/Scheme s-expressions. Extended example of recursive
data structure manipulation in Scheme: a simple query function
that extracts subtrees from a (XML-like) semistructured
document tree. Some sermonizing.
- Feb 7: ML and types
- ML, patterns, type inference, type synonyms and
- Feb 14: ML module system and wrapup
- Principles of module systems, the ML module system, mutual
recursion, currying. (Note: We actually spent most of this
section talking about the upcoming ML project, not on the
material on these handouts.)
- Feb 20: Smalltalk intro (slide versions are linked from this page)
- Smalltalk core expression language: bindings, expressions,
closures, and a few objects. We also covered Keunwoo's
Squeak environment slides.
- Feb 27: Smalltalk collections
- Smalltalk idioms for abstract base classes. Two
alternative designs of lists.
- March 7: Review: message sends and super;
also, Why programming languages?
- The differing semantics of ordinary and super sends. A
short polemic on the value of a diverse linguistic diet.