Funktionale Programmierung
LVA 185.161, VL 2.0, 2004 W

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

Anmeldesystem freigeschaltet!

Das elektronische Anmeldesystem ist jetzt freigeschaltet. Sie können sich ab sofort bis einschließlich zum 17. Oktober 2004 für die Teilnahme an der Lehrveranstaltung "Funktionale Programmierung" anmelden. Bis zum 31. Oktober 2004 können Sie sich gegebenenfalls auch wieder abmelden. Nach dem 31. Oktober 2004 gehe ich davon aus, dass Sie die Lehrveranstaltung fest in Ihren Stundenplan aufgenommen haben und sie erfolgreich bis zum Ende besuchen wollen.
    Weitere Informationen zur Gruppeneinteilung und zur Ausgabe der Rechennummern und Passwörter finden Sie auf den Folien zur Vorbesprechung zu dieser Lehrveranstaltung. Die Rechennummern und Passwörter werden ab Dienstag, den 12. Oktober 2004, von den Tutoren im Labor ausgegeben. Die Anwesenheitszeiten der Tutoren im Labor finden Sie hier. Die Übernahme von Rechennummer und Passwort werden wir Sie durch Unterschrift zu quittieren bitten. Bitte bringen Sie deshalb Ihren Studentenausausweis mit und kommen Sie zur Übernahme von Rechennummer und Passwort zusammen mit allen Gruppenpartnern. Vielen Dank.

Zum Anmeldesystem.

Prüfungsanmeldesystem freigeschaltet!

Das Anmeldesystem für die Prüfungen ist freigeschaltet. Anmeldungen sind ab sofort möglich.

Die nächsten Prüfungstermine für Nachzügler finden Sie über das Anmeldesystem.

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

Grundlegende Kenntnisse zumindest einer Programmiersprache (wie z.B. in "Einführung in das Programmieren" vermittelt) werden vorausgesetzt.

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
25.01.2005
12. Vorlesungsteil
Abstrakte Datentypen,
Reflektive Programmierung,
Ausblick und Rückblick
"1 F/S".ps
"1 F/S".ps.gz
 
"4 F/S".ps
"4 F/S".ps.gz
 
"8 F/S".ps
"8 F/S".ps.gz
Keine
18.01.2005
11. Vorlesungsteil
Monaden,
Programmierung im Großen
"1 F/S".ps
"1 F/S".ps.gz
 
"4 F/S".ps
"4 F/S".ps.gz
 
"8 F/S".ps
"8 F/S".ps.gz
Keine
16.12.2004
10. Vorlesungsteil
Ein-/Ausgabe,
Monaden und
Fehlerbehandlung
"1 F/S".ps
"1 F/S".ps.gz
 
"4 F/S".ps
"4 F/S".ps.gz
 
"8 F/S".ps
"8 F/S".ps.gz
Keine
14.12.2004
9. Vorlesungsteil
Funktionale,
Funktionen höherer
Ordnung
"1 F/S".ps
"1 F/S".ps.gz
 
"4 F/S".ps
"4 F/S".ps.gz
 
"8 F/S".ps
"8 F/S".ps.gz
Keine
07.12.2004
8. Vorlesungsteil
Polymorphie,
Ad-hoc Polymorphie
und Typklassen
"1 F/S".ps
"1 F/S".ps.gz
 
"4 F/S".ps
"4 F/S".ps.gz
 
"8 F/S".ps
"8 F/S".ps.gz
Keine
30.11.2004
7. Vorlesungsteil
Algebraische
Datentypen
"1 F/S".ps
"1 F/S".ps.gz
 
"4 F/S".ps
"4 F/S".ps.gz
 
"8 F/S".ps
"8 F/S".ps.gz
Keine
23.11.2004
6. Vorlesungsteil
Tupel und Listen,
Polymorphie,
Überladen
"1 F/S".ps
"1 F/S".ps.gz
 
"4 F/S".ps
"4 F/S".ps.gz
 
"8 F/S".ps
"8 F/S".ps.gz
Vorlesung zum
üblichen Termin:
13-14 Uhr!
(Kein Abendtermin!)
16.11.2004
5. Vorlesungsteil
Rekursionstypen,
Komplexitätsklassen
"1 F/S".ps
"1 F/S".ps.gz
 
"4 F/S".ps
"4 F/S".ps.gz
 
"8 F/S".ps
"8 F/S".ps.gz
Keine
09.11.2004
4. Vorlesungsteil
Lambda-Kalkül "1 F/S".ps
"1 F/S".ps.gz
 
"4 F/S".ps
"4 F/S".ps.gz
 
"8 F/S".ps
"8 F/S".ps.gz
Folien aktu-
alisiert am
16.11.2004
(Folien 2, 18, 20 modifiziert,
Folien 6, 10, 16 neu ergänzt)
19.10.2004
3. Vorlesungsteil
Ausdrücke und ihre
Auswertung, Auswertungs-
strategien
"1 F/S".ps
"1 F/S".ps.gz
 
"4 F/S".ps
"4 F/S".ps.gz
 
"8 F/S".ps
"8 F/S".ps.gz
Keine
19.10.2004
2. Vorlesungsteil
Elementare Datentypen,
Listen und Ausdrücke
"1 F/S".ps
"1 F/S".ps.gz
 
"4 F/S".ps
"4 F/S".ps.gz
 
"8 F/S".ps
"8 F/S".ps.gz
Keine
12.10.2004
1. Vorlesungsteil
Motivation und
erste Schritte in Haskell und Hugs
"1 F/S".ps
"1 F/S".ps.gz
 
