There are a few types of homework in the course – mathematical exercises, coding exercises, and preparation and delivery of a course project.
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.
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.
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 |