Lund University →
Faculty of Engineering →
Department of Computer Science
EDAP15 Program Analysis
Course facts
Credits:7.5 hp, Advanced level
Study period: LP3 2025/2026 (vt1 2026)
Lecture Room: E:C
Time and date: Tuesdays and Thursdays 10:15
Course responsible: Christoph Reichenbach
Teaching Assistants: Erik Präntare
Student representatives: see Moodle
Materials: slides, videos, textbook (for download)
Office hours: Thu 13:00–14:00 in E:2112B
Previous course instances:
2025
2024
2022
2020
2018 (as PhD course)
Exam: Optional oral exam
Participation Requirements
In order to participate in the course, you must:
- Be registered in Ladok (incl. late registrations)
- Register for this course in Moodle no later than on the first day of classes
- Show up in person for the first lecture or send me an e-mail with the title "EDAP15: Cannot attend first lecture" no later than noon 2026-01-20
- Sign up for a (two-person) homework exercise group or have a TA assign a partner to you, as explained in the first lecture
If you have not taken EDAN65, please pair up with a student who has, if at all possible
Exceptions
- PhD students: special conditions apply, and remote participation from other institutions is possible. See the bottom of this page.
- Other exceptions for special circumstances apply, within the limits of what we can support with our resources. We may need to ask you to provide evidence.
Getting Your Questions Answered
- Moodle Forum: Use the Moodle forum for a written/persistent answer. Try to help each other! We will chime in if needed.
- In-Class / Live Questions: Raise your hand in class, or use the anonymous "Live Questions" feed to post and upvote in-class questions.
- E-Mail to TA: Questions about presenting homework exercises / lab attendance / group formation only.
- E-Mail to Christoph: Administrative / personal matters, and fallback for other questions. Longer turnaround time than the other channels.
News
- [2026-03-09] Uppsamlingslabb: 13:15 in E:1407 TOMORROW, Tuesday
- [2026-03-06] Oral Exam registration is now available in Moodle. Registration will be open until next Friday, 16:00.
- [2026-03-06] Automated tests for lab 3 will now run every two hours. As before, check your CourseGit repository's README.md for your personal link.
- [2026-03-03] Lab 4 has been released. Note that this is a homework exercise, not one you will be presenting in the lab sessions.
- [2026-02-25] Guest lecture: Next Tuesday, 2026-03-03, Patrik Åberg and Magnus Templing from Ericsson will give a guest lecture on dynamic program instrumentation with DMCE. They will also be happy to answer any software engineering-related questions!
- [2026-02-25] Code-prober survey in the labs: During this week's lab sessions, Anton Risberg Alaküla, the author of Code-Prober, will visit and give you the opportunity to give feedback on certain Code-Prober features. (The survey is optional and does not affect your grades.)
- [2026-02-18] Lab 3 has been released into your CourseGit repositories. Public links and Continuous Integration will be available by the end of the week. Note: We have observed a potential UI issue in CodeProber that affects the second part (Lab 3b) that we are working on resolving. More about his in tomorrow's lecture.
- [2026-02-12] Lab 2 has been released. Keep in mind that this and the following labs are solo (individual) labs.
- [2026-02-11] Lab 2 is delayed and will be released on Thursday instead. To compensate, the lab will be shorter than originally planned.
- [2026-02-11] The following is no longer true:(Change in the lecture order: lecture 08 will focus on data flow analysis (including interprocedural analysis). We will look at pointer analysis next week instead.)
- [2026-02-06] Course completion requirements are now collected on one page. Note that we have relaxed the quiz completion deadlines slightly.
- [2026-01-30] Power outage at LTH; we are hoping for a resolution before 13:00. Students in the 10:00 lab session have the option to participate in a later lab slot instead. Please e-mail us if this prevents you from presenting/getting help, so that we can organise a backup solution for everyone affected!
- [2026-01-28] Homework exercise / lab 1 has been released (cf. the lab exercises page). Please note that solving the exercise requires material from tomorrow's lecture (Lecture 4).
- [2026-01-22] Homework exercise / lab 0 has been released. Please check your group's CourseGit for the EDAP15 2026 Exercise 0 repository.
- [2026-01-19] LU Paedagogical Support is looking for a student to give Anteckningsstöd to one or more of your fellow students: take notes and share them, follow the link for details. Compensation: 800 kr. Register here; confirmation will come via e-mail. (Must be Swedish citizen or equivalent: PN must be all-digits, no letters.)
- [2026-01-16] Initial 2026 site online. Moodle registration will open soon.
Textbooks and References
Additional Reference Material
Overview
Program analysis is the foundation for most modern software tools,
such as compilers, bug checkers, just-in-time optimisers,
refactoring engines, and IDEs. It also plays a key role in software
security. In this course we will discuss how to construct tools
that can analyse software artefacts, and explore three central
program analysis techniques: type inference, dataflow
analysis, and dynamic program analysis.
The course format includes lectures, flipped classroom
segments, and homework exercises that emphasise practical program
analysis tasks. You will initially work in groups of two and later
work by yourself.
PhD students: contact Christoph before the course starts to discuss details.