Noah Goodman

Logic & Computation

Week Two - 11.00-12.30 - Level: I

Room: N1


Probabilistic programing languages (PPLs) unify techniques for formal description of computation with the representation and use of uncertain knowledge. These languages have seen recent interest from artificial intelligence, programming languages, cognitive science, and natural languages communities. This introductory course will begin with an overview of the ideas and foundations of PPLs, we will illustrate these ideas with examples drawn from semantic parsing, pragmatics, and procedural graphics. We will then focus on algorithms and techniques for implementing universal probabilistic inference. We will construct a simple javascript-based language, showing how to implement rejection sampling, enumeration with caching, Metropolis Hastings, and particle filtering.