Tentative Schedule
Week 1
(1/9)
Introduction
Slides
Program Representation
Slides
Reading:
Book Chapters
Week 2
(1/16)
Dynamic Program Analysis Primitives - Tracing
Slides
Reading:
Valgrind:a framework for heavyweight dynamic binary instrumentation
Student Presentation (Weihang Wang)
:
Week 3
(1/23)
Profiling
Slides
Reading:
Efficient Path Profiling
Student Presentation (Priyam Biswas)
:
Week 4
(1/30)
Dynamic Slicing
Slides
Student Presentation (Charitha Saumya)
Week 5
(2/6)
Implementing information flow system on Valgrind
Slides
Building a LLVM tool by David Perry on 2/9
Slides
Student Presentation (Abdulellah Abdulaziz M Alsaheel)
Week 6
(2/13)
Program semantics and formalizing dynamic analysis
Slides
Static program analysis
Slides
Student Presentation (Hongjun Choi)
Week 7
(2/20)
Static program analysis
Suggested Reading: Dragon book 9.1-9.3.3
Student Presentation (Yingqi Liu)
Week 8
(2/27)
Alias analysis
Student Presentation (Chris Doak)
Week 9
(3/6, midterm on 3/9)
Data flow analysis framework
Midterm
Week 10
(3/13, spring break, no class)
Week 11
(3/20)
Symbolic analysis
Slides
Propositional Logic
Slides
Reading: Chapter one of
Logic in Computer Science
.
Week 12
(3/27)
SAT solving
Slides
Student Presentation (Habiba Farrukh)
Week 13
(4/3)
SMT solving
Slides
Student Presentation (Sudharshan Viswanathan)
Week 14
(4/10, instructor travels on 4/13)
Software model checking
Slides
Reading:
CBMC
.
Reading:Model Checking Programs
Reading:
Predicate Abstraction
Student Presentation (Yuseok Jeon)
Week 15
(4/17)
Software model checking
Student Presentation (Sneha Balasubramanian)
Week 16
(4/24)
Review
Project Demo