News
Re-Exam RegistrationWritten on 23.01.26 by Jan Reineke We have sorted out the issues around the re-exam registration. There will be a separate registration for the… Read more We have sorted out the issues around the re-exam registration. There will be a separate registration for the project phase, which I will announce once it is available. The grade for the module as a whole will be determined by the average of the exam and the project grades. |
Project DistributionWritten on 22.01.26 by Jan Reineke Please indicate your preferences for the course projects by Monday, January 26 using the following form: https://forms.gle/Fjp9Cj8rxk3tbN5NA
|
Re-Exam RegistrationWritten on 21.01.26 by Jan Reineke Unfortunately, there are some issues with the registration for the re-exam in the LSF. I am sorting these issues out and will inform you once that is completed. Don't worry about missing the registration deadline. If the problems persist it will be suitably extended. |
Re-Exam and ProjectsWritten on 20.01.26 by Jan Reineke The re-exam will take place next Thursday, January 29 at 10 am. Please register in the LSF by this Thursday. This Thursday, also at 10 am, I will introduce potential project topics. The project assignment will be finalized next week, so that work on the projects can commence right after the re-exam… Read more The re-exam will take place next Thursday, January 29 at 10 am. Please register in the LSF by this Thursday. This Thursday, also at 10 am, I will introduce potential project topics. The project assignment will be finalized next week, so that work on the projects can commence right after the re-exam has been graded. |
Exam Results and Exam InspectionWritten on 16.01.26 by Jan Reineke The exam has been graded and you can find your number of points and passing status in the CMS. The exam inspection will take place in Lecture Hall 001 in E1 3 at 14:15 on Tuesday, January 20. |
Exam on Thursday, January 15Written on 13.01.26 by Jan Reineke The exam will take place in Hörsaal 001 in E1 3 on Thursday, January 15 from 10:10 to 11:55 (105 minutes). You can see your registration status and assigned seat on your personal status page. Please be there at 10:00 (sharp!) so that we can start on time. Don't forget to bring your student id… Read more The exam will take place in Hörsaal 001 in E1 3 on Thursday, January 15 from 10:10 to 11:55 (105 minutes). You can see your registration status and assigned seat on your personal status page. Please be there at 10:00 (sharp!) so that we can start on time. Don't forget to bring your student id card and a government-issued ID card (e.g. a Personalausweis). |
Assignment 5 + Recap LectureWritten on 20.12.25 by Jan Reineke Assignment 5 has been released and will be discussed in the tutorial on January 8. The lecture slot on January 6 will be used for a recap lecture. |
Course EvaluationWritten on 19.12.25 by Jan Reineke Please participate in the course evaluation, which is open until January 12 via the following links: |
Assignment 4Written on 04.12.25 by Jan Reineke Assignment 4 is now available in the CMS. |
Feedback for Assignment 3Written on 27.11.25 (last change on 27.11.25) by Jan Reineke The feedback for Assignment 3 is now available. |
Feedback for Assignment 2Written on 13.11.25 by Jan Reineke The feedback for Assignment 2 is now available. |
Assignment 2Written on 06.11.25 by Jan Reineke The new assignment sheet is now available and the feedback for the first assignment is visible. |
First Lecture on October 21Written on 28.09.25 by Jan Reineke The first lecture will take place on Tuesday, October 21. |
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/end of 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 Tuesdays at 2 pm and on Thursdays at 10 am.
The first lecture will take place on Tuesday, October 21.
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.
