Course Modules
7 modules covering program analysis from foundations to capstone.
OCaml Warm-up
Get up to speed with OCaml fundamentals: syntax, types, recursion, collections, modules, and a calculator parser.
Foundations of Program Analysis
Learn what program analysis is, compare static vs dynamic approaches, and explore soundness, completeness, and decidability.
Code Representation & ASTs
Explore how compilers represent code as Abstract Syntax Trees. Build visualizers, traversals, symbol tables, and transformations.
Static Analysis Fundamentals
Build control flow graphs, implement the dataflow analysis framework, and apply reaching definitions and live variable analyses.
Abstract Interpretation
Learn abstract interpretation theory: lattices, Galois connections, and widening. Implement sign, constant propagation, and interval analyses.
Security Analysis
Apply program analysis to security: taint analysis, information flow tracking, and automatic vulnerability detection.
Tools Integration
Capstone module: combine all analyses into a real tool. Build a multi-pass analyzer with configurable pipelines and reporting.