VL: Praktische Informatik III (Deklarative Programmierung)
VL 12058 Praktische Informatik III (Deklarative Programmierung)
Prof. Dr. R. Loogen
Mittwoch, 9.15-11.00 HG 5 (Biegenstraße)
Beginn: 22. Oktober 2003
UE 12059
TutorTerminRaumInfos
Dorian DaiMi, 16-18 UhrHörsaal I (Edene D3, Lahnberge) Tutoriumsseite
Björn StruckmeierDo, 14-16 UhrHörsaal I (Edene D3, Lahnberge)
Ivo Pacák Do, 16-18 UhrHörsaal I (Edene D3, Lahnberge)

Die Übungsgruppen beginnen in der zweiten Vorlesungswoche, d.h. am 29. und 30. Oktober 2003.
Fachgebiet Klassifikation Semester Fortsetzung Skript
Informatik Grundstudium >=1 - ja

Voraussetzungen: Diese VL ist eine einführende Veranstaltung für Studierende: der Informatik, des Lehramtsstudiengangs Informatik, mit Nebenfach Informatik. Die Vorlesungen Praktische Informatik I und II werden nicht vorausgesetzt.
Scheinkriterien: Zum Erwerb eines unbenoteten Scheins sind folgende Kriterien zu erfüllen:
  1. aktive Teilnahme an den Übungen
  2. erfolgreiche Bearbeitung von mindestens 50 % der Übungsaufgaben
  3. erfolgreiche Präsentation der Lösung mindestens einer mündlichen Übungsaufgabe
Zum Erwerb eines benoteten Scheins ist zusätzlich am Semesterende eine Klausur zu bestehen.
Klausurtermin: Mittwoch, 18. Februar 2004, 8:45 - 11:00 Uhr, HG 5 (Biegenstraße)
Zum Ueben: Klausuren vom 4. Februar 2000 (Postscript, PDF) und 31. Januar 2002 (Postscript, PDF)


Übungsorganisation In der ersten Vorlesungswoche wird zu den folgenden Terminen jeweils eine Einführung in das Hugs-System angeboten:
  • Mittwoch, 22. Oktober 2003, 16:00 - 17:30 Uhr, Hörsaal I, Lahnberge
  • Donnerstag, 23. Oktober 2003, 16:00 - 17:30 Uhr, Hörsaal I, Lahnberge
Die Übungsblattaus- und -abgabe erfolgt jeweils in den Übungsgruppen.
Die Abgabe der Übungsaufgaben ist in Zweiergruppen erlaubt.
Übungsblätter: Blatt 1, 22.10.2003 (Postscript, PDF), Picture.hs - Perfekte Zahlen
Blatt 2, 29.10.2003 (Postscript, PDF)
Blatt 3, 05.11.2003 (Postscript, PDF)
Blatt 4, 12.11.2003 (Postscript, PDF), SearchTree.hs
Blatt 5, 19.11.2003 (Postscript, PDF), countdown.hs, queue.hs
Blatt 6, 26.11.2003 (Postscript, PDF), Trans.hs, Hugs Graphics Library plus Dokumentation (Postscript, PDF)
Blatt 7, 03.12.2003 (Postscript, PDF)
Blatt 8, 10.12.2003 (Postscript, PDF)
Blatt 9, 17.12.2003 (Postscript, PDF), bspHOF.hs, nachricht.txt
Blatt 10, 14.01.2004 (Postscript, PDF)
Blatt 11, 21.01.2004 (Postscript, PDF), Module zu Aufgabe 55: Frequency.hs, Types.hs
Blatt 12, 28.01.2004 (letztes Blatt) (Postscript, PDF)
Beispielprogramme: Imperatives Programm mit Seiteneffekt
Einführungsbeispiel: Simple.hs
Listen: bspLists.hs, Standardfunktionen: bspPrelude.hs Fallstudie: queue.hs
Algebraische Datenstrukturen: bspStructures.hs, Fallstudie: SearchTree.hs
Monadische Ein-/Ausgabe: bspMonadicIO.hs, Einfache Graphiken mit der Hugs Graphics Library: bspGraphics.hs
Funktionen höherer Ordnung: bspHOF.hs, ... über allgemeinen Bäumen: bspRoseTreeMapFold.hs,
Fallstudie Indexerstellung: index.hs
Lazy Evaluation: bspLaziness.hs
Werkzeuge: Der Hugs-Interpreter

Literatur: siehe auch Haskell Bookshelf
Skript: Kann (wieder) im Informatik-Sekretariat auf Ebene D5 zum Preis von 5 € erworben werden.

Links: Haskell Homepage
Warum funktional programmieren?
Learning Haskell
Der Hugs-Interpreter
Typische Fehlermeldungen des Hugs-Interpreters
Das Hugs-Manual ( PDF)


Inhalt: In deklarativen Programmiersprachen sind Programme Problembeschreibungen. Die Ausführung der Programme basiert auf der Manipulation von Ausdrücken, die Werte definieren. Details der Programmausführung, wie z. B. die Speicherverwaltung, spielen für den Programmierer keine Rolle. Daher erfolgt die Programmentwicklung schneller als in imperativen Sprachen und die Programme sind kürzer als entsprechende imperative. Zu den deklarativen Sprachen zählen funktionale und Logik-Sprachen. In der Vorlesung werden am Beispiel der funktionalen Sprache Haskell die grundlegenden Ideen und Konzepte deklarativer Programmierung vermittelt:
  • Rekursive Funktionsgleichungen
  • Algebraische Datenstrukturen und Pattern Matching
  • Funktionen höherer Ordnung
  • Polymorphe Typsysteme, Typinferenz
  • Auswertungsstrategien
  • Monadische Ein-/Ausgabe


Zuletzt geändert: Tuesday, 17-Feb-2004 08:46:20 CET