Funktionale Programmierung 2

Aufbauend auf den Inhalten des Moduls "Funktionale Programmierung" (1), werden in dieser Veranstaltung praktische, aber auch theoretische vertiefende Inhalte präsentiert, die die Studierenden in die Lage versetzen, umfangreiche, kommerziell nutzbare Software in Haskell schreiben zu können. Die konkreten Themen werden jeweils vorab individuell mit den Studierenden vereinbart. Mögliche Themen sind:

  • Type families
  • FFI
  • GADTs
  • Liquid Haskell
  • Template Haskell
  • GUI/Grafik
  • Lenses
  • Parallel Haskell
  • GHC Core
  • PureScript/Clojure/Elm/Elixier/Erlang

Lernziele

Durch erfolgreichen Abschluss der Lehrveranstaltung können die Studierenden:

  • selbständiges Erarbeiten von funktionalen abstrakten Themen
  • reale Anwendungen in Haskell implementieren
  • Anwendung von funktionalen Aspekten in anderen Sprachen
  • Aufbau und funktionsweise eines funktionalen Compilers verstehen
  • Abstraktionen erkennen und ausnutzen
  • Vor- und Nachteile von Laziness beurteilen
  • Möglichkeiten von Typklassen einschätzen

Literatur

  • Simon Marlow: ”Parallel and Concurrent Programming in Haskell”, O’Reilly Media, Inc., ISBN: 9781449335908, 2013
  • Bryan O’Sullivan, Don Stewart, John Goerzen: ”Real World Haskell”, O’Reilly Media, Inc., 2008 (https://book.realworldhaskell.org/)
  • https://wiki.haskell.org/Haskell
  • Richard Bird: ”Pearls of Functional Algorithm Design”, Cambridge University Press, 2010
  • Alejandro Serrano Mena: ”Practical Haskell - A Real World Guide to Programming”, Springer, 2019
  • Chris Okasaki: ”Purely Functional Data Structure”, Cambridge University Press, 2008

Einordnung in Studiengänge

Master    
Studiengang FSPO(s) Einordnung
Informatik 2021, 2022 Praktische (und Angewandte) Informatik, Software-Engineering und Compilerbau
Medieninformatik 2021, 2022 Praktische (und Angewandte) Informatik
Software Engineering 2021, 2022 (Advanced) Software Engineering, Praktische Informatik
Künstliche Intelligenz 2021, 2022 Praktische (und Angewandte) Informatik
Mathematik 2018 Informatik

(Angaben ohne Gewähr)

Termine SS24

Vorlesung: Montag 12:00 (cct) - 14 Uhr in O28-1002

Übungen: Freitag 10:00 (st) - 12 Uhr in O27-4108