Skip to main content

FID3026 Differentiable Probabilistic Programming Languages 7.5 credits

In this course, the doctoral student learns about the fundamentals of a new category of programming and modeling languages: differentiable probabilistic programming. Key topics in the course are Bayesian inference, probabilistic programming language semantics, and automatic differentiation. The course covers both theoretical and practical aspects, including recent research within the area. At the end of the course, the students conduct individual small projects where they apply the techniques of differentiable probabilistic programming to open data sets or other data relevant to the UN Sustainable Development Goals.

Choose semester and course offering

Choose semester and course offering to see information from the correct course syllabus and course offering.

Headings with content from the Course syllabus FID3026 (Spring 2022–) are denoted with an asterisk ( )

Content and learning outcomes

Course contents

The course covers different methods, algorithms, semantics, mathematical concepts, and applications within differentiable probabilistic programming. This includes frequentist vs. Bayesian statistics, Bayes’ rule, conjugate priors, Markov chain Monte Carlo, Sequential Monte Carlo, Importance Sampling, Variational Inference, Automatic Differentiation (forward and backward accumulation modes), tools and languages for probabilistic and differentiable programming, probabilistic models and applications of differentiable and probabilistic programming (such as Latent Dirichlet Allocation,  Equation-based Object-Oriented Modeling, and Neural Networks), and example areas related to UN’s sustainable development goals. 

Intended learning outcomes

After passing the course, the doctoral student shall be able to:

  • design and implement a simple probabilistic programming language using shallow embedding
  • analyze and evaluate various  Bayesian inference methods
  • implement and analyze various methods for automatic differentiation
  • analyze and explain semantics for differentiable and probabilistic programming languages
  • model, apply, and reflect on differentiable or probabilistic programming techniques in various application domains, including domains within the UN Sustainable Development Goals

Course disposition

The course comprises several modules that include various activities, covering statistics, Bayesian inference, probabilistic programming, differentiable programming, modeling, and applications. The course includes formative examination, where the learning activities and assessments are combined, including compulsory seminars and lectures, individual presentations, individual take-home assignments, a project report, and peer reviewing. 

Literature and preparations

Specific prerequisites

Enrolled as PhD student.

Recommended prerequisites

The student is expected to have excellent knowledge of various programming languages and fundamental knowledge in programming language theory. 


No information inserted


Information on course literature is given in the course memo.

Examination and completion

If the course is discontinued, students may request to be examined during the following two academic years.

Grading scale

P, F


  • EXA1 - Examination, 7.5 credits, grading scale: P, F

Based on recommendation from KTH’s coordinator for disabilities, the examiner will decide how to adapt an examination for students with documented disability.

The examiner may apply another examination format when re-examining individual students.

The course is examined using individual hand-in assignments, seminars, individual presentations, a written report, and peer-reviewing tasks. 

Other requirements for final grade

To pass the course, the student must receive a passing grade on all hand-in assignments, on the written report, on peer-reviewing tasks, and on individual presentations. The student must also actively participated in all seminars and lectures. If students cannot attend some seminars or lectures, they need to do complementary work as compensation. 

Opportunity to complete the requirements via supplementary examination

No information inserted

Opportunity to raise an approved grade via renewed examination

No information inserted


Profile picture David Broman

Ethical approach

  • All members of a group are responsible for the group's work.
  • In any assessment, every student shall honestly disclose any help received and sources used.
  • In an oral assessment, every student shall be able to present and answer questions about the entire assignment and solution.

Further information

Course web

Further information about the course can be found on the Course web at the link below. Information on the Course web will later be moved to this site.

Course web FID3026

Offered by

EECS/Software and Computer Systems

Main field of study

This course does not belong to any Main field of study.

Education cycle

Third cycle

Add-on studies

No information inserted


David Broman (

Postgraduate course

Postgraduate courses at EECS/Software and Computer Systems