Funktionale Programmierung
LVA 185.161, VL 2.0, ECTS 3.0, 2007 W
BDS/W, BSI/P5, BZI/W, ZbGr

(zweistündige Vorlesung mit Laborübung; siehe auch TUWIS++/185.161)

Haben Sie Interesse an einem geförderten Auslandsstudium?

Informationen zu Fördermöglichkeiten finden Sie hier.

 

Zum Anmeldesystem.

Aktuelles zu den schriftlichen Prüfungen und den Prüfungsterminen

Schriftliche Prüfungstermine:

Weitere Hinweise zur schriftlichen Abschlussprüfung, insbesondere zu Anmeldung, Stoffumfang, Dauer, Zeit und Ort finden Sie am Ende der Folien zu Vorlesungsteil 9. Beachten Sie bitte auch die Hinweise hier und nötig werdende Aktualisierungen. Sie werden an dieser Stelle bekanntgegeben. Weitere Informationen zur Vorbesprechung und zu Zeit und Ort der Vorlesung finden Sie hier. -->

Inhalt

Die Vorlesung gibt eine Einführung in die Grundlagen und Konzepte funktionaler Programmierung. Dabei werden insbesondere die folgenden Prinzipien funktionaler Programmierung vorgestellt und behandelt: und die Umsetzung dieser Konzepte in Haskell.

Ziele

Die Teilnehmer sollen einen Überblick über die wichtigsten Konzepte funktionaler Programmiersprachen bekommen und lernen, diese Konzepte sinnvoll einzusetzen.

Voraussetzungen

Für die Teilnahme an der Lehrveranstaltung gelten die in Abschnitt 1.6 des ab 01.10.2006 gültigen neuen Studienplans niedergelegten Voraussetzungen.

Lehrbehelfe

In der Lehrveranstaltung wird die Programmiersprache Haskell verwendet. Ein Online-Tutorial erklärt die Sprache sehr gut, setzt aber Grundkenntnisse der funktionalen Programmierung voraus. Umfangreiche Informationen zu Haskell finden Sie auch auf der Haskell Home Page. Weitere Literaturhinweise finden Sie auch auf den Folien zur Vorbesprechung der Lehrveranstaltung und im Abschnitt Literaturhinweise. In der Laborübung wird der Haskell-Interpreter Hugs 98 verwendet, der für viele Plattformen verfügbar ist.

Während der Lehrveranstaltung werden die verwendeten Folien und Aufgabenstellungen für den Laborübungsteil wöchentlich an dieser Stelle zur Verfügung gestellt.

Vorlesung
 
Folien vom
Thema Verfügbare Formate (Folien pro Seite) Hinweise und Bemerkungen
11.12.2007
9. Vorlesungsteil
Module,
Abstrakte Datentypen,
Reflektive Programmierung,
Ausblick und Rückblick
"1 F/S".pdf
"1 F/S".pdf.gz
 
"4 F/S".pdf
"4 F/S".pdf.gz
 
"8 F/S".pdf
"8 F/S".pdf.gz
Letzter Vorlesungsteil.

Beachten Sie bitte die Hinweise zur schriftlichen Abschlussprüfung!

06.12.2007
8. Vorlesungsteil
Monaden,
eager vs. lazy
Evaluation,
lambda-Kalkül
"1 F/S".pdf
"1 F/S".pdf.gz
 
"4 F/S".pdf
"4 F/S".pdf.gz
 
"8 F/S".pdf
"8 F/S".pdf.gz
Keine.

Veranstaltungs-
hinweis und Einladung

 
Kolloquium,
Prof. Dr. E.-R. Olderog, 13.12.2007, 14:00 Uhr c.t.,
EI 5, Gußhausstr. 25-29

 

27.&29.11.2007
7. Vorlesungsteil
Funktionen
höherer Ordnung,
Ein- und Ausgabe,
Fehlerbehandlung
"1 F/S".pdf
"1 F/S".pdf.gz
 
"4 F/S".pdf
"4 F/S".pdf.gz
 
"8 F/S".pdf
"8 F/S".pdf.gz
Keine.
20.&27.11.2006
6. Vorlesungsteil
Nachträge zu
Polymorphie, Muster,
Listenkomprehension
"1 F/S".pdf
"1 F/S".pdf.gz
 
