Spring 2020: 6.945 (grad AAGS), 6.905 (AUS)

Adventures in Advanced Symbolic Programming

Officially: Large-scale Symbolic Systems

3-0-9, Grad AAGS Level, AI Concentration

Gerald Jay Sussman,

with Kenny Chen


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. Working with partially-specified entities. Managing multiple viewpoints. 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 other "functional" language.

This subject is appropriate for undergraduates who have the prerequisite experience.

Prerequisites: 6.034, or comparable experience. Significant programming experience in functional languages recommended.
Time: MWF 2:00PM
Room: 26-168
Textbook Draft will be distributed in class to registered students.
Office Hours:
GJS will be available on Friday afternoons from 3-4 (but often around in other afternoons!)
Kenny is available Tuesday and Thursday 1:30-2:30 at 32-G5 lounge.
Email gjs@mit.edu and kclisp@mit.edu


Mon. 27 April 2020: We posted the Final Project Presentation Schedule. Let us know if you have any questions.

13 March 2020:
Class is cancelled. Guy Steele will not be giving a guest lecture.

11 March 2020:
Pset due dates are currently null and void. Hand them in at your convenience, before the term ends.
LGG code from L17 is here.

Sun. 2020-03-08:
Just a reminder that since some releases of mit-scheme 10.1.10 have a vector printing bug,
here's a patch to fix it:
(environment-define (->environment '(runtime printer)) 'nmv-header? (lambda args #f))

Tue. 2020-02-18:
The Don't Panic! page and FAQ has been updated.
Check it out and send me comments!

Sat. 2020-02-15:
There is no class on Monday due to President's Day. Tuesday is on a Monday schedule.
Therefore, there will be lecture on Tuesday and no office hours.
Enjoy the long weekend!

Mon. 4/27/2020: We posted the Final Project Presentation Schedule. Let us know if you have any questions.

Class materials:

Reference documentation: