Sprungmarken

Servicenavigation

Hauptnavigation

Sie sind hier:

Hauptinhalt

Funktionale Programmierung

Veranstalter: Prof. Dr. Jakob Rehof
Kontaktperson für
organisatorische Fragen:
Felix Laarmann
Veranstaltungsnummer: 040217 (Vorlesung)
040218 (Übung)
Typ: Wahlpflicht-Modul
Modulnummer: INF-BSc-213
SWS: 2 SWS Vorlesung
1 SWS Übung
Ort: Online
Zeit: Freitags: 10-12 Uhr
Beginn: 16.04.2021
Ende: 23.07.2021

Aktuelles


Beschluss des Prüfungsausschuss bzgl. der Studienleistungen aus den letzten Veranstaltungen

Nach dem Beschluss des Prüfungsausschuss vom 11.09.2019 bleiben Modulprüfungen sowie Fehlversuche bestehen. 

Zusätzlich kam der Prüfungsausschuss  zu folgendem Beschluss:

Herr Rehof hat die Veranstaltung FuPro übernommen, diese fand früher im WiSe statt und wird jetzt im SoSe angeboten. Es gibt teilweise nicht mehr gültige Studienleistungen bei Studierenden. Es wird einstimmig beschlossen, dass die Studienleistungen bis zur 1. Prüfungsmöglichkeit der Studierenden gültig bleiben.

Gemeint sind Studienleistungen, die bei normalem Turnus ausreichend lange gültig gewesen wären.

Falls es noch Fragen oder Unklarheiten gibt, schreiben Sie mir bitte eine Mail (felix.laarmann@tu-dortmund.de).


  • 18.06.2021: Die zehnte Übungsdatei (Abgabe bis 24.06.2021, 23:59h), sowie die Vorlesungsfolien und Aufzeichnung der 10. Vorlesung sind nun verfügbar.
  • 11.06.2021: Die neunte Übungsdatei (Abgabe bis 17.06.2021, 23:59h)  sowie die Aufzeichnung  der 9. Vorlesung sind nun verfügbar.
  • 11.06.2021: Die Lösungsvorschläge für die Übungen 3 - 5 sind nun unter "Übungsaufgaben" verfügbar.
  • 04.06.2021: Die achte Übungsdatei (Abgabe bis 10.06.2021, 23:59h), sowie die Vorlesungsfolien und Aufzeichnung der 8. Vorlesung sind nun verfügbar.
  • (!!!) Wichtig: Am Mittwoch, den 02.06.2021 ist ab 14h die Fachschaftsvollversammlung und damit veranstaltungsfrei. Am Donnerstag, den 03.06.2021 ist ein Feiertag. Alle Übungen zu den genannten Zeiten fallen daher aus. Die Abgabe am Donnerstag findet trotzdem wie gewohnt statt. Wir werden daher am Freitag, den 04.06.2021 um 14h einen zusätzlichen Übungstermin mit anschließendem "Helpdesk/Fragestunde" für alle anbieten. Sie können gerne auf die Dienstags-Übungstermine oder den Zusatztermin ausweichen. Bei Fragen zu ihrer Abgabe können Sie uns natürlich auch jederzeit eine Mail schreiben.
  • 28.05.2021: Die siebte Übungsdatei (Abgabe bis 03.06.2021, 23:59h), sowie die Vorlesungsfolien und Aufzeichnung der 7. Vorlesung sind nun verfügbar.
  • 24.05.2021: Bei uebung6.hs hat sich leider noch ein Fehler versteckt. Beim Typ von foldExpr fehlte noch ein Argument vom Typ (a -> a -> a). Die geupdatete Version ist jetzt verfügbar.
  • 21.05.2021: Bei uebung6.hs hatte sich leider der Fehlerteufel in einem Beispielaufruf eingeschlichen. Das wurde jetzt verbessert. Danke für den Hinweis!
  • 21.05.2021: Die sechste Übungsdatei (Abgabe bis 27.05.2021, 23:59h), sowie die Vorlesungsfolien und Aufzeichnung der 6. Vorlesung sind nun verfügbar.
  • 14.05.2021: Die Vorlesungsfolien, sowie die Aufzeichnung der fünften Vorlesung sind unter "Vorlesungsmaterial" verfügbar.
  • 14.05.2021: Die fünfte Übungsdatei (Abgabe bis 20.05.2021, 23:59h) und der Lösungsvorschlag für Übung 2 sind unter "Übungsaufgaben" verfügbar.
  • Wichtig: Am Donnerstag, den 13.05.2021, ist ein Feiertag. Die Übungen fallen daher aus. Sie können auf die Dienstags und Mittwochs Termine ausweichen. Falls es Fragen gibt können Sie gerne auch eine Mail schreiben. Da die Abgabe online stattfindet und der Server keinen Feiertag kennt, sind lediglich die Übungen betroffen, nicht die Abgabefrist von uebung4.hs.
  • 07.05.2021: Der Lösungsvorschlag für Übung 1 ist unter "Übungsaufgaben" verfügbar.
  • 07.05.2021: Die Aufzeichnung der vierten Vorlesung ist unter "Vorlesungsmaterial" verfügbar.
  • 07.05.2021: Die Vorlesungsfolien der vierten Vorlesung sind unter "Vorlesungsmaterial" verfügbar.
  • 07.05.2021: Die vierte Übungsdatei (Abgabe bis 13.05.2021, 23:59h) ist unter "Übungsaufgaben" verfügbar.
  • 30.04.2021: Die Aufzeichnung der dritten Vorlesung ist unter "Vorlesungsmaterial" verfügbar.
  • 30.04.2021: Die Vorlesungsfolien der dritten Vorlesung sind unter "Vorlesungsmaterial" verfügbar.
  • 30.04.2021: Die dritte Übungsdatei (Abgabe bis 06.05.2021, 23:59h) ist unter "Übungsaufgaben" verfügbar.
  • 27.04.2021: Die Klausurtermine stehen fest.
  • 27.04.2021: Die ersten beiden Vorlesungsaufzeichnungen sind unter "Vorlesungsmaterial" verfügbar.
  • 23.04.2021: Die Vorlesungsfolien der zweiten Vorlesung sind unter "Vorlesungsmaterial" verfügbar.
  • 23.04.2021: Die zweite Übungsdatei (Abgabe bis 29.04.2021, 23:59h) ist unter "Übungsaufgaben" verfügbar.
  • 16.04.2021: Die Vorlesungsfolien der ersten Vorlesung sind unter "Vorlesungsmaterial" verfügbar.
  • 16.04.2021: Das Präsenzblatt für die erste Übung, sowie die erste Übungsdatei (Abgabe bis 22.04.2021, 23:59h) sind unter "Übungsaufgaben" verfügbar.
  • 16.04.2021: Die Übungsanmeldung im AsSESS wird heute um 12:00h freigeschaltet.
  • Die Vorlesung findet online mittels Zoom statt und ist wie folgt zu erreichen:

