Zum Inhalt
Fakultät für Informatik

Proseminar - Perlen der funktionalen Programmierung

Beginn: Veranstaltungsort: Online
Veran­stal­tungs­art:
  • Proseminare
Proseminar - Perlen der funktionalen Programmierung
Veranstalter: Dr. Andrej Dudenhefner
Typ: Proseminar
Modulnummer: INF-BSc-110
Termine: Online Blockseminar
23.01.2025, 24.01.2025
10-13 Uhr und 14-18 Uhr
Ausarbeitung: 5 Seiten als PDF
Deutsch oder Englisch
EasyChair Format

Aktuelles

Siehe Moodle Raum.

Beschreibung

In diesem Proseminar wollen wir uns mit "Perlen" der funktionalen Programmierung befassen:

  • elegante Algorithmen
  • effiziente Datenstrukturen
  • Domain-spezifische Programmbibliotheken (z.B. für Parsing)
  • Herleitung von (effizienten) Programmen aus korrekten, aber ineffizienten Beschreibungen

Neben den fachlichen Aspekten sollen das Lesen, Zusammenfassen und die Präsentation von Forschungsergebnissen erlernt werden.

Die Vortragsthemen des Proseminars basieren größtenteils auf Forschungsartikeln, die als "Functional Pearls" in der Zeitschrift Journal of Functional Programming oder einer der großen Konferenzen im Bereich Programmiersprachen erschienen sind.

Einige dieser Arbeiten benutzen die Programmiersprache Haskell. Daher werden wir uns in den ersten Treffen etwas näher mit den Besonderheiten von Haskell beschäftigen:
bedarfsgesteuerte Auswertung und "unendliche" Datenstrukturen, Haskell Typsystem, Typklassen und monadische Typen.

Leistung

  • Benoteter Vortrag (20 Minuten Vortragszeit + 5 Minuten Rückfragen)
  • Schriftliche, benotete Ausarbeitung (5 Seiten)
  • Teilnahme an den Vorträgen von anderen Teilnehmenden

Die Abschlussnote bewertet die Qualität der Diskussionsbeiträge, den Vortrag und die Ausarbeitung.

Präsentationstechniken

Das Element Präsentationstechniken (1 CP) des Moduls Proseminar (INF-BSc-110) findet in Präsenz statt und umfasst folgende Termine. 

Zeit Di. 14:15 - 15:45
Ort OH12 R1.054
Termine 15.10., 22.10., 05.11., 12.11.
Beispiel Eigenheiten der Kochschen Schneeflocke, LaTeX Quellcode

Themenliste

  1. A Play on Regular Expressions
  2. A Poor Man's Concurrency Monad
  3. A Pretty But Not Greedy Printer
  4. A Program to Solve Sudoku
  5. A Short Cut to Deforestation
  6. All Sorts of Permutations
  7. Composing Fractals
  8. Data Types a la Carte
  9. Enumerating the Rationals
  10. Every Bit Counts
  11. Explaining Binomial Heaps
  12. Fun with Semirings
  13. Inverting the Burrows–Wheeler Transform
  14. Lazy Wheel Sieves and Spirals of Primes
  15. Monadic Parsing in Haskell
  16. Parsing Permutation Phrases
  17. Pickler Combinators
  18. The Genuine Sieve of Eratosthenes
  19. Two Can Keep a Secret If One of Them Uses Haskell
  20. Typed quote_antiquote or Compile-time Parsing
  21. I am not a Number - I am a Free Variable
  22. HasChor Functional Choreographic Programming for All
  23. On Generating Unique Names
  24. Implicit Configurations - or Type Classes Reflect the Values of Types
  25. Streams and Unique Fixed Points

Alternativ zu den oben genannten Themen kann (nach Absprache) eine Veröffentlichung der Zeitschrift Journal of Functional Programming im Bereich Functional Pearls behandelt werden.

FAQ

  • Muss das gesamte Papier vorgestellt werden?
    • Nein. Eine Kompetenz des Proseminars ist die passende Auswahl der relevanten Materie für die gegebene Vortragslänge.
  • Muss es einen Eigenanteil geben?
    • Ja. Es muss dem Betreuer deutlich werden, dass mit der Materie interagiert wurde.
      Am effektivsten sind eigene Beispiele, die nicht im Originalwerk enthalten sind.
  • ​​​​​​Müssen noch andere Papiere eingebunden werden?
    • ​​​​​​​​​​​​​​Ja. Der vorgestellte Inhalt soll kurz in den wissenschaftlichen Kontext eingeordnet werden.
      Oftmals reicht dazu die im Originalwerk referenzierte Literatur.
      Bei einer älteren Arbeit wäre eine Literaturrecherche sinnvoll.
  • Dürfen nach der Abgabe des Folienentwurfs noch kleine Änderungen gemacht werden?
    • ​​​​​​​​​​​​​​Ja. Für die Benotung zählt die Version, die beim Vortrag verwendet wird.
  • Muss jedes Codeschnipsel einzeln referenziert werden?
    • Nein. ​​​​​​​​​​​​​​Es muss insgesamt deutlich werden, falls fremder Code gezeigt wird.
      Wenn viel Code aus dem Originalwerk stammt, dann reicht es aus, am Anfang des Vortrags dies aufzuzeigen.
  • Gilt bei allen Vorträgen Anwesenheitspflicht?
    • ​​​​​​​​​​​​​​Ja.