Funktionale Programmierung
LVA 185.161, VL 2.0, ECTS 3.0, 2010 W

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

Haben Sie Interesse an einem geförderten Auslandsstudium?

Informationen zu Fördermöglichkeiten finden Sie hier.

 

Anmeldesystem offen!

Das elektronische Anmeldesystem ist offen.

Zum Anmeldesystem.

Inhalt

Die Vorlesung führt in die Prinzipien und Konzepte der funktionalen Programmierung ein und spannt dabei den Bogen von den Grundlagen bis zur Anwendung. In der vorlesungsbegleitenden Plenumsübung Haskell Live wird am Beispiel konkreter Aufgaben praktisch vorgeführt und diskutiert, wie sich diese zur Lösung einsetzen lassen. Dabei können insbesondere auch eigene Lösungsvorschläge vorgestellt und zur Diskussion gestellt werden. Im Laborübungsteil wird der funktionale Programmierstil anhand von Beispielen eigenständig angewendet und eingeübt und ein vertieftes auch praktisches Verständnis für die Konzepte und Prinzipien funktionaler Programmierung gewonnen. Als Demonstrations- und Implementierungssprache wird in Vorlesung und Übung die funktionale state-of-the-art Programmiersprache Haskell verwendet.

Die Vorlesung behandelt insbesondere folgende Themen und deren Umsetzung in Haskell:

Ziele

Die Studierenden erhalten ein umfassendes theoretisches und praktisches Verständnis der Grundlagen und Konzepte der funktionalen Programmierung und lernen, diese auf ihre Eignung zur Lösung programmiertechnischer Aufgaben zu bewerten und angemessen und sinnvoll im funktionalen Programmierstil einzusetzen.

Voraussetzungen und Empfehlungen

Der Studienplan empfiehlt die Lehrveranstaltung im Anschluss an die Lehrveranstaltungen zur objekt- und logikorientierten Programmierung (LVA 185.162 Objektorientierte Programmierung und LVA 185.179 Logikorientierte Programmierung) zu hören.

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

Zuordnung

Siehe TUWIS++/185.161.

Termine

Vorbesprechung

Abschlussprüfung

Vorlesung

Die Vorlesungstermine sind wie folgt:
  1. Do, 16.12.2010, 16:00-17:30 Uhr, Vorlesung im HS 8 H.Parkus, Karlsplatz 13 (Letzter Vorlesungstermin)
  2. Do, 09.12.2010, 16:00-17:30 Uhr, Vorlesung im HS 8 H.Parkus, Karlsplatz 13
  3. Do, 02.12.2010, 08:15-09:45 Uhr, Vorlesung im HS 8 H.Parkus, Karlsplatz 13
    Nachmittags Informatik-lehrveranstaltungsfrei zum epilog-Besuch!
  4. Do, 25.11.2010, 16:00-17:30 Uhr, Vorlesung im HS 8 H.Parkus, Karlsplatz 13
  5. Do, 11.11.2010, 16:00-17:30 Uhr, Vorlesung im HS 8 H.Parkus, Karlsplatz 13
  6. Do, 04.11.2010, 16:00-17:30 Uhr, Vorlesung im HS 8 H.Parkus, Karlsplatz 13
  7. Do, 28.10.2010, 08:15-09:45 Uhr, Vorlesung im HS 8 H.Parkus, Karlsplatz 13
  8. Fr, 15.10.2010, 15:15-16:45 Uhr, Vorlesung im HS 8 H.Parkus, Karlsplatz 13
  9. Do, 14.10.2010, 16:00-17:30 Uhr, Vorlesung im HS 8 H.Parkus, Karlsplatz 13
  10. Fr, 01.10.2010, 15:00-16:30 Uhr, Vorlesung im HS 8 H.Parkus, Karlsplatz 13

Haskell Live - Plenumsübung

