Course Objective

Software security is of criticality. Program analysis is one of the most important approaches to ensuring software security. In this course, we study the various program analyses that can be used to address security problems, including dynamic, static and symbolic analyses. Students will gain not only hands-on experience on implementing program analyses, but also the capabilities of designing and formulating analysis.

Suggested Text Books


Course Schedule and Slides

Lecture# TOPICS Slides
Day One
1 Course Logistics and Overview Lec01
2 Program Representations Lec02
3 Dynamic Analysis - Part 1 Lec03
Day Two
4 Dynamic Analysis - Part 2 Lec04
5 Program Semantics and Formulating Dynamic Analysis Lec05
Day Three
6 Static Analysis Lec06
Day Four
7 Symbolic Analysis Lec07
Day Five
8 Model Checking and Probabilistic Analysis Lec08
Final Exam: 4:00-5:30pm

Course Projects