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
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:
|
Andreas Abel
Last modified: Thu Jul 16 17:36:52 CEST 2009
|
|
|