Funktionale Programmierung
LVA 185.161, VL 2.0, 2005 W

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


more@informatics - Ein Programm für Studierende, die mehr vom Studium wollen!

Prüfungsanmeldesystem freigeschaltet!

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

Nachtragstermine wird es zu Anfang, in der Mitte und zu Ende der Vorlesungszeit im Sommersemester 2006 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 Vorlesungsteile 8 und 9).

Zum Anmeldesystem.

Vorbesprechung und Anmeldung

Die Vorbesprechung für diese Lehrveranstaltung findet am Dienstag, den 11.10.2005, von 13:00 Uhr bis 14:00 Uhr im Informatikhörsaal (Treitlstr. 3) statt. Das elektronische Anmeldesystem wird nach der Vorbesprechung an dieser Stelle zur Verfügung stehen. Der Anmeldezeitraum wird bis Montag, den 24. Oktober 2005, dauern. Sie werden in jedem Fall ausreichend Zeit haben, sich für diese Lehrveranstaltung anzumelden. Weitere Informationen zur Vorbesprechung und zu Zeit und Ort der Vorlesung finden Sie hier.
  • Do, 19.01.2006, 16:30-18:00 Uhr im Radinger-Hörsaal

    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
    19.01.2006
    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
    Keine
    12.01.2006
    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
    15.12.2005
    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
    01.12.2005
    6. Vorlesungsteil
    Polymorphie,
    Ad hoc Polymorphie,
    Muster und
    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
    24.11.2004
    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
    Keine
    17.11.2005
    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
    Aktualisiert am
    21.11.2005
    03.11.2005
    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
    Aktualisiert am
    21.11.2005
    25.10.2005
    2. Vorlesungsteil
    Funktionen und
    ihre Signaturen
    "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
    20.10.2005
    1. Vorlesungsteil
    Einführung und
    Grundlagen
    "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
    Aktualisiert
    am 25.10.2005
    11.10.2005
    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
    Termin und Ort
    der Vorbesprechung:
    Di, 11.10.2005, 13-14 Uhr, Treitl-Hörsaal.

    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
    09.01.2006 17.01.2006 (12:00) /
    24.01.2006 (12:00)

    (war 16.01.2006 / 23.01.2006)
    Blatt 9.pdf
    Blatt 9.pdf.gz
    Letztes
    Aufgabenblatt!
    Testfälle nicht verfügbar.
    Abgabetermine verlängert!
    14.12.2005 11.01.2006 (12:00) /
    18.01.2005 (12:00)
    Blatt 8.pdf
    Blatt 8.pdf.gz
    Testfälle
    Aufgabenblatt 8
    präzisiert am
    20.12.2005
    07.12.2005 14.12.2005 (12:00) /
    11.01.2006 (12:00)
    Blatt 7.pdf
    Blatt 7.pdf.gz
    Testfälle
    30.11.2005 07.12.2005 (12:00) /
    14.12.2005 (12:00)
    Blatt 6.pdf
    Blatt 6.pdf.gz
    Testfälle
    (aktualisiert 03.12.2005)
    23.11.2005 30.11.2005 (12:00) /
    07.12.2005 (12:00)
    Blatt 5.pdf
    Blatt 5.pdf.gz
    Testfälle
    16.11.2005 23.11.2005 (12:00) /
    30.11.2005 (12:00)
    Blatt 4.ps
    Blatt 4.ps.gz
    Testfälle
    04.11.2005 16.11.2005 (12:00) /
    23.11.2005 (12:00)
    Blatt 3.ps
    Blatt 3.ps.gz
    Testfälle
    27.10.2005 15.11.2005 (12:00) / 22.11.2005 (12:00)
    (war 04.11.2005 / 11.11.2005)
    Blatt 2.ps
    Blatt 2.ps.gz
    Testfälle
     
    Geänderte Abgabetermine!
     
    Beachten Sie
    auch folgenden
    Hinweis!
    24.10.2005 31.10.2005 (12:00) /
    15.11.2005 (12:00) /
    (war 07.11.2005)
    Blatt 1.ps
    Blatt 1.ps.gz
    Testfälle
     
    Geänderte Abgabetermine!

     

    Hinweis zu Aufgabenblatt 2: Ändern Sie in den Teilaufgaben 1 und 2 die Signaturen der Funktionen anzZahlungsvarianten und anzZahlen von Int -> Integer auf Integer -> Integer. Im aktuell herunterladbaren Aufgabenblatt ist diese Änderung schon vollzogen. Sie können weiters davon ausgehen, dass die Funktion anzZahlungsvarianten nur mit Argumenten bis zu 3 USD getestet wird. (04.11.2005)

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

    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 2005/2006 findet am Dienstag, den 11. Oktober 2005, von 13:00 Uhr bis 14:00 Uhr im Informatikhörsaal (Treitelstraße 3) statt. Im Anschluss an die Vorlesung erfolgt die Anmeldung für die Teilnahme an der Vorlesung. Wie im letzten Jahr wird diese Anmeldung über ein elektronisches Anmeldesystem erfolgen. Das Anmeldesystem wird nach der Vorbesprechung über diese Webseite erreichbar sein. Für die Anmeldung wird ein ausreichender Zeitraum zur Verfügung stehen. Die Vorlesung selbst beginnt am Donnerstag, den 20. Oktober 2005, und findet im Regelfall am Donnerstag von 16:30 Uhr bis 18:30 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 25. Oktober 2005 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)
    16:00 Uhr - 18:00 Uhr (Christoph Roschger)
    Dienstag 08:00 Uhr - 09:00 Uhr (Anis Hadzisalihovic)
    09:00 Uhr - 13:00 Uhr (Johannes Strodl)
    Mittwoch 08:00 Uhr - 11:00 Uhr (Anis Hadzisalihovic)
    Donnerstag 09:00 Uhr - 13:00 Uhr (Adrian Prantl)

    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 2006 abgeschlossen sein. Die Prüfungen (etwa 15 Min.) werden dann nach Vereinbarung im Anschluss noch während der Vorlesungszeit ab ca. dem 20. Januar 2006 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 2006 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
    AK d. Prakt. Inf. 1
    AK d. Prakt. Inf. 2
    Grundl. wiss. Arbeitens
    Sonstige
    Schnellzugriff:
    TUWIS++
    voriges Semester
    voriges Jahr
    Lehrbehelfe
    Literaturhinwei2se
    Tutoren
    Prüfungen
    Anrechenbarkeit
    top | HTML 4.01 | last update: 2014-05-04 (Knoop)