Adventures in Advanced Symbolic Programming
Spring 2009
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 {{% resource_link "d422308c-c553-447c-aa60-d923823d1d65" "MIT/GNU Scheme" %}}. Students should have significant programming experience in Scheme, Common Lisp, Haskell, CAML or some other "functional" language.
Readings
- INITIALS: [RZ] · READINGS: Zippel, Richard. Effective Polynomial Computation . New York, NY: Springer, 1993. ISBN: 9780792393757.
- INITIALS: [LOGIC] · READINGS: Suppes, Patrick. Introduction to Logic . Mineola, NY: Dover Publications, 1999. ISBN: 9780486406879.
- INITIALS: [CMMR] · READINGS: Bundy, Alan. The Computer Modelling of Mathematical Reasoning . Burlington, MA: Academic Press, 1983. ISBN: 9780121412524.
- The readings for this subject will be taken from a variety of sources. There will be assigned readings with each problem set. All of the books we need will be on reserve in the library. You will need SICP (Abelson, Sussman, and Sussman; Structure and Interpretation of Computer Programs ). Material from that book will be referred to quite often. This book is available online, but dead trees are often easier to work with.
Sources
- Course catalogue ↗Historical OpenCourseWare
- MIT OCW calendar ↗
- MIT OCW readings ↗
- MIT OCW syllabus ↗
- Historical MIT OpenCourseWare offering. Named reading entries and schedule topics are automatically extracted from the linked source pages.