Overview

There are a few types of homework in the course – mathematical exercises, coding exercises, and preparation and delivery of a course project.

Exercises

Homework Subject Graded?
1 Inference Review Yes
2 FOPPL Evaluator Yes
3 FOPPL IS, MH within Gibbs, and HMC Inference Engines Yes
4 FOPPL Black-Box Variational Inference Engine Yes
5 HOPPL Evaluator Yes
6 HOPPL SMC Inference Engine Yes

Note: the coding exercises are a self-reinforcing sequence of programming tasks that build on each other. It is strongly suggest that you work at your own pace ahead of the due dates. You must use Python as the implementing language starting from the provided skeleton code, and, if you do not keep pace the complexity of the subsequent programming tasks will quickly become completely overwhelming.

Likewise the body of code developed could end up being useful for completing your final projects so care and effort in producing high-quality code, above the standard required to “pass” will ultimately also be beneficial to you.

Grading

We will use gradescope.ca for grading. Please use the entry code provided in the first lecture to associate yourself to the class, using the identity information requested in the slides.

For most homeworks your “hand-in” will be .pdf with clickable \url{} links to a W&B reports which themselves are cloned from provided example solution reports.

Extras

The following is a collection of exercises that have been used in previous versions of the class and in other pedagogical settings. For students wishing to examine the inner-inner workings of compilation and automatic differentiation these exercises are particularly insightful.

Extra Subject Graded?
1 Learning Clojure (worksheets) No
2 Inference review (worksheets) No
3 Learning Anglican (worksheets) No
4 FOPPL Compiler No
5 FOPPL Automatic differentiation System (toy) No