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:

  1. What a probabilistic programming language is
  2. How to use one to solve interesting problems
  3. 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]
  • Lecture 4: Probabilistic Separation Logic, Perspectives [video]

Resources