Skip to main content

Logo for BOB BOB 2020

28th February 2020

Berlin, Germany

Part of the BOB series
Lohmann & Birkner »

Tutorials B

Sessions in this room

  1. in Tutorials B

    Einführung in Haskell (Erika Bor)

    Haskell ist eine stark typisierte Programmiersprache. Typen helfen den Programmierenden, Werte und Funktionen richtig einzusetzen. So werden Fehler im Programmcode zur Compile-Zeit erkannt und treten nicht erst zur Laufzeit in Erscheinung.

    Dieses Tutorial kann ohne jegliche Vorkenntnisse in Haskell und funktionaler Programmierung besucht werden.

    Angefangen bei “Hello, world!” tasten wir uns Schritt für Schritt zu zusammengesetzten Daten, Listen, Rekursionen und Funktionen höherer Ordnung vor. Dabei liegt der Schwerpunkt darin, Erfahrungen, die mir beim Einstieg geholfen haben, mit den TeilnehmerInnen zu teilen.

  2. in Tutorials B

    Graphen@Problemlösen (Holger Tiemeyer)

    Systemausprägungen und Anforderungen können multidimensionalen Ausprägungen unterliegen: Zigtausende Confluence-Seiten, endlos lange JIRA-Boards, hunderte Microservices, Cloud-Umgebungen etc. Der Einstieg in solche ein Projekt oder solch eine Domäne stellt uns als Softwareentwickler oder -architekt oft vor enorme Herausforderungen: Wir müssen diese Domänen schnell erfassen, um Lösungen für anfallende Anforderungen und Aufgaben zu finden. Oft genug stehen wir vor der Frage: Wie gehe ich jetzt an das Problem heran? Wo ist der Schlüssel zur richtigen Lösung? Dabei gibt es eine einfache Möglichkeit der Abstraktion: Graphen – ein miteinander durch Pointer (Zeiger) verbundenes Informationsgeflecht. Diese Pointer sind eine Basisgeste des Menschen und stellen das am stärksten ausgeprägten Visualisierungs-Tool dar. Mit minimalem Informationsverlust lassen sich hiermit die besten Lösungswege für ein Problem finden.

    In diesem Tutorial wollen wir Lösungen anhand graphenbasierter Modellierung erproben: Wie können wir sie effektiv einsetzen? Wie können wir mit ihnen Problemlösungsbarrieren überwinden und anhand von effektiver Informationsvisualisierung unsere Problemdomänen erklären und erfassen?

  3. in Tutorials B

    Einführung in F# (Tim Digel)

    F# (F Sharp) ist eine von Microsoft entwickelte funktionale Programmiersprache im .NET-Universum. Die Syntax erinnert sehr stark an OCaml.

    In diesem Tutorial starten wir bei Null und sehen uns nach vielen einführenden Anweisungen zusammengesetzte Datentypen (Records, Listen, etc.), Typisierung, Namensräume, Einrückung, Tests und Abhängigkeiten an.

    Es wird kein Vorwissen vorausgesetzt. Grundideen funktionaler Programmierung sind hilfreich, aber nicht zwingend erforderlich.

    Vorbereitung

    Um möglichst praxisnah zu arbeiten werden wir einiges in Visual Studio unter Windows betrachten. Um plattformunabhängig allen Interessierten die Möglichkeit zu geben, mit zu programmieren, verwenden wir zu Beginn Visual Studio Code. Weiter benötigen wir die Dotnet-SDK (siehe z. B. für Ubuntu). Alternativ lässt sich das komplette Setup unter Linux non-invasiv mit Hilfe von Nix mit diesen Schritten herstellen:

    # Install Nix Package Manager, see https://nixos.org/nix/download.html
    # Nix is available for Linux &  MacOS
    # Create a playground
     mkdir -p ~/fsharp-tutorial && cd ~/fsharp-tutorial
    # This will download some nix packages and starts a sub shell
    # Unfortunately dotnet-sdk isn't available for MacOS
    NIXPKGS_ALLOW_UNFREE=1 nix-shell -p dotnet-sdk -p vscode -p fsharp
    
    # Create a new F#-project
    export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
    dotnet new console -lang F# -i MyProject
    
    # Start Visual Studio Code
    code .
    # Install Extension: Ionide-fsharp
    

    In Visual Studio Code benötigen wir dann noch die Erweiterung Ionide-fsharp.

  4. in Tutorials B

    Ganz praktisch: Probabilistische Funktionen (Christoph Schmalhofer)

    Zufallsprozesse sind überall, zum Beispiel: Aktienkurse, Antwortzeiten, Luftverschmutzung. Probabilistische Funktionen können Zufallsprozesse lernen, simulieren und Vorhersagen versuchen.

    Ein wenig Theorie
    • Universal (Higher Order) Probabilistic Programming
    • Stochastische Prozesse sind Probabilistische Funktionen
    • "A Convenient Category for Higher-Order Probability Theory"
    Intuition Gaußprozesse
    • einfach, gutartig, vielseitig
    • Anwendungen ohne Ende: Optimierung, Robotik, Geowissenschaften, ...
    • viele Einzeiler, viele Plots
    Fallstudie: Interpolation Mauna Loa CO2-Daten
    • Julia GaussianProcesses.jl
    • Kovarianzfunktions-Zoo
    Tinkering around
    • Analyse einfacher Datasets
    • probabilistische Funktionen selbst gebaut (Closures + Currying)