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

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

Anmeldesystem freigeschaltet!

Das elektronische Anmeldesystem ist jetzt freigeschaltet (12.10.2006). Sie können sich ab sofort bis einschließlich zum 25. Oktober 2006 (verlängert vom ursprünglich 23.10.2006) für die Teilnahme an der Lehrveranstaltung "Funktionale Programmierung" anmelden. Bis zum 31. Oktober 2006 können Sie sich gegebenenfalls auch wieder abmelden. Nach dem 31. Oktober 2006 gehe ich davon aus, dass Sie die Lehrveranstaltung fest in Ihren Stundenplan aufgenommen haben und sie erfolgreich bis zum Ende besuchen wollen.

Zum Anmeldesystem.

Prüfungsanmeldesystem freigeschaltet!

Das Anmeldesystem für die Prüfungen ist freigeschaltet (10.01.2007). Anmeldungen sind ab sofort für Termine zwischen Freitag, den 19.01.2007, und Donnerstag, den 01.02.2007, möglich.

Nachtragstermine wird es zu Anfang, in der Mitte und zu Ende der Vorlesungszeit im Sommersemester 2007 geben. Die genauen Termine dafür werden an dieser Stelle bekanntgegeben.

Beachten Sie zu den Prüfungen und zur Zeugnisausstellung auch die hier gegebenen Hinweise, sowie die entsprechenden Hinweise in Ihren Vorlesungsunterlagen (siehe Vorlesungsteil 10).

Zum Prüfungsanmeldesystem.

Do, 18.01.2007: Besprechung Aufgabenblätter

Der Vorlesungsteil ist abgeschlossen. Die Besprechung der noch offenen Aufgabenblätter erfolgt am Donnerstag, den 18.01.2007, um 16:30 Uhr im Radinger-Hörsaal.

Abgabetermine

Beginnend mit Aufgabenblatt 3 werden die Standardabgabetermine von Montag, 15:00 Uhr, auf Dienstag, 15:00 Uhr, um jeweils einen Tag verlängert. Standardausgabetermin für neue Aufgabenblätter wird der Montag bleiben.

Abgesetztes Arbeiten auf b1

Sie können auf der b1 unter Ihrer Benutzerkennung fpxxx auch abgesetzt arbeiten. Den Wert für xxx erhalten Sie, indem Sie zu Ihrer Gruppennummer 500 addieren. Zur Gruppennummer 150 gehört also die Benutzerkennung fp650.

Vorbesprechung und Anmeldung

Die Vorbesprechung für diese Lehrveranstaltung findet am Donnerstag, den 05.10.2006, von 16:30 Uhr bis 17:30 Uhr im Radinger-Hörsaal am Getreidemarkt statt. Das elektronische Anmeldesystem wird nach der Vorbesprechung an dieser Stelle zur Verfügung stehen. 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 Vorlesung 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
07.12.2006
10. 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
30.11.2006
9. 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
23.11.2006
8. 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
09.11.2006
7. 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
Keine
07.11.2006
6. Vorlesungsteil
Ad hoc Polymorphie,
Typklassen in Haskell
"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
31.10.2006
5. Vorlesungsteil
Polymorphie
auf Funktionen
und Datentypen
"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
24.10.2006
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
19.10.2006
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
17.10.2006
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
Veranstaltungs-
hinweis

 
Kolloquiumsvortrag,
Prof. Dr. Helmut Veith, 18.10.2006, 16:00 Uhr s.t.,
EI 5, Gußhausstr. 25-29
 
12.10.2006
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
05.10.2006
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:
Do, 05.10.2006, 16:30-17:30 Uhr, Radinger-Hörsaal.
 
Veranstaltungs-
hinweise

 
Antrittsvorlesung,
Univ.Prof. Dr. Hannes Werthner, 09.10.2006, 17:00 Uhr s.t.,
EI 9, Gußhausstr. 25-29
 

Kolloquiumsvortrag,
Dr. David F. Bacon, 06.10.2006, 10:00 Uhr c.t.,
EI 5, Gußhausstr. 25-29
 

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
12.12.2006 09.01.2007 (15:00) /
16.01.2007 (15:00)
Blatt 9.pdf
Blatt 9.pdf.gz
Testfälle (Letztes
Aufgabenblatt)
 
Alle auf Blatt 9
eventuell noch (immer) verbliebenen Vorkommen von INT sind durch INTEGER zu ersetzen.
(13.12.2006)
04.12.2006 12.12.2006 (15:00) /
09.01.2007 (15:00)
Blatt 8.pdf
Blatt 8.pdf.gz
Testfälle

