CMSC 631, Fall 2010

Program Analysis and Understanding

  • Dec 18 - Final exam scores have been mailed out. Let me know if you did not get an email.
  • Dec 8 - The final exam is now available. If you have not received an email with instructions on getting the final, please contact me.
  • Nov 29 - Practice problems are available. See email for solutions.
  • Nov 22 - Project 5 grades have been posted on the grade server.
  • Nov 8 - A small correction to p5.v has been posted.
  • Nov 3 - Project 5 is available.
  • Nov 3 - Grades for projects 3 and 4 are on the grade server.
  • Oct 25 - Links to sample lambda calculus exercises and solutions have been posted on the materials web page, in the list of lectures.
  • Oct 25 - Bao's office hours on Tuesday, Oct 26 will be shifted slightly, from 1-3pm to 12-2pm.
  • Oct 25 - Small correction to p4.v: The definition of step_many should be in terms of step_nd, rather than step. p4.v has been updated with this fix.
  • Oct 20 - Project 4 is now available.
  • Oct 15 - Updated project 2 grades are now posted on the grade server. The revised test cases can be found here.
  • Oct 15 - Jeff's Wednesday office hours have been changed slightly, to 2-3pm, for the rest of the semester.
  • Oct 11 - Project 3 is available.
  • Oct 8 - Project 2 grades are now available on the grade server. The test cases can be found here. Please let us know if you have any questions about the tests; see README-TESTS in the top level of the tar ball for instructions on running the tests.
  • Sep 27 - Project 2 is now due Wednesday, September 29.
  • Sep 15 - Project 1 grades should be available on the submit server and grade server.
  • Sep 13 - Project 2 is now available.
  • Sep 10 - Jeff's Wednesday office hour is now 1:30-2:30pm.
  • Sep 8 - As we discovered today, class is indeed now meeting in 2120 CSIC.
  • Sep 3 - There are no classes on Monday, September 6. Also, a project 1 clarification: you should should project 1 on the submit server.
  • Sep 1 - Project 1 is now available.
  • Aug 30 - There are no office hours this week; if you need to speak with the professor or TA, please send email.
Please submit your evaluation for this and all your other courses at CourseEvalUM (available through Dec 12)

Location CSIC 2120, MW 3:30-4:45pm
Final Exam Take home, available December 9-12, 2010
Final Project Due December 16, 2010, by email
Instructor Jeff Foster
4129 A.V. Williams
Hours: M 12-1pm, W 2-3pm, or by appointment
TA Bao Nguyen
Office hours in grad lounge, 1152 A.V. Williams
Hours: M 10-11am, Tu 1-3pm, or by appointment
Textbook None (but see recommendations)


This core course is about techniques for analyzing and understanding software artifacts. Ultimately, the goal of this area of study is to improve the quality of software. We will cover three related areas of programming languages research:

  1. Static analysis, the name for any automatic technique for reasoning about program source code. We will study data flow analysis and type systems, and more briefly theorem proving. Model checking will be covered by CMSC 630, offered in Spring 2007.
  2. Formal systems for describing languages and programs, including lambda calculus and axiomatic, denotational, and operational semantics.
  3. Programming language features and how they affect software, including imperative, functional, and object-oriented programming.

Valid HTML 4.01!