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:

  1. Be registered in Ladok (incl. late registrations)
  2. Register for this course in Moodle no later than on the first day of classes
  3. 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
  4. 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

Getting Your Questions Answered

News

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.