Funktionale Programmierung

Hauptstudium Informatik
SS 2009
Vorlesung: Do 12-14 Uhr (c.t), Oettingenstr. 67, Oe 0.33, Andreas Abel (AA) und Hans-Wolfgang Loidl (HWL)
Übung: Mo 12-14 Uhr (c.t.), Oettingenstr. 67, Rechnerraum Z11
Schein: ja
SWS: 2 Vorlesung + 2 Übung


Aktuelles

  • Ein Schein kann erworben werden durch Abgabe des Mini-Projekts. Auswertung ist am Donnerstag, 23. Juli, 12-14 Uhr im Z11 (CIP-Pool Takla-Makan). Das Cheskers-Spiel kann entweder auf den CIP-Rechnern oder auf dem eigenen Laptop laufen. Den Quellcode bis spätestens 23.07. 8:00 Uhr an mich (Andreas Abel) schicken.
  • Wer einen Schein durch mündliche Prüfung erwerben will, setze sich mit mir in Verbindung.
  • Cheskers Mini-Projekt: Erforderlich sind GUI und Computerspieler mittels alpha-beta-Suche. Toll ist, wenn das Programm gegen dich gewinnt!
  • Terminänderung: Vorlesung am Mo 11.5 in Raum .15 anstatt Do 14.5. (fällt aus)
  • Erste Übung: Montag, 27.04.2009, 12-14 Uhr, im Raum Takla-Makan (Z11 im CIP-Pool)
  • Erste Vorlesung: Donnerstag, 23.04.2009

Vorläufiger Zeitplan

Datum Stoff Material Übungen
23.04. HWL Grundlagen funktionaler Programmierung Folien, Types.hs, cesar-cipher.hs Blatt 1, GHCi, Musterlösungen
30.04. AA Monaden und imperative Programmierung Folien Parser Folien Monaden Parsing.lhs parser.lhs Blatt 2 Parsing.lhs, Parser mit Excpetions, Let parser, Logging Parser
Die Folien zum funktionalen Parsing sind Begleitmaterial zu Graham Hutton's Buch Programming in Haskell.
07.05. HWL Grundlagen II (Why functional programming matters) Folien, Classes.hs,BinTree.hs Blatt 3,Musterlösungen
11.05. HWL Zirkuläre Programme Folien, CircPrgs.lhs, RedBlack.hs Blatt 4, Musterlösungen, TestCesar.hs
21.05. Christi Himmelfahrt
28.05. AA GUI-Programmierung in Haskell Folien, TTTLogic.hs, TTT.hs
04.06. HWL Parallele funktionale Programmierung Folien, STM.hs Blatt 5
Hinweise zum Erstellen und Ausführen von parallelen funktionalen Programmen (dazu wird ein multi-core Rechner, mit einer aktuellen GHC Version benötigt!)
11.06. Fronleichnam
18.06. AA Abhängige Typen Skript, Agda code, Literate Agda code Blatt 6 Vector drop Sorted insert
25.06. HWL Generische Programmierung Folien
02.07. DR Faltungen und verschränkte Datentypen Skript, Haskell Code Blatt 7
09.07. AA Systematisches Testen funktionaler Programme Haskell Code
16.07. AA Profiling und Verifikation funktionaler Programme Mean.hs Mean1.hs Mean2.hs Mean3.hs Mean5.hs Fusion.pdf
23.07. AA Miniprojekt: Abgabe und Testspielen

Inhalt

Aufbauend auf der Einführung in funktionale Programmiersprachen im Rahmen der LV "Programmierung und Modellierung" (Semester 2), werden fortgeschrittene Techniken funktionaler Programmierung vorgestellt. Dabei werden verschiedene Konzepte (Auswertungsstrategien, Polymorphismus, funktionen höherer Ordnung etc) in den Sprachen SML/OCAML, Haskell abgedeckt, und in Übungen vertiefend vermittelt. Im Mittelpunkt stehen dabei fortgeschrittene Programmiertechniken, zur Erstellung eleganterer, besser wartbarer Programme, sowie die Herausforderungen in der Entwicklung von großen Systemen in diesen Sprachen. Neueste Ergebnisse aus der Forschung im Bereich des Designs von Programmiersprachen und von Typsystemen werden gegen Ende des Kurses behandelt.

Mini-Projekt: Implementierung des Spiels Cheskers einschließlich eines Computer-Gegners:

Literatur

Textbücher:

  • Graham Hutton, "Programming in Haskell", Cambridge University Press, 2007, ISBN 0-52169269-5.
  • Bryan O'Sullivan, Don Stewart, John Goerzen, "Real World Haskell", O'Reilly, November 2008, ISBN: 0-59651498-0.
  • Simon Thompson, "Haskell: The Craft of Functional Programming", Second Edition, Addison-Wesley, 1999. ISBN 0-201-34275-8.
  • Paul Hudak, "The Haskell school of expression", Cambridge University Press, 2000. ISBN 0-52164408-9.

Web Pages:


Valid HTML 4.01!
Andreas Abel
Last modified: Thu Jul 16 17:36:52 CEST 2009
Valid CSS!