Program Analysis and Transformation (PAT)
Course content
The automated processing of program texts is central to Computer Science. The prime example of such processing is traditionally a compilation of high-level to low-level languages – including the necessary supporting analyses, whether for error-detection purposes or in support of efficiency-improving program optimisations. But other instances of program analysis and/or transformation abound in both core programming-language work, and in support of adjoining disciplines, such as algorithmics or security.
The course introduces students to the principles and practice of automated program processing, covering both mainstream application areas, and selected more exotic applications.
MSc Programme in Computer Science
At course completion, the successful student will have:
Knowledge of
- Static program analysis paradigms, including abstract interpretation and type-based analyses.
- Applications areas of automated program analysis, including optimisation, verification, and information security.
- Principles of semantics-based program transformation.
- Applications of program transformation, including translation, synthesis, and maintenance.
- Software systems and tools supporting analyses and transformations.
- Selected examples of advanced analyses and/or transformations.
Skills to
- Decide and argue correctness and other properties of a range of analysis and transformation algorithms.
- Concretely realise analysis and transformation algorithms from their abstract descriptions.
Competences to
- Design and implement systems for automated processing of programs expressed in both general-purpose and domain-specific languages.
Lectures, exercises, mandatory assignments.
Articles and notes. See Absalon after the course it set up.
Basic knowledge of the principles of programming language
implementation (as found in an undergraduate-level compilers
course), operational semantics and type systems (e.g.
"Semantics and Types" or similar), and practical
programming skills in a functional language (e.g., Haskell, as used
in "Advanced Programming") will be expected.
Academic qualifications equivalent to a BSc degree is
recommended.
As
an exchange, guest and credit student - click here!
Continuing Education - click here!
PhD’s can register for MSc-course by following the same procedure as credit-students, see link above.
- ECTS
- 7,5 ECTS
- Type of assessment
-
Continuous assessment
- Type of assessment details
- Continuous assessment based on 4-6 written individual assignments, covering both theory and programming. Assignments are assessed as a whole.
- Aid
- All aids allowed
- Marking scale
- 7-point grading scale
- Censorship form
- No external censorship
Several internal examiners.
- Re-exam
-
The re-exam consists of two parts:
1. The student must resubmit the assignment no later than three weeks before the re-exam week, in order for the assignment to be approved prior to the oral examination.
2. A 30-minute oral examination without preparation.
Criteria for exam assessment
See Learning Outcomes.
Single subject courses (day)
- Category
- Hours
- Lectures
- 20
- Preparation
- 26
- Exercises
- 60
- Project work
- 100
- English
- 206
Kursusinformation
- Language
- English
- Course number
- NDAK16005U
- ECTS
- 7,5 ECTS
- Programme level
- Full Degree Master
- Duration
-
1 block
- Placement
- Block 4
- Schedulegroup
-
C
- Capacity
- No limit
The number of seats may be reduced in the late registration period - Studyboard
- Study Board of Mathematics and Computer Science
Contracting department
- Department of Computer Science
Contracting faculty
- Faculty of Science
Course Coordinator
- Robert Glück (6-6c717a6a687045696e33707a336970)
Are you BA- or KA-student?
Courseinformation of students