Skip to main content
BOB 2019

Logo of BOB 2019 BOB 2019

22nd March 2019

Berlin, Germany

Part of the BOB series
Lohmann & Birkner »

Tutorials #1

Sessions in this room

  1. in Tutorials #1

    Introduction to Web Development in Racket

    Racket is a Lisp that strives not only to be a best-in-breed environment for language-oriented programming; it’s also a great language for doing systems programming. In particular, Racket comes out-of-the-box with an HTTP server and a potpourri of libraries and DSLs for web development. For some time now, pretty much every language has had such feature, so what makes Racket different and worth consideration? A killer feature that distinguishes Racket from other frameworks and languages it is support for continuations and their clever use to make a full-fledged language for web programming, which help make REST and allied concepts such as HATEOAS automatic. The aim of this tutorial is to give the audience an impression of what web programming in Racket looks like by building a little HTTP API. A Racket package will be made available with which you can hack along with the teacher as we proceed through the tutorial.

  2. in Tutorials #1

    Clojure, Getting Your Feed Wet

    Ever wanted to try using Clojure? Never got the time? This is an occasion!

    Coming from a mainstream language programming background (Java), learning a language like Clojure is like hitting your head on the wall… repeatedly.

    After a time, however, pieces seem to fall into place, and the magic happens: I started to reason in terms of data processing, and not in terms of objects anymore. If you want to come with me on my journey of learning Clojure as an OOP guy, I’ll be happy to show you strange beasts such as Dynamic Dispatch, Threading, Contract-Based Programming, and much much more.

  3. in Tutorials #1

    Superficial SQL Indexing

    An Epidemic Plague

    What if a single root cause was responsible for most SQL performance issues?

    Proper indexing is a very time and cost-effective way to improve SQL performance. Yet hardly anyone gets it right so that about 50% of all SQL performance problems can be attributed to the index/query mismatch.

    In this tutorial I’ll explain how organisational structures hinder proper indexing and why it is not sufficiently covered in the relevant literature. Naturally, this tutorial will also explain how to approach indexing for a better result and demonstrate the most common indexing mistakes in a fun and educating way: in a live quiz with the audience.

  4. in Tutorials #1

    Einstieg in die Probabilistische Programmierung

    Die letzten Jahre hat Probabilistisches Programmieren Fahrt aufgenommen. Es wird mehr geforscht, publiziert, konferiert, entwickelt und auch angewendet.

    Der Einstieg ist durch die Integration in Mainstream-Sprachen wie Haskell, Scala und Python einfach geworden.

    Probabilistische Programme sind lernfähige Simulationen

    Kurz vorgestellt - alte Bekannte als Probabilistische Programme:

    • Naive Bayes
    • Markov-Kette
    • Bayes-Netze
    • Gauß-Prozesse


    • Eigenbau einer diskreten Wahrscheinlichkeitsmonade (Scala)
    • die Sampling-Variante von Rainier (Scala))
    • Olegs Freie Wahrscheinlichkeitsmonade (Haskell))

    Kurze Vorstellung der Algorithmen:

    • MCMC
    • Variational Bayesian Methods
    • Deep Probabilistic Programming: kann Tensorflow Probability wirklich mehr?

    Erfahrungsbericht - Probabilistische Logik für Fahrzeugkonfiguration:

    • Principle of Explosion: “ex falso quodlibet”
    • Markov-Logic mit Figaro (Scala)