STA4516 -- 2015 -- Daniel Roy

Topics in Probabilistic Programming

Missed registration?

The course starts midterm and so it is possible that you may be finding this course after registration deadlines have passed. If you would like to take the course, please contact me (daniel.roy at and I will attempt to get you registered.


Probabilistic programming is an emerging area of machine learning, statistics, and computer science, and can be characterized as the systematic study of algorithmic processes that describe and transform uncertainty. Probabilistic programming languages give users the ability to describe complex probabilistic models with code, rather than formulas, while universal inference engines automate the task of implementing inference algorithms for models described by probabilistic code. This class will discuss the key ideas behind probabilistic programming languages and systems, as well as give students a glimpse at the theoretical foundations of probabilistic programming itself.


Mathematical maturity and some background in probability/measure theory, functional programming, and analysis recommended.

Time, Location, Etc.

Date/Time: 2nd half of Fall 2014, Tuesdays, 2--5pm from Oct. 27 through Dec. 8
Room: SS2116.

Thinking about attending? Please fill out this form.


Link to syllabus: contains course outline, reading, grading policy, etc.

Course poster

Feel free to use this poster to let others know about the class.

Scribed lecture notes

  1. Lightweight Inference [source]

If you find errors/omissions or would otherwise like to improve the slides, please send updated versions. I may eventually migrate this to a github repo.


Every student taking this class for credit is required to scribe at least one lecture. Those auditing the course may be asked to scribe as well. Scribe notes should present the material covered in class in a clear, concise, and comprehensive manner, which will likely require that one go beyond merely replicating what is written on the chalk board. (This MIT course website has a section on Scribing that does a good job describing "good" scribe notes.)

Scribe notes are to be produced using this Latex template. Scribe notes (.tex file and all additional files) should be emailed to me no later than Friday of the same week. I will review the scribe notes to check the technical content and quality of writing, and will give feedback and ask for revisions if necessary. Please make sure to proofread the notes carefully before submitting. Completed scribe notes will be posted above.

Student Presentations

List of upcoming presentations and presentors. See the syllabus for information on presentations and expectations.

  • Nov 17
    Reasoning about Reasoning by Nested Conditioning: Modeling Theory of Mind with Probabilistic Programs
    Presented by Jimmy Ba
  • Nov 17
    The magic of logical inference in probabilistic programming
    Presented by Leon Illanes