27.11.2006 05.12.2006 (15:00) /
12.12.2006 (15:00)
Blatt 7.pdf
Blatt 7.pdf.gz
Testfälle
13.11.2006 28.11.2006 (15:00) /
05.12.2006 (15:00)
Blatt 6.pdf
Blatt 6.pdf.gz
Testfälle
Korrigiert am 15.11.,
Änderung bei 1:
Node durch GeoNode ersetzen.
13.11.2006 21.11.2006 (15:00) /
28.11.2006 (15:00)
Blatt 5.pdf
Blatt 5.pdf.gz
Testfälle Korrigiert am 15.11.,
Bsp. 2 entfällt.
30.10.2006 14.11.2006 (15:00) /
21.11.2006 (15:00)
Blatt 4.pdf
Blatt 4.pdf.gz
Testfälle

 
Vorzeitig verfügbar ab 30.10.2006.
30.10.2006 07.11.2006 (15:00) /
14.11.2006 (15:00)
Blatt 3.pdf
Blatt 3.pdf.gz
Testfälle

Die Standard-
abgabetermine
werden
ab Blatt 3
auf Dienstag
verlängert.
Standardaus-
gabetermin
bleibt der
Montag.

23.10.2006 30.10.2006 (15:00) /
07.11.2006 (15:00)
(war 06.11.2006)
Blatt 2.pdf
Blatt 2.pdf.gz
Testfälle

Der Termin für
die Zweitab-
gabe ist
verlängert.

16.10.2006 25.10.2006 (15:00)
(war 23.10.2006) /
07.11.2006 (15:00)
(war 30.10.2006)
Blatt 1.pdf
Blatt 1.pdf.gz
Testfälle

Der Termin für
Erst- und
Zweitabgabe ist
verlängert.

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

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 2006/2007 findet am Donnerstag, den 5. Oktober 2006, von 16:30 Uhr bis 17:30 Uhr im Radinger-Hörsaal am Getreidemarkt 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 12. Oktober 2006, 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@b1.complang.tuwien.ac.at (Achtung: an fp@b1... nur von der b1 aus, nicht von einem anderen Rechner oder von außen!) bzw. direkt an einen Tutor in den Übungsräumen richten. Tutoren sind während der Übung zu folgenden Zeiten anwesend.

Anwesenheitszeiten der Tutoren

Ab dem 16. Oktober 2006 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 10:00 Uhr - 12:00 Uhr (Christoph Roschger)
12:00 Uhr - 14:00 Uhr (Christoph Bonitz)
Dienstag 09:00 Uhr - 11:00 Uhr (Karl-Michael Edlinger)
13:00 Uhr - 15:00 Uhr (Christian Biesinger)
Mittwoch 09:00 Uhr - 11:00 Uhr (Karl-Michael Edlinger)
14:15 Uhr - 16:15 Uhr (Christian Biesinger)
16:15 Uhr - 17:15 Uhr (Christoph Bonitz)
Donnerstag 12:00 Uhr - 13:00 Uhr (Christoph Roschger)

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 mündlichen Prüfung zusammen. Der Vorlesungsteil soll dabei bis ca. zum 15. Januar 2007 abgeschlossen sein. Die Prüfungen (etwa 15 Min.) werden dann nach Vereinbarung im Anschluss noch während der Vorlesungszeit ab ca. dem 20. Januar 2007 abgehalten. Weitere Termine wird es auch in der ersten Februarwoche geben.

Nachtragstermine wird es zu Beginn, in der Mitte und gegen Ende der Vorlesungszeit im Sommersemester 2007 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.

Die Anmeldung zu den Prüfungen wird elektronisch über das Anmeldesystem zur Vorlesung erfolgen. Dabei sollen Sie sich immer als Gruppe für einen Termin anmelden und auch als Gruppe zu diesem Termin kommen. Im Anmeldesystem werden Sie jeweils sehen, welche Termine noch frei sind. Der Termin, ab wann die Anmeldung möglich ist, wird an dieser Stelle und in der Vorlesung bekanntgegeben werden.

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 9 Abgaben in diesem 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 mündlichen Prüfung zum Vorlesungsteil. Eine Voraussetzung für eine insgesamt positive Beurteilung ist aber eine positive Beurteilung beider Teile, des Laborübungsteils und des Vorlesungsteils. Bei der Vorlesungsprüfung wird (neben dem theoretischen Stoff des Vorlesungsteils) auch überprüft, ob Sie Ihre eigenen Lösungen der Aufgabenstellungen auch im Detail verstehen. Die Beantwortung entsprechender Fragen sollte Ihnen leicht fallen, wenn Sie die Aufgabenstellungen selbst gelöst bzw. an deren Lösung mitgearbeitet haben.

Vortragender

Jens Knoop, Tel.: 58801-18510, E-mail: knoop@complang.tuwien.ac.at
Sprechstunde
wiederholte LVAs:
Fkt. Programmierung
Analyse u. Verifikation
Grundl. meth. Arbeitens
Sonstige
Schnellzugriff:
TUWIS++
voriges Semester
voriges Jahr
Lehrbehelfe
Literaturhinwei2se
Tutoren
Prüfungen
Anrechenbarkeit
top | HTML 4.01 | last update: 2014-05-04 (Knoop)