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 can be found at probabilistic-programming.org.
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 original exercises required an old version of Infer.NET that is no longer available. pdf slides