This course is taught together for students of Northeastern University, USA. The lectures are online. We start on Wednesday, September 13.
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 is a PhD-level class, you can expect to get something proportional to your investment. If you are otherwise busy, you should leave with an appreciation for static analysis and a general understanding of the field. If you have more time, you ought to acquire both theoretical grounding and practical experience. I will spend as much time with you on this as you want me to. This is my only task in the fall.
You can choose one of (in order of effort):
- Taking an exam on the book. (Only makes sense for students that need a grade)
- Presenting a research paper
- Reproducing a research result
- Implementing a static analysis algorithm
If you pick a larger project, you can work in teams.
More information here.