Die Haskell Live Termine sind voraussichtlich wie folgt:
  1. Fr, 14.01.2011, Haskell Live von 14:15-15:00 Uhr im HS 6, Karlsplatz 13
  2. Fr, 17.12.2010, Haskell Live von 14:15-15:00 Uhr im HS 6, Karlsplatz 13
  3. Fr, 10.12.2010, Haskell Live von 14:15-15:00 Uhr im HS 6, Karlsplatz 13
  4. Fr, 03.12.2010, Haskell Live von 14:15-15:00 Uhr im HS 6, Karlsplatz 13
  5. Fr, 26.11.2010, Haskell Live von 14:15-15:00 Uhr im HS 6, Karlsplatz 13
  6. Fr, 19.11.2010, Haskell Live von 14:15-15:00 Uhr im HS 6, Karlsplatz 13
  7. Fr, 12.11.2010, Haskell Live von 14:15-15:00 Uhr im HS 6, Karlsplatz 13
  8. Fr, 05.11.2010, Haskell Live von 14:15-15:00 Uhr im HS 6, Karlsplatz 13
  9. Fr, 29.10.2010, Haskell Live von 14:15-15:00 Uhr im HS 6, Karlsplatz 13
  10. Fr, 22.10.2010, Haskell Live von 14:15-15:00 Uhr im HS 6, Karlsplatz 13
  11. Fr, 15.10.2010, Haskell Live von 14:15-15:00 Uhr im HS 6, Karlsplatz 13
  12. Fr, 08.10.2010, Haskell Live von 14:15-15:00 Uhr im HS 6, Karlsplatz 13
Materialien zu Haskell Live finden Sie hier.

Laborbetreuung

Im Labor stehen Ihnen zu folgenden Zeiten Tutoren für Fragen zur Verfügung.

Montag 14:45 Uhr - 15:45 Uhr (Bernhard Urban)
Mittwoch 11:00 Uhr - 12:00 Uhr (Bong Min Kim) (nicht am 22.12.2010!)
13:00 Uhr - 14:00 Uhr (Christoph Spörk)
Donnerstag 11:00 Uhr - 12:00 Uhr (Florian Hassanen)

Weitere Betreuung

Nutzen Sie insbesondere Plenumsübung und Laborbetreuung, um mögliche Fragen und Probleme in einem persönlichen Gespräch zu klären. Verfolgen Sie daneben die Newsgroup tuwien.lva.funktional für Fragen von allgemeinem Interesse zur Lehrveranstaltung.
           Nicht für die Öffentlichkeit bestimmte Fragen zur Lehrveranstaltung können Sie ebenfalls persönlich insbesondere mit den Tutoren besprechen oder elektronisch an bitte ausschließlich folgende Adresse richten: fp2010W@g0.complang.tuwien.ac.at
(Achtung: an fp2010W@g0... nur von der g0 aus senden, nicht von einem anderen Rechner oder von außen!)

Lehrbehelfe

In der Lehrveranstaltung wird die Programmiersprache Haskell zur praktischen Illustration funktionaler Programmierung verwendet; in der Laborübung der Haskell-Interpreter Hugs 98 verwendet, der für viele Plattformen frei verfügbar ist.

Vorlesungsunterlagen

Die Folien zu Vorlesung und Vorbesprechung sind in Folge jeweils als Gesamtdokument in drei Formaten mit 1, 4 bzw. 8 Folien pro Seite verfügbar und werden im Lauf des Semesters nach Bedarf aktualisiert:

Lehrbücher

Über funktionale Programmierung und funktionale Programmierung in Haskell gibt es eine Fülle von Lehrbüchern. 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 Ihnen und Ihrem Lerntyp besonders entspricht.

Weitere Informationsquellen

Die Haskell Home Page stellt umfangreiche Informationen zu Haskell zur Verfügung. Ein Online-Tutorial erklärt die Sprache sehr gut, setzt aber Grundkenntnisse funktionaler Programmierung voraus. Empfehlenswerte weitere Literaturhinweise finden Sie auf den Folien zur Vorbesprechung der Lehrveranstaltung und im Abschnitt Literaturhinweise auf dieser Seite.

Laborübung

Für die Übungsaufgaben werden, so nicht schon auf dem Aufgabenblatt geschehen, im Regelfall 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 ein eigenständiges Testen Ihrer Programme nicht abnehmen. Die Testfälle sind dazu weder gedacht noch geeignet.

