News
Oral Exam Grades and Project PresentationsWritten on 14.02.25 by Jan Reineke We have entered the grades for the oral exams in the CMS. Talk to us about a potential re-exam. |
Date for Project PresentationsWritten on 09.02.25 (last change on 10.02.25) by Jan Reineke Please participate in the following poll by Wednesday, February 12 to determine a data for the final project presentations: |
Exam DatesWritten on 29.01.25 by Jan Reineke Please find the schedule for the oral exams in the Materials section. |
Recap Lecture on Wednesday, February 5Written on 27.01.25 (last change on 27.01.25) by Jan Reineke I will give a recap/Q&A lecture on Wednesday, February 5. This lecture will briefly recapitulate the topics covered in the course. It is also an opportunity to ask any questions you might have about the course contents before the exam. |
Scheduling of Oral ExamsWritten on 27.01.25 by Jan Reineke Please indicate your availability for oral exam slots in the following poll: |
Course EvaluationWritten on 21.01.25 by Jan Reineke Please help us improving the course by participating the course evaluation using the following link: The link will expire on January 31. |
Project DistributionWritten on 20.01.25 (last change on 20.01.25) by Jan Reineke By Monday, January 27, 10 am, please indicate your interest in the project topics discussed in the lecture today using the following form: https://forms.gle/iSBeHUsnSf8MENk29 Our next meeting will be on Monday, January 27 at 2 pm. |
Tutorial on January 8Written on 07.01.25 by Jan Reineke We will use the slot on January 8 for a tutorial to discuss Assignment 4. |
No Lecture on November 27Written on 26.11.24 by Jan Reineke Due to a faculty retreat I need to cancel the lecture on November 27. |
Tutorial on November 6Written on 04.11.24 by Jan Reineke We will use the slot on November 6 for a tutorial to discuss Assignment 2. |
Tutorial on October 23Written on 22.10.24 by Jan Reineke We will use tomorrow's slot for a tutorial to discuss Assignment 1. |
Program Analysis (9 CP)
Course Organization
The course consists of two parts:
- Lectures and tutorials weekly throughout the regular lecture period.
- Group projects carried out from mid January to end of March.
Introduction
Program analysis deals with automatic analysis of programs with regards to certain properties. Depending on the application, these properties could be related to safety, security, or correctness of the program. The analysis results are used for different purposes by different applications. Some such uses are:
- proving the absence of runtime errors, as is e.g. done by Astree
- statically analyzing the worst-case execution time (WCET) of the program
- checking for hardware side-channel vulnerabities such as Spectre
- guiding program transformations in compilers, e.g. for high performance computing
This course provides an overview of the different techniques used in the field, the concepts guiding them, and their applications. Topics covered in the course include but are not limited to:
- Basics on Fixed Point Theory
- Data-flow Analysis and Interprocedural Analysis
- Abstract Interpretation
- SMT solvers, Symbolic Execution, and Symbolic Abstraction
- Information Flow Analysis and Side-channel Analysis
Time and Place
The lectures and tutorials take place in Hörsaal HS 001 in bulding E1 3 on Mondays from 14:00 - 16:00 and Wednesdays from 10:00 - 12:00.
The first lecture will take place on October 14, 2024.
Prerequisites
This course is open to advanced bachelor's students as well as to master's students.
While there are no specific course prerequisites for this advanced course, a solid background in discrete mathematics is highly recommended, as provided by undergraduate math courses in our bachelor's program. In addition, some programming experience would be valuable for the projects.