6.821 Programming Languages

Fall 2002

Programming computer screen.
Programming computer screen. (Photo © openphoto.net.)

Course Highlights

This course site features a full set of problem sets, as well as extensive documentation on Scheme+, the programming language used in the course. This course has virtually all of its materials online, including exams and other materials used by students in the course.

Course Description

6.821 teaches the principles of functional, imperative, and logic programming languages. Topics covered include: meta-circular interpreters, semantics (operational and denotational), type systems (polymorphism, inference, and abstract types), object oriented programming, modules, and multiprocessing. The course involves substantial programming assignments and problem sets as well as a significant amount of reading. The course uses the Scheme+ programming language for all of its assignments.

Technical Requirements

Scheme software is required to run the .scm files found on this course site.

Donate Now


Prof. Michael Ernst

Course Meeting Times

Two sessions / week
1.5 hours / session

One session / week
1 hour / session