Russell Cameron Thomas
PhD Candidate
George Mason University
  1. Introduction 
    Overview of the tutorial, the intended reader, and how to get the most out of it. Credits.

    1. In a Nutshell 
      Executive summary description of probabilistic programming (PP) and how it is better and different, and also why might be good for risk analysis and modeling.

    2. Big Picture  75%
      Describes probabilistic programming at conceptual level – i.e. what kind of computational system is it?

  2. Overview of WebPPL  85%
    WebPPL, the language used in this tutorial, is a functionalistic language built on and a subset of Javascript, with primitives for sampling from random variables and for Bayesian inference.

    1. Functional Programming - Why and How  20%
      WebPPL (and several other PPLs) requires functional programming. This subchapter explains why, and gives a few basics if you aren’t familiar with it.
  3. Bayesian Analysis 
    This chapter uses WebPPL to do Bayesian analysis, which could be useful background to readers who are less familiar with Bayesian methods. This chapter also shows the versatility of probabilistic programming.

    1. Bayesian Inference  80%
      Bayesian inference (a.k.a. conditioning) is a method for using observed/empirical data to improve your estimate of the probability distribution of a random variable.

    2. Empirical Bayesian Analysis  50%
      Empirical Bayesian data analysis methods are an attractive alternative to frequentist methods – e.g. Null Hypothesis Significance Testing – to evaluate the results of experiments, etc.

Other Resources

A. Interactive WebPPL editor – to create and modify your own markdown pages, saved in your browser’s cache.

B. Probabilistic Models of Cognition – an on-line book for the cognitive science applications of WebPPL. CAUTION: This book uses an older version of WebPPL and the syntax and functions are somewhat different than used in this tutorial.

C. WebPPL Language Manual – a tutorial introduction to the design of WebPPL, which can help you understand how the language is interpreted and executed, and therefore why the language is designed the way it is (e.g. functional programming).

D. WebPPL Language Reference – specification of components and functions in the language.

E. WebPPL.org – interactive editor and local installation instructions. (Note: this editor does not have all the javascript libraries necessary to run the models presented here.)