Vorlesung:

Einführung in die Funktionale Programmierung [EFP] (WS 2015/16)

PD Dr. David Sabel

QIS/LSF

Veranstaltungsbeschreibung im QIS/LSF

Aktuelles
  • Klausurergebnisse: Die Ergebnisse (ohne Gewähr auf Richtigkeit) können hier abgefragt werden.

    Die Klausureinsicht findet am Freitag, 18.12.2015 um 10:00 Uhr in Raum 216 (Institut für Informatik) statt.

    Eine Nachklausur findet nicht statt, jedoch können mündliche Prüfungen stattdessen abgelegt werden.


  • Klausur: Die Klausur findet am Freitag den 11. Dezember 2015 um 9:00 Uhr in Hörsaal H IV (Campus Bockenheim) statt.
    • Es sind keine Hilfsmittel erlaubt
    • Bitte bringen Sie ihren Studierendenausweis mit
  • type, newtype, data:
    type definiert ein Typsynonym. Mit type definierte Typen können nicht zu Klasseninstanzen gemacht werden. Mit newtype jedoch schon (weil quasi ein neuer Konstruktor, den alten Typ verpackt. Z.B.
    data F1 = F1 Bool
    newtype F2 = F2 Bool
    type F3 = Bool
    Die Definitionen von F1 und F2 sind jedoch nicht äquivalent, da der Compiler optimiert und den zusätzlichen Konstruktor F2 eliminiert, d.h. das interne Verhalten ist doch eher wie vom Typsynonym F3. Das macht der folgende Test deutlich:
    Prelude> case undefined of {F1 _ -> 1}
    *** Exception: Prelude.undefined
    Prelude> case undefined of {F2 _ -> 1}
    1
    Prelude> case undefined of { _ -> 1}
    1
  • Bitte beachten: Die Veranstaltung findet 6-stündig in der ersten Hälfte des Wintersemesters statt!.
  • Inhalte (Planung):
    • Funktionale Kernsprachen: Anhand aufeinander aufbauender Kernsprachen wird ein semantisches Modell für die Funktionale Programmiersprache Haskell konstruiert. Im Vordergrund steht dabei die operationale Semantik der Sprache.
    • Haskell: Die wesentlichen Konzepte der funktionalen Programmierung werden anhand der Programmiersprache Haskell erläutert. Themen sind u.a. rekursive Listenprogrammierung, Datentypen, Rekursive Datenstrukturen, Haskells Modulsystem, Haskells Typklassensystem.
    • Typisierung: Diese Thema widmet sich im Kern der Fragestellung, wie Haskell-Programme typisiert werden. Neben einer reinen Typüberprüfung werden Typinferenzverfahren insbesondere zur Typisierung von rekursiven Funktionen besprochen.
    • Ein- und Ausgabe in Haskell, monadisches Programmieren: Während der rein-funktionale Kern von Haskell keine Seiteneffekte kennt, kann mithilfe der IO-Monade Ein- und Ausgabe in Haskell programmiert werden. In diesem Kapitel wird allgemein das Konzepte des monadischen Programmierens erläutert und das Programmieren von Seiteneffektbehafteten Programmen in Haskell eingebüt.
    • Übungen: Die Übungsaufgaben dienen sowohl zur Einübung der theoretischen Grundlagen als auch dem Erwerb von (funktionalen) Programmierfertigkeiten.
Klausur

Fr, 11. Dezember 2015 um 9:00 Uhr in Hörsaal H IV (Campus Bockenheim)

Vorlesung

Mo 10-12, SR 11 (Robert-Mayer-Str. 11-15, EG), bis 03.12.2015

Do 10-12, SR 307 (Robert-Mayer-Str. 11-15, 3.Stock) bis 03.12.2015

Übung

Mi, 14-16, SR 307 (Robert-Mayer-Str. 11-15, 3.Stock), bis 03.12.2015

Aufgaben
Blatt PDF Programme / Sonstiges Abgabe Besprechung
1 blatt1.pdf Die Implementierungen der Collatz-Funktion in Haskell: Collatz.hs 21. Oktober 21. Oktober
2 blatt2.pdf Der Datentyp für Lambda-Ausdrücke: blatt2.hs 26. Oktober 28. Oktober
3 blatt3.pdf
blatt3.hs
Folien aus der Übung: blatt3fol.pdf
2. November 4. November
4 blatt4.pdf Das Modul MineSweeper.hs und das Main-Modul.
Folien aus der Übung: blatt4fol.pdf
9. November 11. November
5 blatt5.pdf blatt5.hs
Folien aus der Übung: blatt5fol.pdf
16. November 18. November
6 blatt6.pdf Lösungsvorschläge 23. November 25. November
7 blatt7.pdf Lösungsvorschläge 30. November 2. Dezember
Skript und Folien
Skript
Folien
Programme
Material

Zu verwendeten Programmiersprache Haskell:

Informationen für einzelne Studiengänge

CP

Die Veranstaltung hat einen Umfang von 5 CP.

Bachelor

  • Die Veranstaltung ist Pflichtveranstaltung des Vertiefungsmoduls B-EFP. Das Modul B-EFP ist Wahlpflichtmodul im Vertiefungsgebiet BKSPP

Master

  • Die Veranstaltung EFP kann in den Modulen M-SIW-S1A, M-SIW-S1B, M-Theo-IDS-A, M-Theo-IDS-B, M-WR-IDSA, M-WR-IDSB gewählt werden.
  • Fachgebiet: Informatik der Systeme

$Author: sabel $, $Date: 2015/12/11 17:01:40 $

uni ffm © 2008