Tentative Schedule
Week 1
(1/7)
Introduction
Slides
Program Representation
Slides
Reading:
Book Chapters
Week 2
(1/14)
Dynamic Program Analysis Primitives - Tracing
Slides
Reading:
Valgrind:a framework for heavyweight dynamic binary instrumentation
Suggested Reading:
Whole Execution Trace
(Section 4 only)
Student Presentation (Ryan Miller)
:
Week 3
(1/21)
Profiling
Slides
Reading:
Efficient Path Profiling
Student Presentation (Azfar Khandoker)
:
Week 4
(1/28)
Dynamic Slicing
Slides
Student Presentation (Yonghwi Kwon)
Week 5
(2/4, instructor travels from 2/2-2/8)
Building a LLVM tool by Nick Sumner on 2/5
Slides
Implementing information flow system on Valgrind by Mehdi Azarmi on 2/7
Slides
Student Presentation (Jianjun Huang)
Week 6
(2/11)
Delta Debugging and Statistical Debugging
Slides
Static program analysis
Slides
Suggested Reading: Dragon book 9.1-9.3.3
Student Presentation (Abhinav Ghai)
Week 7
(2/18)
Static program analysis
Student Presentation (Hou-Jen Ko)
Week 8
(2/25)
Propositional Logic
Slides
Reading: Chapter one of
Logic in Computer Science
.
Student Presentation (Brendan Saltaformaggio)
Week 9
(3/4, midterm on 3/7)
Propositional Logic
Midterm
Week 10
(3/11, spring break, no class)
Week 11
(3/18)
SAT solving
Slides
Model Checking C Programs
Slides
Reading:
CBMC
.
Suggested Reading:
SMT solver
Student Presentation (Jeff Avery)
Week 12
(3/25)
Model Checking Java Programs
Slides
Student Presentation (Chung Hwan Kim)
Week 13
(4/1)
JPF-Predicate Abstraction
Slides
Reading:Model Checking Programs
Reading:
Predicate Abstraction
Suggested Reading:
Lazy Abstraction
JPF-Predicate Abstraction
Student Presentation (Chunmeng Zhou)
Week 14
(4/8)
Testing-II
Slides
Slides-2
Reading:
Concolic Testing
Student Presentation (John S. Lima)
Week 15
(4/15)
Testing-II (testing concurrent programs)
Slides
Reading:
Finding and Reproducing Heisenbugs in Concurrent Programs
Student Presentation (Rodrigo Haragutchi)
Week 16
(4/22)
Review
Project Demo