Programming Languages

Probabilistic Programming (Praktikum)

Sommer semester 2016

Organization

Organizer Yufei Cai
Alumni
Yufei Cai
Biweekly meeting     Tuesday 14:15-16:00 in A302 (Übungsraum, Gebäude Informatik/Astronomie)
Forum forum-ps.cs.uni-tuebingen.de/c/ppp
Language English
Credits 6 LP (Im Vorlesungsverzeichnis)

Description

The world is full of randomness and uncertainty. Modelling random processes help us make better decisions, but it is not always intuitive to work with these models. Probabilistic programming languages enable us to describe complicated probability models and obtain properties relevant for decision making through the power of modern computers. In this module, we learn the probabilistic programming language Figaro and use it to solve practical problems. Knowledge in probability theory is helpful but not required.

Process

We will work through a series of exercises from the textbook, followed by a free project. The code you write are completely public; you are encouraged to share code and help each other.

We meet once every 2 weeks. During a meeting, you will

  • report what you did,
  • announce what you want to do, and
  • discuss your code and goals with other participants and me.

In each of the fortnights between meetings, you will

  • read 2-3 chapters of the textbook,
  • accomplish your goals announced at the previous meeting, and
  • come up with goals for the next meeting.

How much you read and program is completely up to you. The reading assignment in the plan below is merely a guideline. What you accomplish throughout the semester determines your grade. Missing a meeting counts as doing nothing for 2 weeks.

The goals of each fortnight can be either a series of exercises in the textbook or a mini-project related to the readings of the previous fortnight. If several participants choose the same exercise, they must either choose something else or collaborate with each other.

Textbook

Avi Pfeffer. Practical probabilistic programming.

Meetings

12/04     Organization slides
  Reading: §1, 2, 3
26/04 First project
  Reading: §4, 5
10/05 Bayesian and Markov networks
  Reading: §6, 7
24/05 Collections and objects
  Reading: §8, 9
07/06 Dynamic systems
  Reading: §10, 11
21/06 Factors and samplers
  Reading: §12, 13
05/07 Parameter learning
   
19/07 Final project: proposal
   
02/08 Final project: presentation

Resources