25th Estonian Winter School in Computer Science (EWSCS)
XXV Eesti Arvutiteaduse Talvekool

Palmse, Estonia, March 1 - 6, 2020

Joost-Pieter Katoen

Software Modeling and Verification (MOVES) group
RWTH Aachen

Formal Methods & Tools group
Universiteit Twente
The Netherlands

Foundations of probabilistic programming


Probabilistic programming combines probability theory, statistics and programming languages. They allow to model a much larger class of models in a rather succinct manner. The full potential of modern probabilistic programming languages comes from automating the process of inferring unobserved variables in the model conditioned on observed data. As some researchers put it: "The goal of probabilistic programming is to enable probabilistic modeling and machine learning to be accessible to the working programmer."

Probabilistic programs steer autonomous robots, are at the heart of security mechanisms, encompass randomised algorithms, and are used in AI to infer statistical conclusions about huge amounts of uncertain data.

In these lectures, I will introduce the main underlying concepts of probabilistic programming, and discuss how classical program verification à la Dijkstra can be used to answer elementary questions such as: Do these programs terminate at all? With what probability? How many resources do they consume?, etc. Applications to Bayesian networks will show how insightful information about analysing such networks can be obtained in a fully automated manner by using program verification.

Course materials

Valid CSS! Valid XHTML 1.0 Strict Last changed April 10, 2020 22:30 Europe/Helsinki (GMT +03:00) by local organizers, ewscs20(at)cs.ioc.ee
EWSCS'20 page: //cs.ioc.ee/ewscs/2020/