"4 F/S".pdf
"4 F/S".pdf.gz
 
"8 F/S".pdf
"8 F/S".pdf.gz
Veranstaltungs-
hinweis

 
Informatik-Kolloquium,
Sir Tony Hoare, 27.11.2007, 17:00 Uhr s.t.,
EI 9, Gußhausstr. 25-29
 
08.11.2007
5. Vorlesungsteil
Polymorphie
auf Funktionen
und Datentypen, Ad hoc Polymorphie
"1 F/S".pdf
"1 F/S".pdf.gz
 
"4 F/S".pdf
"4 F/S".pdf.gz
 
"8 F/S".pdf
"8 F/S".pdf.gz
Einladung zum epilog am 22.11.2007 zur Präsentation und Auszeichnung abgeschlossener Diplom- und Masterarbeiten!
30.10.2007
4. Vorlesungsteil
Algebraische
Datentypen,
Typsynonyme
"1 F/S".pdf
"1 F/S".pdf.gz
 
"4 F/S".pdf
"4 F/S".pdf.gz
 
"8 F/S".pdf
"8 F/S".pdf.gz
Keine. Achtung: Am 25.10.2007 ab 16:30 Uhr Plenumsübung im Radinger-Hörsaal!
18.10.2007
3. Vorlesungsteil
Layout-Regeln,
Rekursionstypen,
Komplexitätsklassen,
Aufrufgraphen
"1 F/S".pdf
"1 F/S".pdf.gz
 
"4 F/S".pdf
"4 F/S".pdf.gz
 
"8 F/S".pdf
"8 F/S".pdf.gz
Keine.

Achtung: Am 25.10.2007 ab 16:30 Uhr Plenumsübung im Radinger-Hörsaal!

16.10.2007
2. Vorlesungsteil
Funktionen,
Funktionsterme,
Signaturen und
Klammereinspa-
rungsregeln
"1 F/S".pdf
"1 F/S".pdf.gz
 
"4 F/S".pdf
"4 F/S".pdf.gz
 
"8 F/S".pdf
"8 F/S".pdf.gz
Keine.
04.10.2007
1. Vorlesungsteil
Einführung und
Grundlagen
"1 F/S".pdf
"1 F/S".pdf.gz
 
"4 F/S".pdf
"4 F/S".pdf.gz
 
"8 F/S".pdf
"8 F/S".pdf.gz
Keine.
02.10.2007
Vorbesprechung
Motivation und
Organisatorisches
"1 F/S".pdf
"1 F/S".pdf.gz
 
"4 F/S".pdf
"4 F/S".pdf.gz
 
"8 F/S".pdf
"8 F/S".pdf.gz
Termin und Ort
der Vorbesprechung:
Di, 02.10.2007, 13:00-14:00 Uhr, Informatik-Hörsaal.
 

Für die Übungsaufgaben werden im Regelfall auch einige Testfälle zur Verfügung gestellt. Diese Testfälle sind in erster Linie dazu gedacht, die erwartete Signatur, insbesondere die Reihenfolge von Parametern deutlich zu machen. Sie können Ihnen nicht ein eigenständiges Testen Ihrer Programme abnehmen. Die Testfälle sind dazu weder gedacht noch geeignet.

Übung
 
Aufgabenblatt vom
Abgabe/Nachabgabe Verfügbare Formate Hinweise und Bemerkungen
05.12.2007 Do, 13.12.2007 (15:00) /
Do, 10.01.2007 (15:00)
Blatt 9.pdf
Blatt 9.pdf.gz
Testfälle (Letztes
Aufgabenblatt)
 
Abgabetermine
verlängert!
(05.12.2007)
27.11.2007 04.12.2007 (15:00) /
11.12.2007 (15:00)
Blatt 8.pdf
Blatt 8.pdf.gz
Testfälle

Verfügbar
ab 26.11.2007 (war 27.11.2007).

20.11.2007 27.11.2007 (15:00) /
04.12.2007 (15:00)
Blatt 7.pdf
Blatt 7.pdf.gz
Testfälle
13.11.2007 20.11.2007 (15:00) /
27.11.2007 (15:00)
Blatt 6.pdf
Blatt 6.pdf.gz
Testfälle

Verfügbar
ab 10.11.2007 (war 13.11.2007).

