Lund University →
Faculty of Engineering →
Department of Computer Science
EDAP15 Program Analysis
Course facts
Credits:7.5 hp, Advanced level
Study period: LP3 2023/2024 (vt1 2024)
Lecture Room: M:J (same as M:2170; M-house, second floor)
Time and date: Mondays and Wednesdays 08:15
Course responsible: Christoph Reichenbach
Student representatives: tbd
Materials: slides, videos, textbook (for download)
Office hours: Mondays 14:00–15:30 in E:2112b
Previous course instances:
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 2024-01-16
- Sign up for a (two-person) homework exercise group or have a TA assign a partner to you, as explained in the first lecture
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.
- Inofficial Matrix channel: Backup solution if all else fails. Ping Christoph if something is on fire. Anything important posted here will also be posted in Moodle or on the web site. Do not post personal/GDPR-sensitive information.
News
- [2024-03-04] Extra lab session this Friday, 10:00–12:00 in E:2116
- [2024-03-04] Office hours moved to Thursday: Office hours this week will be on Thursday, between 13:15–14:45.
- [2024-02-27] Oral Exam information and registration: available on the Completion & Grades page. The first registration slots will open after lunch (in Moodle). Please do not register unless you have already passed all mandatory prerequisites.
- [2024-02-21] Exercise 4 released but optional: Unfortunately we could not guarantee that all of you will be able to run Exercise 4. Therefore the exercise will be optional / ungraded. We will discuss it in the final lecture.
- [2024-02-21] Exercise 3 update: Task 3 simplified in response to possible JastAdd bug. See Moodle announcement for details.
- [2024-02-19] Office hours moved to Thursday>: As announced in class, office hours this week will be online on Thursday, 15:00–16:30. (Zoom link in Moodle.) Slots for today (zoom only) available on request.
- [2024-02-16] Quiz Extensions: As announced in class on Wednesday, quiz deadlines for this week will be extended until next Tuesday due to the online versions of the Monday slides having been incomplete.
- [2024-02-15] Homework 3 released<: Homework 3 is now public. You will receive a copy of the repository on coursegit shortly; once this is done, I will send out an announcement e-mail.
- [2024-02-12] No Office Hours Today: I unfortunately had to cancel office hours. Please e-mail me to meet later this week.
- [2024-02-08] Moodle e-mail delivery disrupted: Moodle notifications are currently being blocked by university IT services. Our admins are investigating.
- [2024-02-08] Homework Exercise 1 addendum>: There was a requirement in one of the example files that conflicted with a statement in the task specification, related to the any type. We have removed this line. You can merge the changes via git from our repository, or review and update the affected file examples/type-errors.teal directly.
- [2024-02-08] Homework Exercise 2 released: Homework Exercise 2 has been released. This and the following exercises are SOLO homework exercises, NOT group exercises.
- [2024-02-05] Quiz deadline clarifications: See Completion & Grades for details.
- [2024-02-01] Slides for lecture-06 released, quiz extension: We had a slight delay in releasing the slides for lecture 06. You will thus have until next Tuesday to complete the quiz for that lecture.
- [2024-01-25] CodeProber research: The author of CodeProber (Anton) is examining how CodeProber is used. In tomorrow's lab, you will have the option to participate in this research. This decision is up to you and hsa no bearing on your course completion / grading.
- [2024-01-25] Please be aware that the lab rooms don't have computers. To present your solution, you will need to bring your own laptop.
- [2024-01-24] Homework Exercise 1 has been released.
- [2024-01-18] Moodle functionality has been restored. Our admins have managed to recover the course and quiz data. To account for the lost time, we will lower the requirements for the first two quizzes to 60% and extend the deadline until Tuesday, 18:00.
- [2024-01-18] Homework exercise 0 is released. You can access it via CourseGit. (PhD students: please clone locally or contact me if you have questions.)
- [2024-01-18] Office hours will be online (via Zoom) today: online office hours zoom link.
- [2024-01-18] (10:36) The Moodle database has been damaged, and Moodle will not be accessible until repairs have been completed. Until then announcements will only be on this web site.
- [2024-01-18] Harddisk outages at the University IT services have caused some service disruptions, including on Moodle. We are currently waiting for updates but will make sure that you will not be unfairly affected.
- [2024-01-15] Lab registration should be open now. Please e-mail Christoph if you are still getting a `not registered' message.
- [2024-01-15] Office hours for this week (only) will be on Thursday instead of Monday (same time).
- [2024-01-15] Future announcements will be shown both here and in the Moodle Announcements forum.
- [2024-01-11] Moodle registration is open now. Please carefully review the participation requirements.
- [2024-01-09] Inofficial matrix chat room (encrypted but outside of university GDPR regime, so please don't post personal information): #edap15:matrix.org
- [2024-01-08] Some students may not have been admitted to the course despite meeting prerequisites. We are investigating this issue. Due to ongoing problems with e-mail, I may not be able to reply to you individually.
- [2024-01-08] Initial 2024 site online. The course will start 2024-01-15, at 08:15 in M:J. Moodle registration will open soon.
Textbooks and References
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.