
 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 Hoarelike logics, the halting problem for probabilistic programs, as well as the basics of probabilistic databases.
A detailed account of the planned lectures:
 Introduction (applications of PP, webPPL)
 Semantics (reminder probability theory, Markov chains, semantics pGCL)
 Formal reasoning (weakest preconditions, proof rules, connection to semantics)
 Conditioning (Bayesâ€™ rule, semantics, formal reasoning, program transformations)
 Bayesian networks (what are BNs?, Bayesian inference, relation to PP)
 Termination (sorts of termination for PPs, halting problem)
 Probabilistic databases (probabilistic data models, expressiveness, query processing)
 Application: probabilistic data integration (data quality problems, probabilistic modeling of data quality problems, processing feedback)




 Assumed previous knowledgeMandatory: Probability Theory, Programming Recommended: Logics, Automata Theory, Databases 
  Required materialsRecommended materialsCourse materialThe Design and Implementation of Probabilistic Programming Languages – N. Goodman & A. Stuhlmüller 
 Course materialAbstraction, Refinement and Proof for Probabilistic Systems – A. McIver & C.C. Morgan 
 Course materialAdvanced weakest precondition calculi for probabilistic programs – B.L. Kaminski 

 Instructional modesAssignmentPresence duty   Yes 
 Lecture
 PracticalPresence duty   Yes 

 TestsWritten exam and assignments


 