- key concepts of program analysis including data flow analysis, constraint-based analysis and abstract interpretation.
- dynamic analysis to explore the tradeoff between soundness and scalability
- reading, presenting and validating research papers
One of the aims of modern software engineering is to automate the process of understanding software artifacts. This course focuses on techniques for analyzing programs to find, e.g., security vulnerabilities and errors, as well as understanding the software development process. You will gain a working knowledge of program analysis and its theoretical foundations rooted in abstract interpretation.
This course is taught together for Northeastern University. The lectures are online.