title | layout | nav_order |
---|---|---|
Syllabus |
home |
1 |
- Instructor: Steven Holtzen,
[email protected]
- Session: Fall 2023
- Meeting time: Tuesday/Friday 9:50 am - 11:30 am (EST)
- Location: Ryder Hall 433 (email Steven for remote participation link)
- Office hours by appointment
Probabilistic programming languages (PPLs) use the syntax and semantics of programming languages to define probabilistic models. PPLs enable a diverse audience – data scientists, systems designers, medical doctors, etc. – to design and reason about probabilistic systems. PPLs are becoming a central topic in artificial intelligence and programming languages research, with increasing interest from industry and academia in designing and applying PPLs.
The goal of this course is to introduce the core ideas of probabilistic programming languages: probabilistic inference, semantics, program analysis, language design, and applications. The course will consist of formal lectures as well as research presentations by students surveying the modern landscape of developments in probabilistic programming. There will be a minor project involving implementing a probabilistic programming language, and a self-directed term project that aims to deeply explore some of the core ideas of probabilistic programming.
The course grade will be determined by the following graded material:
- 40% minor projects (20% each). The two minor projects are [implementing a discrete PPL]( {{ '/projects/discrete_language.html' | relative_url }}) and [implementing a continuous language]({{ '/projects/continuous_language.html' | relative_url }}).
- 20% participation.
- 40% [final course project]({{ '/projects/term_project.html' | relative_url }})
All graded material is turned in on Canvas. Join our Slack!
Date | Topic |
---|---|
Fri Sept 8 |
Introduction & Overview
|
Foundations | |
Tues Sept 12 |
Propositional Probability I: Semantics
|
Fri. Sept. 15 |
Propositional Probability II: A propositional PPL
|
Tues. Sept 19 |
Propositional Probability III: Knowledge compilation
|
Fri. Sept 22 | Propositional Probability IV: Binary decision diagrams |
Tues. Sept 26 | No Class (please attend Software Day) |
Fri. Sept 29 | Discrete probabilistic programming I: Syntax & semantics |
Tues Oct. 3 | Discrete probabilistic programming II: Compilation |
Fri Oct. 6 | Discrete probabilistic programming III: Observation |
Designing and Implementing a Continuous PPL | |
Tues Oct. 10 |
Discrete sampling semantics
|
Fri Oct. 13 |
Importance sampling & continuous languages
|
Systems Week | |
Tues Oct. 17 | Systems Week. See the Systems Week page. |
Fri Oct. 20 | Systems Week |
Automatic Differentiation | |
Tues Oct. 24 |
Automatic Differentiation I: Theory
|
Fri Oct. 27 |
Automatic Differentiation II: Applications
|
Static Analysis | |
Tues Oct 31 |
Probabilistic Separation Logics I
|
Fri Nov. 3 |
Probabilistic Separation Logics II
|
Tues Nov 7 |
Weakest Pre-Expectations
|
Fri Nov 10 |
Weakest Pre-Expectations II
|
Potpourri: A collection of modern topics in PPLs | |
Tues Nov. 13 |
Verified Inference
|
Fri Nov. 17 |
Generating Functions
|
Tues Nov. 21 |
Non-Standard Semantics of PPLs
|
Fri Nov. 24 | No Class (Fall Break) |
Tues Nov. 28 |
Advanced Semantics of PPLs
|
Fri Dec. 1 | Discussion & Outlook |
Final Presentations | |
Tues Dec. 4 | Presentation Slot 1 |
Fri Dec. 8 | Presentation Slot 2 |
[See the reading list for more reading]({{ '/reading_list.html' | relative_url }})
{% bibliography --cited %}