[Uni Bremen] [FB 3] [TZI] [BISS] [AG

Praktische Informatik 3 (WS2000/2001)

Willkommen auf der Heimatseite der Lehrveranstaltung "Praktische Informatik " im Wintersemester 2000/2001.

Inhaltliches

Das Thema dieser Veranstaltung ist funktionale und logische Programmierung, auch oft unter deklarativer Programmierung zusammengefaßt.

Die deklarative Programmierung beschäftigt sich mit Programmiersprachen, bei denen das zu lösende Problem in einer möglichst abstrakten und dennoch ausführbaren Weise beschrieben wird. Diese Programmiersprachen basieren auf unterschiedlichen mathematischen Formalismen: bei der funktionalen Programmierung werden Programme als Funktionen dargestellt, die eine Eingabe auf eine Ausgabe abbilden, während bei der logischen Programmierung Programme durch eine bestimmte Art von logischen Formeln dargestellt werden.

Wir werden uns auf die funktionale Programmierung in der Programmiersprache Haskell konzentrieren (mehr darüber unten), aber die Veranstaltung ist natürlich mehr als ein Haskell-Kurs. Ziel ist es eine Denkweise zur algorithmischen Lösung von Problemen auf hohem abstrakten Niveau zu vermitteln. Mit anderen Worten, Programmieren ohne jedes Bit im Rechner beim Namen zu kennen, oder Programmieren für Informatiker.

Die Veranstaltung basiert in größeren Teilen auf dem Buch The Haskell School of Expression, das als begleitende Lektüre empfohlen wird.

Eine vorläufige Liste der in der Veranstaltung behandelten Themen:

Organisatorisches

Achtung, die Vorlesung ist ab dem 27.11. nicht mehr im kleinen Hörsaal der Keksdose!

Die Veranstaltung besteht aus folgenden Teilen:

Die VAK der Veranstaltung ist 03-533.

Scheinkriterien

In der ersten Vorlesung wurden folgende Scheinkriterien ausgehandelt und mit 34:17:6 Stimmen angenommen:
  1. Von den n ausgegebenen Übungsblättern müssen n-1 bestanden werden, wobei ein Übungsblatt als bestanden gilt, wenn mindestens 40% der Punkte erreicht werden.
  2. Insgesamt müssen bei den n-1 besten Übungsblättern im Schnitt 60% der Gesamtpunktzahl erreicht werden. (Der Schnitt bezieht sich auf n-1 Blätter, nicht auf alle.)
  3. Zur Prüfung der Individualität der Leistung findet in der letzten Woche des Semesters eine betreute Bearbeitung des n+1 Übungsblattes statt. Dieses Übungsblatt zählt nicht zu den unter (1.) und (2.) angerechneten.
  4. Studenten, die an der betreuten Bearbeitung nicht teilnehmen, oder deren Leistung in der betreuten Bearbeitung wesentlich von der vorherigen, in der Gruppe erbrachten Leistung abweicht, werden zu einem Fachgespräch (beim freundlichen Veranstalter) geladen. Ersatzweise kann die Individualität der Leistung nach Maßgabe des Tutors durch aktive Teilnahme am Tutorium als gesichert gelten; in diesem Fall entfällt das Fachgespräch. Die freiwillige Teilnahme am Fachgespräch steht jedem offen.

Scheinrelevanz

Der in der DPO'93 aufgeführte prüfungsrelevante PI3-Schein kann (in diesem Semester) nicht nur (wie bisher) über das SWP sondern alternativ auch über PI3 abgedeckt werden. Die in der DPO zusätzlich aufgeführte Forderung der erfolgreichen Teilnahme am SWP bleibt davon unberührt.

Kurz gesagt kann also gewählt werden zwischen

Mehr dazu hier.

Vorlesungsfolien und Übungsblätter

Hier finden sich die Vorlesungsfolien und Übungsblätter, sowie der Haskell-Quellcode aus den Vorlesungen.

Vorlesungsfolien:

Kleiner Tip: mit gunzip -c folienX.ps.gz | psnup -l -2 | lp (oder sogar -4) lassen sich die Folien papiersparend ausdrucken. Wenn der erzeugte PostScript unleserlich ist, kann man ihn mit fixfmps wieder reparieren (einfach als Filter benutzen).

Vorlesungsbegleitende Materialen

Übungsblätter

Hier ist der Leitfaden zur Lösung der Übungsblätter.

Bücher und weiterführende Literatur

Die Veranstaltung basiert in weiten Teilen auf folgendem Buch:

[Cover]Paul Hudak:
The Haskell School of Expression
Cambridge University Press, 2000
ISBN 0-521-64408-9
Paperback ca. DM 60,-



Ein weiteres empfehlenswertes Buch zum Thema, mit einem etwas formaleren Stil als das vorhergehende, ist folgendes:

[Cover]Simon Thompson:
Haskell: The Craft of Functional Programming
Addison-Wesley Publishing Company, 1996
ISBN 0-201-40357-9
ca. DM 68,-





Software

Der Übungsbetrieb basiert auf dem Haskell-Interpreter Hugs. Hugs ist lokal im FB3-Netz installiert, und wird mit
/usr/local/lang/hugs
aufgerufen. Auf der Hugs Homepage gibt es Implementationen für viele verschiedene Betriebssysteme (Unix/Linux, Windows, Mac &c). Hier ist eine lokale Kopie der Unix-Version; unter vielen Linux-Distributionen (z.B. SuSE) ist Hugs schon als installierbares Paket dabei.

Für Grafiken und Animationen wird das Paket SOEGraphics benötigt. Im FB3-Netz ist es in die lokale Installation von Hugs integriert. Wer es zu Hause installieren möchte: hier sind die Quellen für Windows und Linux. (Für Solaris muß man das Makefile geringfügig ändern; wer das braucht, mailt mich bitte an.)

Links zu Haskell und Hugs


Christoph Lüth
Last modified: Fri Apr 5 18:15:16 CEST 2002