Zoom-Webinar

Meeting-ID: 926 8079 6265
Kenncode: 311298

Beschreibung

Die Lehrveranstaltung behandelt Konzepte und Anwendungen funktionaler Programmierung anhand der funktionalen Programmiersprache Haskell. Funktionale Programme unterscheiden sich zunächst stark von dem einer objektorientierten, imperativen und zustandsorientierten Sprache wie Java. Sie erlauben aber oft problemnahere und flexiblere Lösungen, die leicht an neue Anforderungen, modifizierte Datenstrukturen, etc. anpassbar sind.
Auf Basis des Buchs "Haskell - Eine Einführung für Objektorientierte" von Prof. Dr. Ernst-Erich Doberkat wird es eine Spracheinführung in Haskell geben. Das Buch ist über die Universitätsbibliothek ausleihbar und als Ebook zu haben.
Neben der Spracheinführung in Haskell wird die Lehrveranstaltung auch grundlegende theoretische Konzepte von (funktionalen) Programmiersprachen betrachten. Hierzu werden unter anderem ausgewählte Themen des Lambda-Kalküls, sowie der Typ- und Kategorientheorie betrachtet.
Abschließend wird es auf Basis der gewonnen Kenntnisse einen Überblick über andere funktionalen Sprachen wie z.B. Coq oder Scala und deren Unterschiede zu Haskell geben.

Vorlesungsmaterial

Vorlesungsfolien werden semesterbegleitend bereitgestellt.

Die Vorlesung nutzt zur Spracheinführung die Folien von Prof. Dr. Ernst-Erich Doberkat aus dem WS12/13.

Datum Folien Aufzeichnung
18.06.2021 FuPro_2021_VL10 FuPro_VL10.mp4
11.06.2021 Doberkat-Folien S.298-324 FuPro_VL9.mp4
04.06.2021 FuPro_2021_VL8 FuPro_VL8.mp4
28.05.2021 FuPro_2021_VL7 FuPro_VL7.mp4
21.05.2021 FuPro_2021_VL6 FuPro_VL6.mp4
14.05.2021 FuPro_2021_VL5 FuPro_VL5.mp4
07.05.2021 FuPro_2021_VL4 FuPro_VL4.mp4
30.04.2021 FuPro_2021_VL3 FuPro_VL3.mp4
23.04.2021 FuPro_2021_VL2  FuPro_VL2.mp4
16.04.2021 FuPro_2021_VL1 FuPro_VL1.mp4

