Spring 2015: 6.945 (grad H), 6.905 (AUS)

Adventures in Advanced Symbolic Programming

Officially: Large-scale Symbolic Systems

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

Gerald Jay Sussman, Lars E. Johnson


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 11:00AM - Noon
Room: 4-261
Office Hours: Mondays 1:30-3:30pm near 32-385 or by arrangement. Email gjs or larsj.


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

Thu. 4/23/15: No Class Friday 4/24: Prof. Sussman is not feeling well and will not be able to lecture tomorrow. He hopes to recover enough to have class again on Monday. Students with completed problem sets can turn them in under his office door (32-385).

Looking ahead: Next Friday, May 1 will be the last day we will accept late psets. If you are behind, please work to catch up. Project presentations begin May 4. We will distribute a schedule and information about presentations and reports early next week.

Fri. 4/17/15: Hard deadline for late problem sets: Friday, May 1 will be the last day we will accept any late problem set submissions. Please try to stay on top of your psets, and also work on your projects. We are happy to find a time to meet to discuss the class, assignments, or any extenuating circumstances.

Mon. 3/9/15: Note about problem sets and expectations: As stated in the initial Red Tape Memo, we expect students to be at every class and to complete every problem set. Both are essential in learning and understanding the class material.

However, we understand that there are a lot of things going on these days and that weeks can get busy. We are not huge sticklers about due dates, and will accept assignments when you are ready, but please inform and update us about how things are going and if there's anything we can do to help.

This being said, since there are new assignments distributed each week, we strongly discourage people from getting too far behind the rhythm that they are unable to ever catch up.

Mon. 3/9/15: Office Hours This Week: I will be holding office hours this afternoon, Monday 3/9 1:30-3:30pm and tomorrow, Tuesday 3/10 3-4:30pm near 32-385 if you have any further questions about the class, material, or assignments.

Wed. 3/4/15: MIT Scheme on Athena updated: The version of MIT Scheme provided in the 6.945 Athena locker has been updated to the latest version, MIT Scheme 9.2.

Class materials:

Reference documentation: