6.883 Program Analysis

Fall 2005

Gears used to illustrate an efficient system.

The operation of gears illustrates how efficient systems work. This course will examine a variety of tools and program analysis techniques used to address software engineering tasks. (Image courtesy of stock.xchng)

Course Highlights

This course features an extensive reading list as well as a detailed project description.

Course Description

6.883 is a graduate seminar that investigates a variety of program analysis techniques that address software engineering tasks. Static analysis topics include abstract interpretation (dataflow), type systems, model checking, decision procedures (SAT, BDDs), theorem-proving. Dynamic analysis topics include testing, fault isolation (debugging), model inference, and visualization. While the course focuses on the design and implementation of programming tools, the material will be useful to anyone who wishes to improve his or her programming or understand the state of the art. Students are expected to read classic and current technical papers, actively participate in class discussion, perform small exercises that provide experience with a variety of tools, and complete a team research project.
Donate Now


Prof. Michael Ernst

Course Meeting Times

Two sessions / week
1.5 hours / session