CS22

Syllabus

The schedule below is approximate.

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, big O, order of growth, log2n, abstraction, procedures as parameters, lambda, procedures as returned values
pp. 1-78
4-6 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
6-10 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
11-14 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