"4 F/S".ps
"4 F/S".ps.gz
 
"8 F/S".ps
"8 F/S".ps.gz
Veranstaltungen
 
Vortrag,
Simon Peyton Jones, einer der Väter von Haskell, 15.10.2004
 
IASTE Firmenmesse, 20.10.2004
05.10.2004
Vorbesprechung
Motivation und
Organisatorisches
"1 F/S".ps
"1 F/S".ps.gz
 
"4 F/S".ps
"4 F/S".ps.gz
 
"8 F/S".ps
"8 F/S".ps.gz
Keine

Für die Übungsaufgaben werden im Regelfall auch einige Testfälle zur Verfügung gestellt. Diese Testfälle sind vorzugsweise 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
17.12.2004 18.01.2005 (12:00) /
24.01.2005 (12:00)
Verlängert!
Blatt 10.ps
Blatt 10.ps.gz
Testfälle in Kürze;
Abgabefrist verlängert!
08.12.2004 15.12.2004 (12:00) /
12.01.2005 (12:00)
Blatt 9.ps
Blatt 9.ps.gz
Testfälle
01.12.2004 08.12.2004 (12:00) /
15.12.2004 (12:00)
Blatt 8.ps
Blatt 8.ps.gz
Testfälle
24.11.2004 01.12.2004 (12:00) /
08.12.2004 (12:00)
Blatt 7.ps
Blatt 7.ps.gz
Testfälle
17.11.2004 24.11.2004 (12:00) /
01.12.2004 (12:00)
Blatt 6.ps
Blatt 6.ps.gz
Testfälle
10.11.2004 17.11.2004 (12:00) /
24.11.2004 (12:00)
Blatt 5.ps
Blatt 5.ps.gz
Testfälle
03.11.2004 10.11.2004 (12:00) /
17.11.2004 (12:00)
Blatt 4.ps
Blatt 4.ps.gz
Testfälle
27.10.2004 03.11.2004 (12:00) /
10.11.2004 (12:00)
Blatt 3.ps
Blatt 3.ps.gz
Testfälle
20.10.2004 27.10.2004 (12:00) /
03.11.2004 (12:00)
Blatt 2.ps
Blatt 2.ps.gz
Testfälle
13.10.2004 20.10.2004 (12:00) /
27.10.2004 (12:00)
Blatt 1.ps
Blatt 1.ps.gz
Testfälle

Zur Orientierung finden Sie auch entsprechende Informationen aus dem Wintersemester 2003/2004.

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 2004/2005 findet am 5. Oktober 2004 von 13:00 Uhr bis 14:00 Uhr im Informatikhörsaal (Treitelstraße 3) statt. Die Vorlesung selbst beginnt am 12. Oktober 2004 und findet ebenfalls jeden Dienstag von 13:00 Uhr bis 14:00 Uhr im Informatikhörsaal (Treitelstraße 3) statt.

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 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 fp@b1.complang.tuwien.ac.at oder direkt an einen Tutor in den Übungsräumen richten. Tutoren sind während der Übung zu folgenden Zeiten anwesend.

Anwesenheitszeiten der Tutoren

Ab dem 18. Oktober 2004 werden die Tutoren (bis auf weiteres) an folgenden Tagen und Zeiten im Labor anwesend sein und Ihnen für Fragen und zur Ausgabe von Rechennummern und Passwörtern zur Verfügung stehen.

Montag 13:00 Uhr - 17:00 Uhr (Adrian Prantl)
Dienstag 10:30 Uhr - 13:00 Uhr (Christoph Roschger)
14:00 Uhr - 15:30 Uhr (Christoph Roschger)
18:00 Uhr - 20:00 Uhr (Sinan Saral)
Donnerstag 09:30 Uhr - 11:30 Uhr (Sinan Saral)
Freitag 08:00 Uhr - 12:00 Uhr (Anis Hadzisalihovic)

Anrechenbarkeit

"Funktionale Programmierung" ist für folgende Bakkalaureatsstudien anrechenbar: "Software & Information Engineering" (Pflichtfach, 5. Semester) 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 2005 abgeschlossen sein. Die Prüfungen (etwa 15 Min.) werden dann nach Vereinbarung im Anschluss noch während der Vorlesungszeit ab ca. dem 20. Januar 2005 abgehalten. Weitere Termine wird es auch in der ersten Februarwoche geben. 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, in der Vorlesung und auch in der news-Gruppe bekanntgegeben werden.

Anmeldung zu den Prüfungen ab sofort möglich!

Das Anmeldesystem für die Prüfungen ist freigeschaltet. Anmeldungen sind ab sofort möglich.

Zum Prüfungsanmeldesystem.

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 10 Abgaben in diesem Semester sind maximal 1000 Punkte erreichbar. Für eine positive Beurteilung des Laborübungsteils benötigen Sie von den maximal erreichbaren Punkten mindestens 500 Punkte, also 50%, für "Befriedigend" mindestens 625, für "Gut" mindestens 750 und für "Sehr Gut" mindestens 825 Punkte.

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
AK d. Prakt. Inf. 1
AK d. Prakt. Inf. 2
Grundl. wiss. Arbeitens
Sonstige
Schnellzugriff:
TUWIS++
voriges Semester
voriges Jahr
Lehrbehelfe
Literaturhinweise
Tutoren
Prüfungen
Anrechenbarkeit
top | HTML 4.01 | last update: 2014-05-04 (Knoop)