Program Analysis
A graduate seminar from MIT covering techniques for analyzing software, taught through MIT OpenCourseWare. Static analysis topics include abstract interpretation and dataflow, type systems, model checking, decision procedures such as SAT solvers and BDDs, and theorem proving. Dynamic analysis topics cover testing, fault isolation and debugging, model inference, and visualization. The course centers on reading classic and current research papers in the field, with active in-class discussion of the material. Students complete small hands-on exercises to gain experience with actual analysis tools, then work in teams on a research project applying these techniques. Course materials include the reading list, assignments, and project guidelines, all freely available through MIT OpenCourseWare under a Creative Commons license. No certificate is offered.