Syllabus
| Week | Topics | Text |
| 1-3 | BUILDING ABSTRACTIONS WITH PROCEDURES the programming process, environments and naming, procedure evaluation, the conditional, linear recursion and iteration, tree recursion, abstraction, procedures as parameters, lambda, procedures as returned values |
pp. 1-78 |
| 3-5 | BUILDING ABSTRACTIONS WITH DATA data abstraction, constructors and selectors, lists, heirarchichal data, trees, quote, examples: symbolic differention, sets and information retrieval, multiple representations of a type, data directed programming, generic operators, message passing, example: symbolic algebra |
pp. 79-216 |
| 5-8 | MODULARITY, OBJECTS, STATE assignment and state, binding and stack frames, scope and dereferencing, mutable lists, queues, tables, simulation of logic circuits, constraints, streams, map, delayed evaluation, streams to model local state |
pp. 217-358 |
| 9-12 | METALINGUISTIC ABSTRACTION designing languages, eval for a subset of scheme, (written in scheme), binding and stack frames (again), static and dynamic scope, lazy evaluation, non-deterministic computing, efficiency |
pp. 359-437 |
| 12-13 | MORE PROGRAMMING LANGUAGE DESIGN semantic issues, parameter transmission, logic programming if time |
references TBA |