Adventures in Advanced Symbolic Programming

As taught in: Spring 2009

Logo of MIT/GNU Scheme, the programming language used in this course, showing successively smaller versions of a shield containing a smaller shield, etc.

MIT/GNU Scheme logo. (Image courtesy of Harold Abelson and Gerald Sussman.)

Instructors:

Prof. Gerald Sussman

MIT Course Number:

6.945

Level:

Graduate

Course Features

Course Description

This course covers concepts and techniques for the design and implementation of large software systems that can be adapted to uses not anticipated by the designer. Applications include compilers, computer-algebra systems, deductive systems, and some artificial intelligence applications. Topics include combinators, generic operations, pattern matching, pattern-directed invocation, rule systems, backtracking, dependencies, indeterminacy, memoization, constraint propagation, and incremental refinement. Substantial weekly programming assignments are an integral part of the subject.

There will be extensive programming assignments, using MIT/GNU Scheme. Students should have significant programming experience in Scheme, Common Lisp, Haskell, CAML or some other "functional" language.