Probabilistic Programming is a way of defining probabilistic models by overloading the operations in standard programming language to have probabilistic meanings. The goal is to specify probabilistic models in a compact manner for human communication and in a precise manner for automatic inference. A good overview of the research in this area was provided by the NIPS 2008 Workshop on Probabilistic Programming.
This is a talk and a series of exercises in Probabilistic Programming that we presented at the Machine Learning Summer School 2009. The exercises provide a hands-on introduction to the power of Probabilistic Programming and a tutorial in Infer.NET. The exercises require Infer.NET and a C# 3.0 compiler such as Microsoft Visual Studio 2008 (available as a free download). pdf slidesThe talk and exercises are available in a single zip file.