It's been a good term. Stay safe but enjoy your break!

3/29: Project deliverables are due on Friday 4/23.

2/8: The project proposal is due on Tuesday 2/23.

1/31: Pick a paper to lead by Friday 2/5 (see message on Zulip).

1/24: The assignment is due on Wednesday 2/3.

1/8: The first lecture will happen synchronously on Monday January 11, 1:00 pm Eastern Time. The Zoom link can be found on the course Zulip. You should have received an email invite to the course Zulip.

Course Overview

This is the Winter 2021 offering of the research-oriented graduate course CS 842, Advanced Topics in Language Design and Implementation. The focus of this offering is probabilistic programming languages (PPLs).

PPLs are emerging as a powerful tool for probabilistic modeling and inference. In a PPL, programs are probabilistic models describing inference problems and the language implementation helps solve the inference problems automatically.

This course introduces probabilistic programming and examines the state of the art in PPL research. Students of different backgrounds—including programming languages, machine learning, and statistics—are encouraged to bring their own expertise to bear on the design, semantics, and implementation of PPLs.


An undergraduate-level course in programming languages (consider CS 241, CS 442, and CS 444 offered at Waterloo) and one in probability and statistics. Experience in machine learning is a plus.

Undergraduate students looking for challenges are welcome.