CS4720 Research in Program Analysis
Burcu Kulahcioglu Ozkan, Arie van Deursen
Spring 2025/Q4, TU Delft
Course description:
This course provides a comprehensive introduction to the field of software analysis, a critical aspect of software development and maintenance. We will delve into both theoretical foundations and practical applications, learning how to analyze, understand, and improve software systems. This course explores a comprehensive set of techniques for software analysis, including practical formal methods, model checking, static and dynamic analysis, and other key approaches to evaluating and improving software systems. Through hands-on project, you will gain experience understanding and applying these techniques and presenting them using a scientific valid methodology.
Study goals:
At the end of this course, you will be able to:
- Explain different software analysis approaches, such as model checking, static, and dynamic analyses.
- Apply the software analysis techniques to sample programs.
- Analyze the results of software analysis techniques in terms of their precision and computational performance.
- Evaluate the performance of different software analysis techniques and compare their pros and cons.
Course organization
- 5 ECTS: You need to devote at least 140 hours of study for this course.
- Online meetings: The course consists of 10 2-hour meetings. You are not required, but you are strongly encouraged, to attend.
- Assessment: Group Report (weighting 80%), Group Presentation and Participation (weighting 20%)
- Teams: The students are responsible to form teams and communicate them to the course TAs.
Course schedule:
TBA
Paper presentations:
TBA
Course projects:
TBA