This course will focus on the static and dynamic analysis of programs. The course will cover some foundational techniques of static and dynamic program analysis, and will consider hybrid analyses that use both static and dynamic techniques. Some emphasis will be placed on analysis for security.
The course will be a combination of lectures and paper discussion. We will focus primarily on recent papers, from the last 3-4 years. See the lecture schedule for more detailed information on topics and papers covered.
For those taking the course for credit, evaluation will be based on class participation, and a final project. More information about the final project is available here. Auditors are welcome.
The course is intended for graduate students at all levels as well as advanced undergraduates. It is expected that students have taken a course in the foundations of programming languages, such as CS 152.
Discussion and the exchange of ideas are essential to academic work. For paper readings, assignments, in-class exercises, etc., you are encouraged to consult with your classmates, and to share sources. For the class project, you may work in groups, and work submitted for evaluation may be the result of the collaborative effort of your group. All members of the group should be clearly indicated to the course staff, and the course staff should be notified if group membership changes. The class project should be original research, and the same standards of professional conduct for publishable research apply to your class project.
When submitting the final project, College students will include a statement affirming the Harvard College Honor Code: "I affirm my awareness of the standards of the Harvard College Honor Code."