Übung
 
Aufgabenblatt vom
Abgabe/Nachabgabe Verfügbare Formate Hinweise und Bemerkungen
14.12.2010 21.12.2010 (15:00) /
11.01.2011 (15:00)
Blatt 10.pdf
Blatt 10.pdf.gz
Testfälle
(Letztes Aufgabenblatt)
07.12.2010 14.12.2010 (15:00) /
21.12.2010 (15:00)
Blatt 9.pdf
Blatt 9.pdf.gz
Testfälle
30.11.2010 07.12.2010 (15:00) /
14.12.2010 (15:00)
Blatt 8.pdf
Blatt 8.pdf.gz
Testfälle
23.11.2010 30.11.2010 (15:00) /
07.12.2010 (15:00)
Blatt 7.pdf
Blatt 7.pdf.gz
Testfälle
16.11.2010 23.11.2010 (15:00) /
30.11.2010 (15:00)
Blatt 6.pdf
Blatt 6.pdf.gz
Testfälle
09.11.2010 16.11.2010 (15:00) /
23.11.2010 (15:00)
Blatt 5.pdf
Blatt 5.pdf.gz
Testfälle
26.10.2010 09.11.2010 (15:00) /
16.11.2010 (15:00) (verlängert!)
Blatt 4.pdf
Blatt 4.pdf.gz
Abgabetermin verlängert; Aufgabenstellung verdeutlicht.
Testfälle
19.10.2010 26.10.2010 (15:00) /
02.11.2010 (15:00)
Blatt 3.pdf
Blatt 3.pdf.gz
Keine.

12.10.2010 19.10.2010 (15:00) /
26.10.2010 (15:00)
Blatt 2.pdf
Blatt 2.pdf.gz
Keine.

05.10.2010 19.10.2010 (15:00) /
26.10.2010 (15:00)
Blatt 1.pdf
Blatt 1.pdf.gz
Keine.

Beurteilung

Laborübung

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. 10 Abgaben im 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 (62.5%), für "Gut" mindestens 750 (75%) und für "Sehr Gut" mindestens 875 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.

Schriftliche Prüfung

Die Beurteilung setzt sich je zur Hälfte aus dem Erfolg bei der Laborübung und dem Ergebnis einer 90-minütigen schriftlichen Prüfung (sog. Klausur) zusammen. Die schriftliche Prüfung erfolgt über den Vorlesungs- und Übungsstoff und einen wissenschaftlichen (Übersichts-) Artikel, den Sie sich im Lauf der Vorlesungszeit selbstständig erschließen und zwar Der Haupttermin für die schriftliche Prüfung ist im Anschluss an den Vorlesungblock (Für den Termin siehe hier). Nachtragsklausurtermine wird es zu Beginn, in der Mitte und gegen Ende der Vorlesungszeit im Sommersemester 2011 geben. Die genauen Termine werden rechtzeitig in TUWIS++ 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++.

Zeugnisausstellung

Zeugnisse werden zum frühestmöglichen Zeitpunkt ausgestellt. Das ist nach nicht positivem Abschluss des Laborübungsteils, dem positiven Abschluss von Laborübungsteil und schriftlicher Prüfung, nach zweimaligem nicht positivem Abschluss der schriftlichen Prüfung bzw. nach Verstreichen aller schriftlichen Prüfungstermine ohne positiven Abschluss.

Vortragender

Jens Knoop.
Sprechstunde
wiederholte LVAs:
Fkt. Programmierung
Opt. Übersetzer
Grundl. meth. Arbeitens
Sonstige
Schnellzugriff
TISS
voriges Semester
voriges Jahr
Inhalt
Ziele
Voraussetzungen u. Empfehlungen
Zuordnung
Vorbesprechung
Abschlussprüfungstermin
Vorlesungstermine
Haskell Live Termine
Laborbetreuung
Lehrbehelfe
Laborübung
Beurteilung
top | HTML 4.01 | last update: 2014-05-04 (Knoop)