MIT/GNU Scheme Logo. (Image courtesy of Harold Abelson and Gerald Sussman.)
6.844 is a graduate introduction to programming theory, logic of programming, and computability, with the programming language Scheme used to crystallize computability constructions and as an object of study itself. Topics covered include: programming and computability theory based on a term-rewriting, "substitution" model of computation by Scheme programs with side-effects; computation as algebraic manipulation: Scheme evaluation as algebraic manipulation and term rewriting theory; paradoxes from self-application and introduction to formal programming semantics; undecidability of the Halting Problem for Scheme; properties of recursively enumerable sets, leading to Incompleteness Theorems for Scheme equivalences; logic for program specification and verification; and Hilbert's Tenth Problem.
Scheme software is required to run the .scm files found on this course site. The .ini and .edwin files found on this course site are customization files that can be loaded into Edwin, the MIT Scheme text editor.