Lund University →
Faculty of Engineering →
Department of Computer Science
EDAP15 Program Analysis
Course facts
Credits:7.5 hp, Advanced level
Study period: LP3 2024/2025 (vt1 2025)
Lecture Room: E:1406
Time and date: Tuesdays and Thursdays 10:15
Course responsible: Christoph Reichenbach
Teaching Assistants: Alexandru Dura, Erik Präntare
Student representatives: David Lidholm, Edvin Antius
Materials: slides, videos, textbook (for download)
Office hours: Wednesdays 14:30–15:30 (except March 05, when they are 15:30–16:30), Thursdays 13:15–14:00 (E:2112B)
Previous course instances:
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 2025-01-21
- 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, try to pair up with a student who has
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 TAs: 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
- [2025-03-06] Oral exam registration opens tomorrow (in Moodle): Check the Completion & Grades page for more information. Note that the oral exam is optional unless you were personally instructed otherwise (to compensate for being late for a small number of mandatory criteria).
- [2025-03-06] Lab 4 has now been released.
- [2025-03-04] (Optional) oral exams on March 17/18; registration opens Friday (in Moodle)
- [2025-03-04] There will be no quiz 12; quiz 13 will poen later today
- [2025-02-25] Thursday lecture: Patrik Åberg and Magnus Tepmling from Ericsson will present DMCE, the Open Source tool that you will use in the final lab. Bring your questions about program analysis, Ericsson, software engineering, and anything related!
- [2025-02-25] Office hours next Wednesday, 2025-03-05, will be one hour later than usual: 15:30–16:30
- [2025-02-25] The quiz deadline for quiz 11 has been extended by one day, since the quiz was released a few hours after the lecture.
- [2025-02-20] Lab 3 has now been released. This lab is again an individual lab. Check the start of the README.md in your repository for a link to your most recent automatic test results.
- [2025-02-19] Bug fix for Lab 2 released. Check the announcement in the forum!
- [2025-02-19] Office hours have been on Wednesdays not Tuesdays. The information posted here earlier was incorrect. If you were trying to reach me on a Tuesday but could not find me, please send me an e-mail ASAP!
- [2025-02-13] Lab 2 has now been released. Keep in mind that this is an individual lab.
- [2025-02-10] We have released an experimental Continuous Integration tool to automatically produce test reports for your lab 1 repositories every night. See Moodle for details.
- [2025-01-30] Lab 1 has now been released.
- [2025-01-28] The quizzes for lecture 2 were released late and are now optional, but strongly recommended for students who have not taken EDAN65.
- [2025-01-22] Lab 0 has now been released.
- [2025-01-22] There have been disruptions to Moodle access due to a misconfiguration (lasting ca. 2 hours). Lab sign-ups / group formation will be extended to 14:00 tomorrow, but groups who sign up after 18:00 today may receive their git access only with some delay.
- [2025-01-22] Extended group formation deadline to 18:00 today. The first lab will be released tonight.
- [2025-01-21] We have fixed an issue with some forums and updated the list of students to (hopefully) now list all registered students. If you could not register, plase try again. Moreover, labs and self-study materials for the flipped-classroom lecture on Thursday are now available.
- [2025-01-21] All registrations open. Don't forget to register in Moodle (today) and for the labs (by Wednesday
16:00 18:00)!
- [2025-01-17] Initial 2025 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.