FDD3024 Research preparation course in programming languages and formal methods

View the course on GitHub

About the course

This course at KTH introduces theory, methods, and tools that are prerequisites for research in the areas of programming languages and formal methods. The course awards 10 ECTS credits and the examiner is Mads Dam.

Course intended learning outcomes

At the end of the course the student should be able to:

Course organization

The course consists of five modules given by members of faculty and postdocs at the KTH Department of Theoretical Computer Science over a full term = two periods. Each module consists of 3-6 lectures.

Course examination

The course has two forms of examination: homeworks and take-home exams.

Each module has a homework problem set where a written solution must be handed in that is graded pass/fail based on demonstrated effort to solve problems; solutions need not be correct. The aim of the homeworks to help students prepare for the take-home exam.

At the end of each period the course spans, a take-home exam is given over two days consisting of one problem set per module associated with that period. After handing in written solutions, students must book a slot to present and discuss their solutions with a teacher, who will then grade each problem set pass/fail. A student must get a pass on all problem sets to pass the course.

Course modules

Module 1 (Period 4, spring 2026)

Module 2 (Period 4, spring 2026)

Module 3 (Period 4, spring 2026)

Module 4 (Period 1, fall 2026)

Module 5 (Period 1, fall 2026)

Lecture Schedule for Period 4, 2026

Lecture Module Date Time Location Topic Slides
1 1 Apr 13 13:00 room 1537 Inductive rules, operational semantics, untyped lambda calculus Lecture 1
2 1 Apr 15 15:00 room 1537 Simply typed lambda calculus, type systems, ML Lecture 2
3 1 Apr 20 13:00 room 1537 Data types, polymorphism, abstract types, module systems Lecture 3
4 1 Apr 23 13:00 room 1537 Simple types, dependent types, theorem proving Lecture 4
5 2 Apr 28 10:00 room 4423 Concurrency, Executions, Interleaving TBA
6 2 Apr 29 10:00 room 1537 Process Algebra, CCS,pi-calculus TBA
7 2 Week 19 TBA TBA Concurrency TBA
8 2 Week 19 TBA TBA Concurrency TBA
9 2 Week 20 TBA TBA Concurrency TBA
10 3 Week 20 TBA TBA Hoare logic TBA
11 3 Week 20 TBA TBA Hoare logic TBA
12 3 Week 20 TBA TBA Hoare logic TBA

Lecture Resources

``
Lecture Module Resources
1 1
2 1
3 1
4 1
5 2
  • Principles of Model Checking chapter 2
  • Models For Concurrency by Glynn Winskel Mogens Nielsen
6 2
  • A gentle introduction to Process Algebras by Rocco De Nicola
  • A calculus of communicating systems by Robin Milner
  • Communicating and mobile systems: the pi calculus by Robin Milner