Skip to content

Latest commit

 

History

History
372 lines (310 loc) · 10.1 KB

index.md

File metadata and controls

372 lines (310 loc) · 10.1 KB
title layout nav_order
Syllabus
home
1

CS 7470: Topics in Programming Languages: Foundations of Probabilistic Programming

  • 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.

Evaluation & graded material

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!

Schedule

DateTopic
Fri Sept 8 Introduction & Overview
  • Lecture 1 Slides
  • Reading: Lecture 1 course notes
  • Recommended exercises if you have not programmed in OCaml before
  • Foundations
    Tues Sept 12 Propositional Probability I: Semantics
    • Lecture 2 notes
    • Reading: Chapter 2 of {% cite darwiche2009modeling %}
    • Supplemental Reading: Chapter 1 of {% cite biere2009handbook %}
    Fri. Sept. 15 Propositional Probability II: A propositional PPL
    • Lecture 3 notes
    • Reading: Chapter 3 of {% cite darwiche2009modeling %}
    • Supplemental Reading: Chapter 8.1, 8.2 of {% cite graham1989concrete %}.
    Tues. Sept 19 Propositional Probability III: Knowledge compilation
    • Lecture 4 notes
    • Reading: {% cite darwiche2002knowledge %}
    • Supplemental reading: {% cite chavira2008probabilistic %}
    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
    • Reading: Chapter 2 up to section 2.4 of {% cite barthe2020foundations %}
    • General reference on continuous probability: {% cite axler2020measure %}
    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
    • Reading: {% reference baydin2018automatic %}
    Fri Oct. 27 Automatic Differentiation II: Applications
    • Reading:
    • Supplemental reading: {% cite lew2023adev %}
    Static Analysis
    Tues Oct 31 Probabilistic Separation Logics I
    • Reading: {% cite li2023lilac %}
    • Supplemental reading: {% cite o2019separation %}, this textbook draft, {% cite reynolds2002separation %}
    Fri Nov. 3 Probabilistic Separation Logics II
    • Reading: Continue {% cite li2023lilac %}
    Tues Nov 7 Weakest Pre-Expectations
    • Reading: {% cite morgan1996probabilistic %}. This is a difficult read; do your best.
    Fri Nov 10 Weakest Pre-Expectations II
    • Reading: {% cite morgan1996probabilistic %}
    • Supplemental Reading: {% cite olmedo2016reasoning %}
    Potpourri: A collection of modern topics in PPLs
    Tues Nov. 13 Verified Inference
    • Reading: {% cite beutner2022guaranteed %}
    Fri Nov. 17 Generating Functions
    • Reading: {% cite klinkenberg2020generating %}
    Tues Nov. 21 Non-Standard Semantics of PPLs
    • Reading: {% cite baudart2020reactive %}
    Fri Nov. 24 No Class (Fall Break)
    Tues Nov. 28 Advanced Semantics of PPLs
    • Reading: {% cite dash2023affine %}
    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

    {% bibliography --cited %}