Funktionale Programmierung
LVA 185.A03, VU 2.0, ECTS 3.0, 2021 W
Funktionale Programmierung
(zweistündige Vorlesung mit Übung; siehe auch
TISS/185.A03)
Haben Sie Interesse an einem geförderten
Auslandsstudium?
Informationen zu Fördermöglichkeiten finden Sie
hier.
Abhaltemodus: Online
Hörsäle, Übungsgruppenräume und Rechnerlabore
stehen auch im WS 2021/22 aufgrund weiter geltender
COVID-19-Beschränkungen
nur mit stark eingeschränkter Sitzplatzkapazität und
Belegbarkeitshäufigkeit zur Verfügung.
Die verbleibenden stark reduzierten Raumressourcen sind vorzugsweise
Lehrveranstaltungen des 1. Studienjahrs zur Verfügung gestellt.
Die Lehrveranstaltung Funktionale
Programmierung wird deshalb vollständig
online abgehalten
(Vorlesung, umgekehrtes Klassenzimmer, Übung,
Vorlesungs- und Übungs-Frage&Antwort-Foren); um dabei die Vorteile aus der
Unmittelbarkeit von
Präsenzveranstaltungen möglichst
umfassend zu erhalten in der Form von Echtzeitvideokonferenzen.
Ausnahme: Schriftliche Tests (im Hörsaal, falls möglich, online sonst!)
Geplante Veranstaltungstermine
Alle Termine (Vorbesprechung, Vorträge, umgekehrtes Klassenzimmer,
Übungen, Frage&Antwort-Foren) finden ausschließlich
online
in Form von
Echtzeitvideokonferenzen statt. Die Zugangsinformationen
für die Videokonferenzen werden rechtzeitig im TUWEL-Kurs
zur Lehrveranstaltung bekanntgegeben. Als Werkzeug wird Zoom eingesetzt.
Terminänderungen werden bei Bedarf auf dieser Seite bekanntgegeben.
Vorbesprechung und erster Vortrag finden (abweichend vom üblichen Dienstagstermin) am
Montag, den 04.10.2021, 12:15 - 13:45 Uhr,
statt (einschließlich einer 15-minütigen Pause).
Alle nachstehend angegebenen Zeiten für Vorträge und umgekehrtes Klassenzimmer
verstehen sich einschließlich einer 15-minütigen Pause.
Vorträge/Umgek. Klassenzimmer
| Ort/Modus
| Thema Vortrag
| Thema umgek. Klassenzimmer
|
Mo, 04.10.2021, 12:15 - 13:45 Uhr
| Online (Videokonferenz)
| Teil I
| n.a. / Vorbesprechung
|
Di, 12.10.2021, 08:15 - 09:45 Uhr & 13:15 - 14:45 Uhr
| Online (Videokonferenz)
| Teil II
| Teil I
|
Mi, 27.10.2021, 10:15 - 11:45 Uhr
| Online (Videokonferenz)
| Teil III
| Teil II
|
Mi, 03.11.2021, 10:15 - 11:45 Uhr
| Online (Videokonferenz)
| Teil IV
| Teil III
|
Di, 16.11.2021, 13:15 - 14:45 Uhr
| Online (Videokonferenz)
| Teil V
| Teil IV
|
Di, 30.11.2021, 13:15 - 14:45 Uhr
| Online (Videokonferenz)
| Teil VI
| Teil V
|
Di, 14.12.2021, 13:15 - 14:45 Uhr
| Online (Videokonferenz)
| Teil VII
| Teil VI
|
Die Angaben
Teil I, Teil II, Teil III, etc. beziehen sich auf die entsprechenden Teile
der Lehrveranstaltungsunterlagen.
F&A-Vorlesungsforum:
Vorzugsweise für Fragen zu Vorlesung und Vorlesungsstoff.
Achtung: Der erste Termin findet abweichend
nicht donnerstags, sondern Freitag, den 08.10.2021, von 10:15-11:00 Uhr statt.
F&A-Vorlesungsforum
| Ort/Modus
| Häufigkeit
| Erstmals
| Letztmals
|
Do, 14:15-15:00 Uhr
| Online (Videokonferenz)
| Wöchentlich
| Abweichend: Freitag, 08.10.2021, 10:15-11:00 Uhr
| Do, 16.12.2021
|
Mo, 10.01.2022, 13:15-14:00 Uhr
| Nachholtermin vom 09.12.2021
| Einmalig
|
|
|
F&A-Laborforum:
Vorzugsweise für Fragen zur Programmierung in Haskell.
F&A-&Laborforum
| Ort/Modus
| Häufigkeit
| Erstmals
| Letztmals
|
Mi, 14:15-15:00 Uhr
| Online (Videokonferenz)
| Wöchentlich
| Mi, 06.10.2021
| Mi, 15.12.2021
|
Angabe
| Ausgabe
| Erstabgabe
| Zweitabgabe (Standardtermin; siehe "Allgemeine Hinweise" für Details)
| max. Punkte
| zugeh. Übungs- gruppen- termine
|
1
| Freitag, 15.10.2021
| Freitag, 22.10.2021
| Freitag, 29.10.2021
| 50
| KW 44: 03.-05.11.2021
|
2
| Freitag, 22.10.2021
| Freitag, 29.10.2021
| Freitag, 05.11.2021
| 50
| KW 45: 08.-12.11.2021
|
3
| Freitag, 29.10.2021
| Freitag, 05.11.2021
| Freitag, 12.11.2021
| 50
| KW 46: 15.-19.11.2021
|
4
| Freitag, 05.11.2021
| Freitag, 12.11.2021
| Freitag, 19.11.2021
| 50
| KW 47: 22.-26.11.2021
|
5
| Freitag, 12.11.2021
| Freitag, 19.11.2021
| Freitag, 26.11.2021
| 100
| KW 48: 29.11.-03.12.2021
|
6
| Freitag, 19.11.2021
| Freitag, 26.11.2021
| Freitag, 03.12.2021
| 100
| KW 49: 06.-10.12.2021
|
7
| Freitag, 26.11.2021
| Freitag, 03.12.2021
| Freitag, 10.12.2021
| 100
| KW 50: 13.-17.12.2021
|
Anmeldung
Die Anmeldung zur Lehrveranstaltung erfolgt über
TISS/185.A03
und ist bis
Fr, 08.10.2021 (12:00 Uhr),
möglich. Diese ist maßgeblich für die Teilnahme an der
Lehrveranstaltung und unterliegt den in den Studienplänen
genannten Voraussetzungen.
Nach Abschluss der Anmeldeperiode wird für die Studierenden
mit valider Anmeldung ein persönliches Benutzerkonto auf der
Maschine g0.complang.tuwien.ac.at
eingerichtet. Benutzerkennung und erstes Zugangswort werden jedem
Teilnehmer durch Nachricht an die Standardadresse e-Matr.Nr@student.tuwien.ac.at mitgeteilt. Dieses
erste Zugangswort ist im Zuge des ersten Einbuchens auf das
Benutzerkonto durch ein selbstgewähltes neues Zugangswort zu
ersetzen.
Die Vorlesung führt in Theorie und Praxis in die Prinzipien und
Konzepte des funktionalen Programmierstils ein und spannt dabei den
Bogen von den Grundlagen bis zur Anwendung. In den
vorlesungsbegleitenden Übungen
wird am Beispiel konkreter Aufgabenstellungen praktisch
vorgeführt und diskutiert, wie sich diese zur Lösung
einsetzen lassen. Dabei sollen insbesondere auch eigene
Lösungsvorschläge vorgestellt und zur Diskussion gestellt
werden. Im Übungsteil wird der funktionale Programmierstil anhand
von Beispielen eigenständig angewendet und eingeübt und so ein
vertieftes theoretisches und praktisches Verständnis für die
Konzepte und Prinzipien funktionaler Programmierung erarbeitet und
erworben. Als Demonstrations- und Implementierungssprache wird in
Vorlesung und Übung die funktionale
state-of-the-art
Programmiersprache
Haskell
verwendet.
Die Studierenden
erhalten so ein umfassendes theoretisches und praktisches
Verständnis der Grundlagen, Prinzipien und Konzepte der
funktionalen Programmierung und lernen, diese auf ihre Eignung zur
Lösung programmiertechnischer Aufgaben zu bewerten und
zielorientiert und angemessen im funktionalen Programmierstil
einzusetzen und anzuwenden.
- Teil I: Einführung
- Teil II: Grundlagen
- Elementare Typen, Tupel, Listen, Zeichenreihen
- Funktionen
- Typsynonyme, Neue Typen, Typklassen
- Datentypdeklarationen, algebraische Typen
- Muster und mehr
- Teil III: Applikative Programmierung
- Rekursion
- Auswertung von Ausdrücken
- Programmentwicklung, Programmverstehen
- Teil IV: Funktionale Programmierung
- Funktionen höherer Ordnung
- Polymorphie
- Teil V: Fundierung funktionaler Programmierung
- Lambda-Kalkül
- Auswertungsordnungen
- Typprüfung, Typinferenz
- Teil VI: Weiterführende Konzepte
- Ein- und Ausgabe
- Fehlerbehandlung
- Module
- Reflektives Programmieren, Programmieren mit
Strömen und Funktionen höherer Ordnung
- Teil VII: Abschluss
- Literaturverzeichnis
- Anhänge
- Formale Rechenmodelle
- Andere funktionale Sprachen
- Implementierungsaspekte
- Ausgewählte Leseempfehlungen
- Simon Thompson. Haskell: The Craft of Functional Programming.
Addison-Wesley/Pearson, 3. Auflage, 2011.
- Ernst-Erich Doberkat. Haskell: Eine Einführung für
Objektorientierte. Oldenbourg Verlag, 2012.
- Peter Pepper. Funktionale Programmierung in OPAL, ML,
Haskell und Gofer. Springer-V., 2. Auflage, 2003.
- Simon Peyton Jones (Hrsg.). Haskell 98: Language and Libraries.
The Revised Report. Cambridge University Press, 2003.
Alle Unterlagen zur Lehrveranstaltung (Vorbesprechung, Vorlesungen, Übungen, Leit- und
Kontrollfragen zu Vorlesung und Übung) werden im
TUWEL-Kurs zur Lehrveranstaltung zur Verfügung gestellt.
Vortragender
Jens Knoop.