Lecture Material and Assignments
- Lecture 1 - Introduction (slides)
- Lectures 2,3 - OCaml (slides)
- Lecture 4 - Symbolic execution (slides, interpreter code)
- Lectures 5,6 - Data flow analysis (slides)
- Lecture 7 - Operational semantics (slides updated 2/18/13)
- Lecture 8,9 - Abstract Interpretation (slides updated 220, 8:15pm)
- Lecture 10 - Probabilistic Computation
- Some examples, concrete operational semantics (slides)
- Probabilistic abstract interpretation applied to knowledge-based security policies (slides, paper)
- Lecture 11 - Synthesis (slides)
- Lecture 12 - Lambda Calculus (slides)
- Lecture 13,14,15 - Types and Proofs (slides, sample typechecker, proof of STLC soundness)
- Lecture 16 - Dynamic Typing, Contracts, and Gradual Typing (slides)
- Lecture 16 - Dependent Types (notes)
- Lecture 17,18 - Coq
- Lecture 19 - Axiomatic semantics (slides)
- Lecture 20 - Hoare Logic in Coq
- Lecture 21 - Language-Based Security
- Lecture 22 - Type qualifiers (as applied to security)
- Lecture 23 - Incremental computation
- Lecture 24 - Scriptable debugging (guest lecture from Khoo Yit Phang)
- Project presentations
- May 1:
- Chris Imbriano and Chang Liu, Coq Formalization of Memory Trace
- Moshe Katz, Specification-Driven Implementation of
Dynamically-Reconfigurable Distributed Applications.
- Alex Malozemoff, Automatically Verifying and Synthesizing
Cryptographic Modes of Operation.
- Nate Parsons, Type Inference for M3PC, a Language for Mixed Mode
- Darren Smith, Compact Code Encodings.
- May 6:
- William Armstrong, A Comparison of Automated Static Analysis Tools for
use in Bug-detection on Stand-Alone Java Applications.
- Cody Buntain, Automated Software Diversification via Synthesis-Based
- Yehuda Katz, Identifying and Analyzing Program Runtime Configuration.
- Youndo Lee, A Survey on Static Analysis of SQL Queries.
- Max Potasznik, Programming Languages in Software Defined Networks.
- Anilesh Shrivastava, A Look at an Implementation of Probabilistic
- May 8
- Kerry Cheng and Rob Argue, Probabilistic Computation: Abstract
Interpretation and Machine Learning.
- Wenshuai Hou, A Survey on MapReduce and Its Variations.
- Beth McNany and David Wasser, Symbolic Execution in Ruby.
- Nuttiiya Seekhao and Hui Zhang, Synthesizing Distributed Memory