06.11.2007 13.11.2007 (15:00) /
20.11.2007 (15:00)
Blatt 5.pdf
Blatt 5.pdf.gz
Testfälle

Verfügbar
ab 05.11.2007 (war 06.11.2007).

30.10.2007 06.11.2007 (15:00) /
13.11.2007 (15:00)
Blatt 4.pdf
Blatt 4.pdf.gz
Testfälle
23.10.2007 30.10.2007 (15:00) /
06.11.2007 (15:00)
Blatt 3.pdf
Blatt 3.pdf.gz
Testfälle

Verfügbar
ab 18.10.2007
(war 23.10.2007).

16.10.2007 23.10.2007 (15:00) /
30.10.2007 (15:00)
Blatt 2.pdf
Blatt 2.pdf.gz
Testfälle

09.10.2007 16.10.2007 (15:00) /
23.10.2006 (15:00)
Blatt 1.pdf
Blatt 1.pdf.gz
Testfälle

Zur Orientierung finden Sie auch entsprechende Informationen aus dem Wintersemester 2006/2007.

Literaturhinweise

Im Abschnitt Lehrbehelfe finden Sie Hinweise auf einige im Internet frei verfügbare Informationsquellen zum Themenkreis funktionale Programmierung und funktionale Programmierung in Haskell. Daneben gibt es auch eine Fülle von Lehrbüchern zu diesen Themenkreisen. Im folgenden finden Sie eine Auswahl aktueller Lehrbücher, die als begleitende und ergänzende Lektüre zur Lehrveranstaltung und auch zum Selbststudium sehr gut geeeignet sind. Weitergehende Literaturhinweise, auch auf Originalartikel, werden bei Bedarf zusätzlich in der Vorlesung angegeben. Die mit "drei Punkten" abschließende Liste soll Sie ermuntern, auch weitere Literatur zu suchen und auszuwählen, die Sie für sich und Ihren Lerntyp für besonders geeignet halten.

Zeit und Ort

Die Vorbesprechung für das Wintersemester 2007/2008 findet am Dienstag, den 2. Oktober 2007, von 13:00 Uhr bis 14:00 Uhr im Informatik-Hörsaal in der Treitlstraße 3 statt. Die Anmeldung für die Teilnahme an der Vorlesung erfolgt in den Tagen nach der Vorbesprechung über ein elektronisches Anmeldesystem, das über diese Webseite erreichbar sein wird. Für die Anmeldung wird ein ausreichender Zeitraum zur Verfügung stehen. Die Vorlesung selbst beginnt am Donnerstag, den 4. Oktober 2007, und findet im Regelfall am Donnerstag von 16:30 Uhr bis 18:00 Uhr im Radinger Hörsaal, GM 2, statt. Bei Bedarf kann die Vorlesung alternativ oder auch zusätzlich am Dienstag von 13:00 Uhr bis 14:00 Uhr im Informatikhörsaal (Treitelstraße 3) stattfinden. Diese abweichenden Termine werden jeweils rechtzeitig in der Vorlesung und auf dieser Webseite bekanntgegeben werden.

Bei Fragen und Problemen

Lesen Sie regelmäßig die Newsgroup tuwien.lva.funktional, und posten Sie darin Fragen zur Lehrveranstaltung, die von allgemeinem Interesse sein könnten. Da die Newsgroup (noch immer) vergleichsweise neu ist, kann sie derzeit vermutlich nur über den Newsserver der TU-Wien (news.tuwien.ac.at) gelesen werden. Nicht für die Öffentlichkeit bestimmte Fragen zur Lehrveranstaltung können Sie per e-Mail an studass@complang.tuwien.ac.at oder an fp@g0.complang.tuwien.ac.at (Achtung: an fp@g0... nur von der g0 aus, nicht von einem anderen Rechner oder von außen!) bzw. direkt an einen Tutor in den Übungsräumen richten.

Anwesenheitszeiten der Tutoren

Ab dem 8. Oktober 2007 werden die Tutoren (bis auf weiteres) an folgenden Tagen und Zeiten im Labor anwesend sein und Ihnen für Fragen zur Verfügung stehen.

