Assignments and Exercises

To practice with the course subjects, you are offered both practical assignments (which contribute towards your course grade), and various exercises. If you need any help or feedback, try your fellow students or ask the instructor during the lectures.


Practical assignments

The practical assignments are preferably done in groups of two. Please enroll yourselves in a group in Blackboard to enable submission of the assignments.

The practical assignments consist of questions and (coding) exercises. Some can be answered and explained using only the theory discussed in class; others are to be answered using freely available Bayesian network software tools or other software packages (see below).

Assignments, necessary resources and submission instructions (including deadlines) will be made available through Blackboard. Assignments will be marked on a 5-point scale (see the Examination and grading page). NOTE(!) The assignment deadlines will be strictly enforced.


Software for practical assignments

Numerous software packages and libraries exist for constructing and reasoning with probabilistic graphical models. Examples of libraries include pyBBN, pgmpy, libpgm and pomegranate for python; bnlearn, gRain and RHugin for R; Bayes-stack for Haskell, and Mens X Machina for Matlab. Also, specific languages have been developed to facilitate probabilistic modelling, such as BUGS, PRISM, Stan and PyMC.

Bayesian network software

None of the above-mentioned libraries, however, come with the nice GUIs that the following Bayesian network software packages have. For practical assignments A and B, you should install one of the GUI-based packages of your choice. A list of possible options is given below; most of these have a free downloadable (demo-) version.(GeNIe or SamIam are recommended, or if you prefer a commercial product: Hugin-Lite or Netica.) The software may also help you to gain more insight in inference (Chapter 4) and BN construction (Chapter 5).

Note that most software packages allow a choice between inference algorithms. Be sure to select an exact inference algorithm (e.g. Lauritzen/Spiegelhalter, Jensen, Hugin, Shenoy/Shafer, Pearl, Variable Elimination) and not an approximate one (e.g. (Loopy) belief propagation, variational inference, sampling, Monte Carlo simulation)!

The following two pages present an overview of existing software packages: Specific packages are listed here:
Probabilistic programming assignment software


Exercises


syllabus exercises
The syllabus contains various exercises for the subjects treated in the course, and provides hints or answers to most of them. For each lecture, the relevant exercises are listed in the class schedule. You are advised to make the exercises, most of which are former exam questions. Doing so will form a good preparation for the written test in the sense that you practice with the theory; this allows you to assess your own advancement during the course.

Note that exercises are all very different, except for those addressing Pearl's algorithm. This shows that you can expect a question that requires applying Pearl during the exam. It also shows that the other exam questions are not simply variants of questions you have already practiced. In each case you need to try and identify the underlying theory from the course that you need to apply to solve the problem.

studymanual questions
The studymanual lists questions per syllabus chapter to guide your selfstudies. The answer to each question is in the associated chapter, but trying to reproduce it by formulating your own answer will reveal what you did and did not grasp from the material covered in the chapter, and indicates to what extent you need to go through the chapter again. This type of question will not be part of the written exam.

former exams
The majority of the exercises in the syllabus are former exam questions and therefore representative of the type of questions you can expect for the written test (see also remark about syllabus exercises above). Several actual exams are available through A-Eskwadraat. Note that all exams include a question about Pearl's algorithm, so be sure to practice that! Also, all exams include questions that at first glance do not resemble what you have seen before; you should be able to solve these with what you have learned in the course.