5SSD0 Course Syllabus

Learning Goals

  • This course provides an introduction to Bayesian machine learning and information processing systems. The Bayesian approach affords a unified and consistent treatment of many useful information processing systems.
  • Upon successful completion of the course, students should be able to:
    • understand the essence of the Bayesian approach to information processing.
    • specify a solution to an information processing problem as a Bayesian inference task on a probabilistic model.
    • design a probabilistic model by a specifying a likelihood function and prior distribution;
    • Code the solution in a probabilistic programming package.
    • execute the Bayesian inference task either analytically or approximately.
    • evaluate the resulting solution by examination of Bayesian evidence.
    • be aware of the properties of commonly used probability distribitions such as the Gaussian, Gamma and multinomial distribution; models such as hidden Markov models and Gaussian mixture models; and inference methods such as the Laplace approximation, variational Bayes and message passing in a factor graph.

Entrance Requirements (pre-knowledge)

  • Undergraduate courses in Linear Algebra and Probability Theory (or Statistics).
  • Some scientific programming experience, eg in MATLAB or Python. In this class, we use the Julia programming language, which has a similar syntax to MATLAB, but is (close to) as fast as C.


  • Bert de Vries, rm. FLUX-7.101, overall responsible lecturer

  • Wouter Kouw, rm. FLUX-7.060, responsible for Probabilistic Programming lessons

  • Magnus Koudahl, rm. FLUX-7.060, teaching assistant


  • All materials can be accessed from the course homepage.

  • Materials consist of the following resources:

    • Lecture notes (mandatory)
    • Probabilistic Programming (PP) notes (mandatory)
    • optional materials to help understand the lecture and PP notes
      • video guides to the lecture notes
      • exercises
      • (Recording of) live sessions at regular class hours for this term
      • Q&A at Piazza
      • practice exams
  • Source materials are available at github repo at https://github.com/bertdv/BMLIP. You do not need to bother with this site. If you spot an error in the materials, please raise the issue at Piazza.

Lecture and PP notes and Video Guides

  • The lecture and PP notes contain the mandatory materials. Some lecture notes are extended by a reading assignment, see the first cell in the lecture notes. These reading assignment are also part of the mandatory materials.

  • Slides that are not required for the exam are moved to the end of the notes and preceded by an OPTIONAL SLIDES header.

  • The accompanying Video Guides aim to cover just the main points or (expected) sticky issues in a lecture.

Study Guide

  • Here’s our recommendation on how to study for this class. Before each lecture:

    • First watch the video guide for that lecture
    • Then study the lecture notes
    • Then try to make the exercises for that class.
    • Optionally, come to the live class at regular class hours to discuss remaining issues in person. The live class sessions will be recorded and posted at the class homepage.
  • Aside from the regular classes, you are encouraged to disscuss any issues in Piazza. Your questions will be answered at the Piazza site by fellow students and accorded (or dorrected, amended) by the teaching staff.

Piazza (Q&A)

  • We will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from both classmates and the teaching staff.

  • Sign up for Piazza today if you have not done so. And install the Piazza app on your phone!

  • The quicker you begin asking questions on Piazza (rather than via emails), the quicker you'll benefit from the collective knowledge of your classmates and instructors. We encourage you to ask questions when you're struggling to understand a concept—you can even do so anonymously.

  • We will also disseminate news and announcements via Piazza.

  • Unless it is a personal issue, pose your course-related questions at Piazza (in the right folder).

  • Please contribute to the class by answering questions at Piazza.

    • If so desired, you can contribute anonymously.
    • Answering technical questions at Piazza is a great way to learn. If you really want to understand a topic, you should try to explain it to others.
    • Every question has just a single students' answer that students can edit collectively (and a single instructors’ answer for instructors).
  • You can use LaTeX in Piazza for math (and please do so!).

  • Piazza has a great search feature. Use search before putting in new questions.

Live Class Sessions

  • We will hold live class sessions at the regular class hours.

  • The live classes are an opportunity to speak with the teaching staff directly about any issues.

  • The live sessions will probably be short: as much as possible, I'd like to address technical questions and issues through Piazza so they are more easily accessible and searchable afterwards.

Exam Guide

  • There will be a written exam in multiple-choice format.

  • You are not allowed to use books nor bring printed or handwritten formula sheets to the exam. Difficult-to-remember formulas are supplied at the exam sheet.

  • No smartphones at the exam.

  • The tested material consists of the lecture + PP notes (+ reading assignments as assigned in the first cell/slide of each lecture notebook).

  • The class homepage contains two representative practice exams from previous terms.


  • The slides below the OPTIONAL SLIDES marker are optional for the exam.
In [1]:
open("../../styles/aipstyle.html") do f
    display("text/html", read(f,String))
In [ ]: