The course has a “practicum” which means that you work on your practical assignments in a class room. How much time we spent on this per week depends on how much material there is to lecture about. We start with more lectures and less practicals in the first weeks to get you going, and this will shift to more practicals and less lecture time in the later weeks. Assume that all the hours not destined for lectures will be used for practicals.

Below is the schedule for this course year, 2021-2022.

Slot (week) Date Lecture Additional
1(17) Tuesday 2022-04-26 Intro, Attribute Grammars Form pairs to start work on the first assignment
2(17) Thursday 2022-04-28 Static Analysis with Monotone Frameworks:
Available expressions
3(18) Tuesday 2022-05-03 Monotone Frameworks continued:
Live variables and the general framework
(18) Thursday 2022-05-05 No lecture
4(19) Tuesday 2022-05-10 Monotone Frameworks continued:
Distributivity, constant propagation and the algorithm
5(19) Thursday 2022-05-12 Monotone Frameworks continued:
6(20) Tuesday 2022-05-17 Control-flow analysis
7(20) Thursday 2022-05-19 Control flow analysis continued
8(21) Tuesday 2022-05-24 Analyzing effects
(21) Thursday 2022-05-26 No lecture
9(22) Tuesday 2022-05-31 Usage Analysis
10(22) Thursday 2022-06-02 Usage analysis continued, Program transformation 1
11(23) Tuesday 2022-06-07 Program transformation 2
12(23) Thursday 2022-06-09 Guest lecture by Marco Vassena: type systems for constant time cryptography
13(24) Tuesday 2022-06-14 Abstract Interpretation
14(24) Thursday 2022-06-16 Abstract Interpretation continued
15(25) Tuesday 2022-06-21 Fusion in Accelerate
16(25) Thursday 2022-06-23 Guest lecture by Jurriaan Hage: Constraint-based Type Error Diagnosis