Übung

  • Die Übung zu FuPro ist eine (Online-)Präsenzübung.
  • Die Übung dient der Verstetigung des Vorlesungsinhalts sowie der praktischen Anwendung der erlangten Kenntnisse.

Anmeldung

  • Die Übungsanmeldung wird innerhalb der ersten Vorlesungswoche im AsSESS freigeschaltet. Die Anmeldefrist ist Montag, der 19.04.2021 um 18:00 Uhr.

Übungsgruppen

Gruppe Wochentag Zeit Tutor Email
1 Dienstag 14:15h - 15:00h Nicolas Lenz nicolas.lenz@tu-dortmund.de
2 Dienstag 15:15h - 16:00h Nicolas Lenz
3 Mittwoch 14:15h - 15:00h Nicolas Lenz
4 Mittwoch 16:15h - 17:00h Felix Laarmann felix.laarmann@tu-dortmund.de
5 Donnerstag 12:15h - 13:00h Felix Laarmann
6 Donnerstag 16:15h - 17:00h Felix Laarmann

Übungsaufgaben

Die Übungsaufgaben werden wöchentlich über das AsSESS abgegeben.

Anstatt von Übungszetteln im PDF-Format werden wir dieses Jahr Haskell-Programme als "Übungszettel" verwenden. Laden Sie sich hierzu bitte die entsprechende Datei (z.B. uebung0.hs) herunter und editieren Sie diese in einem Texteditor ihrer Wahl gemäß den Aufgabenstellungen in den Kommentaren. Testen Sie ihre Lösungen im interaktiven Modus des Glasgow Haskell Compiler (GHCi).

Sollten Sie eine Aufgabe nicht lösen können, so kommentieren Sie bitte Ihren Lösungsversuch wieder aus. Wir werden uns ihre Lösungen, sowie auskommentierte Teillösungen anschauen.

Eventuelle Freitext-Antworten, die kein Haskell-Code sind, schreiben Sie bitte als Kommentar in die Datei.

Nach der Bearbeitung einzelner Aufgaben, sowie nach der Bearbeitung aller Aufgaben sollten die Übungs-Dateien kompilieren.
Ist dies nicht der Fall, sollten Sie ihre Lösung(en) überdenken.

Bitte achten Sie darauf immer kompilierende Dateien abzugeben!
Geben Sie nur Quellcode und Kommentare als .hs Dateien ab. Abgaben als kompiliertes Programm (.ho, .exe, ...) oder in anderen Formaten (z.B. .doc, .pdf, ...) werden nicht akzeptiert.

Block Ausgabe Abgabefrist Datei Lösungsvorschlag
- 09.07.2021 - probeklausur.zip
2 02.07.2021 08.07.2021, 23:59h uebung12.zip
2 25.06.2021 01.07.2021, 23:59h uebung11.zip
2 18.06.2021 24.06.2021, 23:59h uebung10.zip
2 11.06.2021 17.06.2021, 23:59h uebung9.zip
2 04.06.2021 10.06.2021, 23:59h uebung8.zip
2 28.05.2021 03.06.2021, 23:59h uebung7.zip
2 21.05.2021 27.05.2021, 23:59h uebung6.zip
1 14.05.2021

20.05.2021, 23:59h

(Es sind nun Gruppenabgaben von bis zu 3 Studierenden zugelassen)

uebung5.zip uebung5Loesungsvorschlag.zip
1 07.05.2021 13.05.2021, 23:59h uebung4.zip uebung4Loesungsvorschlag.zip
1 30.04.2021 06.05.2021, 23:59h uebung3.zip uebung3Loesungsvorschlag.zip
1 23.04.2021 29.04.2021, 23:59h uebung2.zip uebung2Loesungsvorschlag.zip
1 16.04.2021 22.04.2021, 23:59h uebung1.zip uebung1Loesungsvorschlag.zip
- 16.04.2021 keine Abgabe uebung0.zip

Studienleistung

Das Erlangen der Studienleistung ist Voraussetzung für die Teilnahme an der abschließenden Klausur.
Die Kriterien der Studienleistung sind wie folgt:

  • Mindestens 50% der erreichbaren Punkte pro Übungsblock.
  • Es wird 2 Übungsblöcke mit wöchentlichen Übungsabgaben geben.

Klausuren

Die Klausurtermine stehen fest:

  • Die erste Klausur wird am Dienstag, den 27.07.2021 von 18:00h-20:15h stattfinden.
  • Die zweite Klausur wird am Dienstag, den 07.09.2021 von 11:30h-13:45h stattfinden.

Weitere Infos folgen, sobald verfügbar.



Nebeninhalt

Kontakt

Felix Laarmann, M. Sc.
Tel.: 0231 755-2436
Jan Bessai, Dr.
Tel.: 0231 755-7764