Montag 14:45 Uhr - 16:45 Uhr (Markus Triska)
13:00 Uhr - 15:00 Uhr (Christoph Roschger)
Mittwoch 11:00 Uhr - 13:00 Uhr (Christoph Roschger)
13:30 Uhr - 15:30 Uhr (Leonid Narinsky)
16:00 Uhr - 18:00 Uhr (Markus Triska)
Donnerstag 12:00 Uhr - 14:00 Uhr (Leonid Narinsky)

Anrechenbarkeit

"Funktionale Programmierung" ist für folgende Bakkalaureatsstudien anrechenbar: "Software & Information Engineering" (Pflichtfach, 5. Semester), "Data Engineering & Statistics (Wahlfach) und "Medizinische Informatik" (Wahlfach).

Prüfungen

Die Beurteilung setzt sich je zur Hälfte aus den Leistungen bei der Laborübung und dem Ergebnis einer 90-minütigen schriftlichen Prüfung (sog. Klausur) zusammen. Der Vorlesungsteil soll dabei bis ca. zum 15. Januar 2008 abgeschlossen sein. Der Haupttermin für die schriftliche Prüfung (90 Minuten) ist Donnerstag, der 24.01.2008, von 16 bis 18 Uhr. Die schriftliche Prüfung erfolgt über den Vorlesungs- und Übungsstoff und einen wissenschaftlichen (Übersichts-) Artikel, den Sie sich rechtzeitig selbstständig im Lauf der Vorlesungszeit erschließen, und zwar Nachtragsklausurtermine wird es zu Beginn, in der Mitte und gegen Ende der Vorlesungszeit im Sommersemester 2008 geben. Die genauen Termine werden rechtzeitig an dieser Stelle bekanntgegeben. Nach Ende der Vorlesungszeit im Sommersemester wird es keine weiteren Nachtragstermine geben. Bis dahin noch nicht ausgestellte Zeugnisse werden dann ausgestellt.

Eine Anmeldung zu den schriftlichen Prüfungen ist jeweils erforderlich und erfolgt über TUWIS++. Genaue Informationen werden rechtzeitig in der Vorlesung und auf der Webseite der Lehrveranstaltung bekanntgegeben.

Beurteilung

Je nach Qualität Ihrer Lösungen der Aufgabenstellungen bekommen Sie Punkte. Maximal 100 Punkte pro Aufgabe sind möglich, wenn Sie die Abgabe rechtzeitig durchgeführt haben. Für Lösungen beziehungsweise Änderungen der Lösungen, die nachträglich (also eine Woche nach dem Fälligkeitstermin) abgegeben wurden, gibt es nur die halbe Anzahl der Punkte, die Sie bei rechtzeitiger Abgabe erreicht hätten. Änderungen der Lösung können die Punkteanzahl nach der Abgabe sowohl positiv als auch negativ beeinflussen. Das heißt, wenn die Lösung durch die Änderung schlechter wird, können auch Punkte abgezogen werden. Ihre Punkte ergeben sich aus folgender Formel: Gesamtpunktezahl = (Punkte für ursprüngliche Lösung + Punkte für nachträgliche Lösung) / 2. Es sind nie weniger als 0 oder mehr als 100 Punkte erreichbar.

Bei z.B. 9 Abgaben im Semester sind maximal 900 Punkte erreichbar. Für eine positive Beurteilung des Laborübungsteils benötigen Sie von den maximal erreichbaren Punkten mindestens 450 Punkte, also 50%, für "Befriedigend" mindestens 562.5 (62.5%), für "Gut" mindestens 675 (75%) und für "Sehr Gut" mindestens 787.5 Punkte (87.5%).

Die Note für den Laborübungsteil bestimmt zur Hälfte die Note der Lehrveranstaltung. Die zweite Hälfte ergibt sich aus der schriftlichen Prüfung. Eine Voraussetzung für eine insgesamt positive Beurteilung ist aber eine positive Beurteilung beider Teile, des Laborübungsteils und des schriftlichen Prüfungsteils.

Vortragender

Jens Knoop.
Sprechstunde
wiederholte LVAs:
Fkt. Programmierung
Analyse u. Verifikation
Grundl. meth. Arbeitens
Sonstige
Schnellzugriff:
TUWIS++
voriges Semester
voriges Jahr
Lehrbehelfe
Literaturhinweise
Tutoren
Prüfungen
Anrechenbarkeit
top | HTML 4.01 | last update: 2014-05-04 (Knoop)