Lec # | topics | key dates |
---|---|---|
1 | Introduction Static and Dynamic Analysis | Assignment 1 out |
Abstract Interpretation | ||
2 | A Semantics-based Tool for Program Analysis | Assignment 1 due |
3 | A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints | |
Dynamic Analysis | ||
4 | Chaining Approach for Software Test Data Generation | |
5 | Efficient Path Profiling | |
6 | Simplifying and Isolating Failure-inducing Input | |
7 | Dynamically Discovering Likely Program Invariants to Support Program Evolution | |
Types | ||
8 | Principal Type-schemes for Functional Programs Proofs about a Folklore Let-polymorphic Type Inference Algorithm | |
9 | Introduction to Part II, Polymorphic Lambda Calculus | |
10 | Lackwit: A Program Understanding Tool based on Type Inference Finding User/Kernel Pointer Bugs with Type Inference | |
11 | Points-to Analysis In Almost Linear Time By Type Inference of Programs with Structures and Unions | |
Model Checking | ||
12 | The Spin Model Checker | |
13 | Optimizing Symbolic Model Checking for Statecharts | |
14 | Constructing Compact Models of Concurrent Java® Programs Using Predicate Abstraction to Reduce Object-oriented Programs for Model Checking | |
15-17 | Student Project Presentations |