OPLSS 2024 Lectures on Probabilistic Programming
Overview
The overall goal of this lecture is probabilistic programming from the ground up, meaning that you will understand:
- What a probabilistic programming language is
- How to use one to solve interesting problems
- How to implement a probabilistic programming language yourself
This course will focus on design and implementation. You are encouraged to build on and extend the provided implementations of mini-languages. All implementations are in OCaml.
Lectures
- Lecture 1: Why Probabilistic Programming [notes] [video]
- Lecture 2: Sampling Semantics [video]
- We discuss the operational sampling semantics of [this paper]
- Lecture 3: Tractability and expressivity [video]
- We discuss [Dice]
- Lecture 4: Probabilistic Separation Logic, Perspectives [video]
- We discuss [Lilac]
Resources
- All source code can be found here
- Previous courses on this topic I have taught:
- Previous OPLSS series on probabilistic programming: