Kies de Nederlandse taal
Course module: 201700081
Probabilistic Programming
Course info
Course module201700081
Credits (ECTS)5
Course typeCourse
Language of instructionEnglish
Contact J.P. Katoen
Contactperson for the course J.P. Katoen
Lecturer J.P. Katoen
Lecturer M. van Keulen
Academic year2020
Starting block
Application procedureYou apply via OSIRIS Student
Registration using OSIRISYes
  • Get acquainted with the concepts of probabilistic programming: sampling, conditioning, and querying.
  • Obtain a thorough understanding of the meaning of probabilistic programs.
  • Obtain a good understanding about what probabilistic programming offers.
  • Acquire a thorough understanding of using randomisation for treating uncertainties in big data.
  • Obtain practical experience with a concrete probabilistic programming language (webPPL) and with querying probabilistic data bases.
This course is about probabilistic programming: a combination of probability theory, statistics, and programming languages. It is used to deal with uncertainties in big data, security, and machine learning. The course covers practical aspects such as programming with webPPL, a probabilistic version of JavaScript, querying probabilistic databases and the link to Bayesian networks. This is complemented by foundational aspects such as formal language semantics (using Markov chains), formal reasoning about probabilistic programs using Hoare-like logics, the halting problem for probabilistic programs, as well as the basics of probabilistic databases. 
A detailed account of the planned lectures:
  1. Introduction (applications of PP, webPPL)
  2. Semantics (reminder probability theory, Markov chains, semantics pGCL)
  3. Formal reasoning (weakest pre-conditions, proof rules, connection to semantics) 
  4. Conditioning (Bayes’ rule, semantics, formal reasoning, program transformations)
  5. Bayesian networks (what are BNs?, Bayesian inference, relation to PP)
  6. Termination (sorts of termination for PPs, halting problem)
  7. Probabilistic databases (probabilistic data models, expressiveness, query processing)
  8. Application: probabilistic data integration (data quality problems, probabilistic modeling of data quality problems, processing feedback)
Assumed previous knowledge
Mandatory: Probability Theory, Programming
Recommended: Logics, Automata Theory, Databases
Participating study
Master Computer Science
Required materials
Recommended materials
Course material
The Design and Implementation of Probabilistic Programming Languages – N. Goodman & A. Stuhlmüller
Course material
Abstraction, Refinement and Proof for Probabilistic Systems – A. McIver & C.C. Morgan
Course material
Advanced weakest precondition calculi for probabilistic programs – B.L. Kaminski
Instructional modes
Presence dutyYes


Presence dutyYes

Written exam and assignments

Kies de Nederlandse taal