CS4720 Research in Program Analysis
Burcu Kulahcioglu Ozkan, Arie van Deursen
TU Delft, Spring 2026/Q4
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.
- In-class meetings: The course consists of 8 2-hour meetings.
- 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.
Teaching assistants
Course schedule:
- Week-1
- Introduction to the course
- April 23
- Lecture: Introduction to the course
- Lecture: Introduction to the software analysis
Further reading:
Actions and assignments (due May 1):
- Form your team
- Select your paper to present (first-come-first-served)
- Note: If the teams/papers are not selected by the deadline, they will be assigned randomly.
- Week-2
- Introduction to Model Checking
- April 28
- Lecture: Introduction to model checking
- Lecture: Introduction to model checking with TLA+ (hands on, bring your computers) (Lecturer: Ege Berkay Gulcan)
Further reading:
Actions and assignments (due May 12):
- Select your project (first-come-first-served)
- Note: If the projects are not selected by the deadline, they will be assigned randomly.
- Week-3
- Public holiday
Actions and assignments (due May 12):
- Read the papers of week-4 and prepare for the discussion (due May 12)
- Week-4
- Presentations - I
- May 12
Papers TBA
Actions and assignments:
- Kick-the-tires for your project (due May 19)
- Week-5
- Model Based Testing with Axini - I
- May 19
- Guest lecture by Susan van den Broek and Machiel van der Bijl
- Hands-on Lecture: Model Checking with Axini - I
- Model Based Testing with Axini - II
- May 21
- Guest lecture by Susan van den Broek and Machiel van der Bijl
- Hands-on Practice: Model Checking with Axini - II (Practice)
Actions and assignments
- Hands-on Axini assignment (on May 21st)
- Read the papers of week-6 and prepare for the discussion (due May 26)
- Week-6
- Presentations - II
- May 26
Papers TBA
Actions and assignments:
- Read the papers of week-7 and prepare for the discussion (due June 2)
- Week-7
- Presentations - III
- June 2
Papers TBA
Actions and assignments:
- Prepare in-progress project reports (due June 12)
- Week-8
- In-progress project evaluation (no lectures)
Actions and assignments:
- Submit on-progress project reports (due June 12)
- Read the papers of week-9 and prepare for the discussion (due June 16)
- Week-9
- Presentations - IV
- June 16
Papers TBA
Actions and assignments:
- Prepare final project reports (due June 19)
- Prepare final project presentations (due June 23)
- Week-10
- Final Project Presentations
- TBA
- Project presentations (5 min presentation + 5 min Q/A)
The schedule of the presentations will be announced in the first week of lectures. The list of papers and the schedule is subject to small changes during the term.
Paper presentations:
Each presentation will consist of a presentation followed by a Q&A session.
Each paper will be presented by a team of two students, where both students are expected to participate in the presentation and the Q/A. The presentations will be graded individually, based on individual performance.
You are expected to read all the presented papers and actively participate in the Q&A discussions.
- Tentative list of the papers to be presented and discussed:
- “OSVBENCH: Benchmarking LLMs on specification generation tasks for operating system verification”, AAAI’26
- “VeriGrey: Greybox Agent Validation”, ArXiv’26
Course projects:
TBA
Submit your project assignments via BrightSpace.
Contact and communication:
Assignment announcements and submissions will be made through BrightSpace.