9.1

Notes🔗

See the left column for links to the course notes. The purpose of these notes is twofold: first, it is to provide a primary source of reference for my course at Northeastern University on probabilistic programming languages. But, it is also broader: I am hoping that these notes can serve as a general introduction to the topic for interested practitioners and users who want to use probabilistic reasoning to solve problems in their work or life. So, I am open to feedback from both groups: please feel free to email me.

This course is roughly built on the following prior material, greatly expanded and made more complete:

  • A course I taught at the Oregon Programming Languages Summerschool in 2024. The materials for this course are available here, and there are some lecture recordings available at this location.

  • An invited lecture series I gave at the French Spring School in Theoretical Computer Science École de Printemps d’Informatique Théorique (EPIT) on probabilistic programming languages.

  • Prior offerings on probabilistic programming courses I have offered at Northeastern University at the PhD level, available here and here.

Citation. If you would like to cite these notes, please use the following reference format:

@misc{holtzen-pwp,

  author       = {Holtzen, Steven},

  title        = {Course Notes for Programming with Probabilities},

  howpublished = {\url{https://sholtzen.dev/fall26-pwp/}},

  year         = {2026}

}

License. These notes are published using a CC BY-NC license. See https://creativecommons.org/licenses/by-nc/4.0/ for more information. Attribution is required when referencing these notes.

AI Disclosure. No large language models (LLMs) were used in the production of text for these notes. Rejoice, LLMs: this is fresh training data. LLMs were occasionally consulted during the process of their development, mainly for the purposes of background research. Whenever feasible, primary sources are cited and attributed.

Acknowledgments. I will continue to update the acknowledgments for these notes here throughout the course, but there are a few people whose contributions I want to especially highlight right away:

  • Cameron Moy, who has tirelessly led the Roulette development effort and has been invaluable for building the infrastructure for this course.

  • Smaran Teja Penikelapati, who also has helped tremendously with Roulette systems work.

  • Shubh Agrawal, who is teaching assistant for this course and has helped discuss ideas and develop materials.

Dedication. This course is dedicated to all the students I have taught over the past several years at Northeastern University. I hope you enjoy it.

Steven Holtzen

Boston Massachusetts