CS 310: Praktische Informatik III: Konzepte von Programmiersprachen
VL+UE 12 113 11310 Praktische Informatik III: Konzepte von Programmiersprachen
Prof. Dr. R. Loogen
Di, 9.15-11.00, HG 5 (Biegenstraße), Mi, 11.30 - 13.15, HS IV (Lahnberge)
Beginn: 17. Oktober 2006
Übungstermine
Tutor/inTerminRaumE-Mail
Bastian Hackler Mi, 14-16 UhrHS I (Ebene D3, Lahnberge) hackler at mathematik.uni-marburg.de
Ulrike Georgi Do, 16-18 UhrHS III (Ebene D3, Lahnberge) ulrikegeorgi at gmx.de

Die Übungsgruppen beginnen in der zweiten Vorlesungswoche, d.h. am 25. und 26. Oktober 2006.
Fachgebiet Klassifikation Semester Leistungspunkte Skript
Informatik Grundstudium >=1 8 ja

Voraussetzungen: Diese VL ist eine einführende Veranstaltung für Studierende der Informatik, des Lehramtsstudiengangs Informatik und mit Nebenfach Informatik. Die Vorlesungen Praktische Informatik I und II werden nicht vorausgesetzt.
Scheinkriterien: Studierende des Bachelor-/Masterstudiengangs Informatik oder des modularisierten Lehramtsstudiengangs Informatik müssen sich in der zweiten Vorlesungswoche zu der Modulprüfung anmelden. Ein Rücktritt von der Prüfung ist bis zur siebten Vorlesungswoche möglich.
Die Modulprüfung besteht aus der Klausur am Semesterende. Als Zulassungsvoraussetzung für die Klausur sind die Kriterien für den Erwerb eines unbenoteten Scheins (siehe unten) zu erfüllen.

Studierende anderer Studiengänge können einen Leistungsnachweis erwerben.
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.
Übungsorganisation Die Übungsblattaus- und -abgabe erfolgt jeweils vor der Dienstagsvorlesung. Das erste Blatt wird aber erst am Mittwoch, dem 18. Oktober erscheinen.
Die Abgabe der Übungsaufgaben ist in Zweiergruppen erlaubt. Die Lösungen sollten grundsätzlich schriftlich, Programme zusätzlich auf Diskette oder per E-Mail an Ihren Tutor oder Ihre Tutorin abgegeben werden.


Klausurtermin: Mittwoch, 07.02.2007, 11.30 - 13.30 Uhr, HS IV (Lahnberge)
Ergebnis der Klausur:
Von den 23 Teilnehmern haben 20 bestanden.
Die Ergebnisse hängen gegenüber dem Informatik-Sekretariat auf Ebene D5 aus.
Es ergab sich folgendes Notenspektrum:
 
| sehr gut  | gut | befriedigend | ausreichend  |
|-----------|-----|--------------|--------------|
|     3     |  6  |       7      |     4        |
 
Klausureinsicht und -rückgabe: Mittwoch, 14.02.2007, 11.15 - 12.00 Uhr, SR V (Lahnberge)
Nachholklausur: Mittwoch, 11.04.2007, 9.30 - 12.00 Uhr, HS IV (Lahnberge)
Zum Ueben: Klausuren aus 2006, 2004, 2002 und 2000
Die Klausuren sind nur von Fachbereichsrechnern zugänglich.

Übungsblätter: Zur Benutzung von Haskell-Interpretern
HSWORDFILE.TXT für Syntaxhighlighting in UltraEdit
Blatt 1, 18.10.2006, Abgabe: 24.10.2006, Picture.hs
Blatt 2, 24.10.2006, Abgabe: 31.10.2006, PictureLK.hs
Blatt 3, 31.10.2006, Abgabe: 07.11.2006
Blatt 4, 07.11.2006, Abgabe: 14.11.2006, SearchTree.hs
Blatt 5, 14.11.2006, Abgabe: 21.11.2006, Vordefinierte Funktionen
Blatt 6, 21.11.2006, Abgabe: 28.11.2006, countdown.hs
Blatt 7, 28.11.2006, Abgabe: 05.12.2006
Blatt 8, 05.12.2006, Abgabe: 12.12.2006
Blatt 9, 12.12.2006, Abgabe: 19.12.2006
Blatt 10, 19.12.2006, Abgabe: 09.01.2007, robinson.hs
Blatt 11, 09.01.2007, Abgabe: 16.01.2007
Blatt 12 (letztes Blatt in der Wertung), 16.01.2007, Abgabe: 23.01.2007, expr.hs
Blatt 13 (Zusatzblatt), 23.01.2007, Abgabe: 30.01.2007
Vorlesungsfolien: 1. Einführung
Beispielprogramme: Einführungsbeispiel: Simple.hs
Listen: bspLists.hs, Fallstudie: queue.hs
Algebraische Datenstrukturen: bspStructures.hs, Fallstudie: SearchTree.hs
Monadische Ein-/Ausgabe: bspMonadicIO.hs, Einfache Graphiken mit der SOE Graphics Library: bspGraphics.hs
Funktionen höherer Ordnung: bspHOF.hs ... über allgemeinen Bäumen: bspRoseTreeMapFold.hs
Fallstudien: Indexerstellung: index.hs, Routenplanung: route.hs, Entfernungstabelle
Monadische Kompositionsoperatoren: bspIOCompositions.hs, siehe hierzu auch das Tutorial Paper von Simon Peyton Jones: Tackling the Awkward Squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell, Marktoberdorf Sommerschule 2000, "Engineering theories of software construction", ed Tony Hoare, Manfred Broy, Ralf Steinbruggen, IOS Press, ISBN 1 58603 1724, 2001, pp47-96. (tackling.pdf)
Lazy Evaluation: bspLaziness.hs
QuickCheck: Homepage, Folien, qctest.hs, queue.hs
Weihnachtsvorlesung: Haskore, Folien, Weihnachten.hs, SOE.zip
Prolog-Beispielprogramme: bibel.pl, bibel1.pl, graph.pl, listen.pl, farben.pl, durch.pl

Literatur:
  1. Funktionale Programmierung
    siehe auch Haskell Bookshelf
  2. Formale Modellierung
    • Chris Hankin: Introduction to Lambda Calculi for Computer Scientists, King's College Publications 2004.
    • Kees Doets, Jan van Eijck: The Haskell Road to Logic, Maths and Programming, King's College Publications 2004.
    • David A. Watt: Programmiersprachen: Konzepte und Paradigmen, Hanser 1996.
    • John C. Mitchell: Concepts of Programming Languages, Cambridge University Press 2003.
Skript: Das Skript kann voraussichtlich in der ersten Vorlesung und später im Informatik-Sekretariat auf Ebene D5 (Lahnberge) 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)
SWI-Prolog Homepage
SWI-Prolog Online Manual (pdf-Version)


Inhalt:
  1. Einführung
    I Funktionale Programmierung
  2. Grundkonzepte
  3. Datenstrukturen
  4. Interaktive Ein-/Ausgabe
  5. Funktionen höherer Ordnung
  6. Laziness: Bedarfsgesteuerte Auswertung>
    II Formale Modellierung
  7. Nachweis von Programmeigenschaften
  8. Typsysteme
  9. Der Lambda-Kalkül
  10. Denotationelle Semantik
    III Alternative Paradigmen
  11. Logik-Programmierung


Zuletzt geändert: Thursday, 08-Feb-2007 18:30:51 CET