6.S081 Large-scale Symbolic Systems


Undergraduate - AUS
Units: 3-0-9
Schedule: MWF11, room 35-310
Meets with 6.945 (H)
Instructor:  Prof. Gerald Sussman, gjs@csail.mit.edu)
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. Means for decoupling goals from strategy. Mechanisms for implementing additive data-directed invocation. Work with partially-specified entities. Manage multiple viewpoints. Topics include combinators, generic operations, pattern matching, pattern-directed invocation, rule systems, backtracking, dependencies, indeterminacy, memoization, constraint propagation, and incremental refinement. Comparable programming experience required.  Students taking the graduate version may complete additional assignments.