CS 310: Konzepte von Programmiersprachen (Praktische Informatik III)
|
VL+UE 12 113 11310 |
Konzepte von Programmiersprachen (Praktische Informatik III)
|
|
Prof. Dr. R. Loogen |
|
Di, 08.15-10.00 und Mi, 08.15 - 10.00, jeweils HG 4 (Biegenstraße)
|
|
Beginn: 19. Oktober 2010 |
Übungstermine |
wahlweise donnerstags 14-16 oder donnerstags 16-18 oder freitags 10-12,
jeweils im Hörsaal III (Lahnberge)
Tutor/in | Termin | Raum | E-Mail |
Bernhard Pickenbrock | Do, 14-16 Uhr | HS III (Ebene D3, Lahnberge) |
pickenbrock@mathematik... |
Marco Grebe | Do, 16-18 Uhr | HS III (Ebene D3, Lahnberge) |
grebe@mathematik... |
Florian Pfeiffer | Fr, 10-12 Uhr | HS III (Ebene D3, Lahnberge) |
pfeiffef@mathematik... |
Die Übungsgruppen beginnen in der ersten Vorlesungswoche, d.h. am
21. und 22. Oktober 2010.
|
Fachdidaktik-Begleitseminar |
Thema: | Haskell-Projekte in der Schule |
Vorbesprechung: | Mittwoch, 8. Dezember 2010, im Anschluss an die Vorlesung |
Anmeldung: | Bitte per E-Mail mit Angabe eines Wunsch-Themengebiets
bis zum 22. Dezember 2010. |
Beginn: | Januar 2011 |
Aufgabenstellung: |
Erstellen Sie ein Konzept für ein Schülerprojekt mit Haskell in
einem Informatik-Leistungskurs der Jahrgangsstufe 13
und stellen Sie dieses in einem Kurzvortrag von ca 30 Minuten vor.
Ihr Konzept sollte eine Arbeitsanleitung für die Schüler/innen
beeinhalten und angeben, welche Vorkenntnisse die Schüler/innen
für die Durchführung des Projektes benötigen.
Beispiele für solche Schulprojekte mit Haskell finden Sie
an der Paul-Natorp-Oberschule in Berlin.
|
Termine: |
1. Sitzung: Mittwoch, 26. Januar 2011, ab 18.00 Uhr im Seminarraum 03C52 (Ebene C3, Lahnberge)
2. Sitzung: Donnerstag, 24. Februar 2011, ab 14.00 Uhr im Hörsaal I (Ebene A3, Lahnberge)
|
Themenbereich | Vortragende/r | Termin |
Sortieralgorithmen | Olesja Giese | 26. Januar 2011 |
Bäume | Tillmann Heigel | 26. Januar 2011 |
Suchen in Bäumen | Jan Burchard | 26. Januar 2011 |
Abstrakte Datentypen | Sven Barthel | 24. Februar 2011 |
Backtracking | Mathias Albrecht | 24. Februar 2011 |
Kryptographie | Alexander Vogt | 24. Februar 2011 |
Graphenalgorithmen | | |
Heap-Sort | Vinh Nguyen | 24. Februar 2011 |
Multimedia | | |
... | | |
|
Fachgebiet |
Klassifikation |
Semester |
Leistungspunkte |
Skript |
Informatik |
Basisstudium |
>=1 |
8 (StPO 2004) / 9 (StPO 2010) |
ja |
|
Prüfungsanmeldung: |
Die Anmeldung zur Modulprüfung muss bis Freitag 21. Januar 2011 erfolgen.
Sie ist in den Vorlesungen und Übungen
der Woche vom 18. Januar 2011 möglich!
|
Sondertutorium: |
Mittwoch, 16.02.2011, 8.15 - 10.00 Uhr, HG 4 (Biegenstraße)
|
Klausurtermin: |
Donnerstag, 17.02.2011, 10.00 - 12.00 Uhr, HG 114 (Biegenstraße)
Bitte bringen Sie Ihren Studierendenausweis und den Personalausweis mit!
|
Klausurergebnis: |
Von 38 Teilnehmern haben 18 bestanden.
Der Aushang ist nur von
Fachbereichsrechnern zugänglich. |
Klausureinsicht: |
Dienstag, 22.02.2011, 16.15 - 17.00 Uhr, Seminarraum V (Ebene D5,
Lahnberge |
Nachholklausur: |
Mittwoch, 06.04.2011, 10.00 - 12.00 Uhr,
Hörsaal B, Hörsaalgebäude der Chemie, Lahnberge |
Ergebnis der Nachholklausur: |
Von 22 Teilnehmern haben 15 bestanden.
Der Aushang ist nur von
Fachbereichsrechnern zugänglich. |
2. Klausureinsicht: |
Donnerstag, 14.04.2011, 13.00 - 14.00 Uhr,
Seminarraum V (Ebene D5, Lahnberge) |
Übungsblätter: |
Die Lösungen sind nur von Fachbereichsrechnern und nur jeweils eine Woche nach der Besprechung zugänglich.
Zu den Blättern 1 bis 8 sind die Lösungen vom 22.12.2010 bis zum 14.01.2011 freigeschaltet.
Datei | Ausgabedatum | Abgabedatum | Lösungen | Zusatzmaterial |
Blatt 1 | 19.10.2010 |
26.10.2010 |
u1.hs |
Picture.hs |
Blatt 2 | 26.10.2010 |
02.11.2010 |
u2.hs |
Übersicht über Haskell-Funktionen
und -Operatoren |
Blatt 3 | 02.11.2010 |
09.11.2010 |
u3.hs |
piggybank.hs |
Blatt 4 | 09.11.2010 |
16.11.2010 |
u4.hs |
|
Blatt 5 | 16.11.2010 |
23.11.2010 |
u5.hs |
simplify.hs |
Blatt 6 | 23.11.2010 |
30.11.2010 |
u6.hs |
|
Blatt 7 | 30.11.2010 |
07.12.2010 |
u7.hs |
Achtung: Korrektur in Aufgabe 17 (b):
f2 2 (f1 (^) [1,2,3,4]) 2 =>* [2,4,8,16]
Modul bspRoseTreeMapFold.hs
Vordefinierte Funktionen (Auszug aus der Prelude) |
Blatt 8 | 07.12.2010 |
14.12.2010 |
u8.hs |
Rush Hour Problem,
Beispielgrids zu Aufgabe 20: RushHour1,
RushHour2 |
Blatt 9 | 14.12.2010 |
21.12.2010 |
u9.hs |
robinson.hs |
Blatt 10 (Bonusblatt) | 21.12.2010 |
11.01.2011 |
uA.hs |
botschaft.txt |
Blatt 11 | 11.01.2011 |
18.01.2011 |
uB.hs |
bspLaziness.hs |
Blatt 12 | 18.01.2011 |
25.01.2011 |
uCL.pdf |
|
Blatt 13 | 25.01.2011 |
01.02.2011 |
uD.hs,
uD_secd_outermost.hs |
expr.hs, secd_pp.hs |
Blatt 14 (Bonusblatt) | 01.02.2011 | 08.02.2012 |
uEL.pdf |
|
| Klausurvorbereitung: |
Klausuren aus 2009,
2007 und
2006 .
Die Klausuren sind nur von Fachbereichsrechnern zugänglich.
|
|
|
Vorlesungsunterlagen: |
Inhalt | Folien und Beispielprogramme |
Einführung: |
Einführungsfolien (Druckversion) |
Grundkonzepte funktionaler Programmierung | Simple.hs |
Datenstrukturen: Listen | bspLists.hs, Fallstudie: queue.hs |
Algebraische Datenstrukturen | bspStructures.hs,
Fallstudie: SearchTree.hs |
Nachweis von Programmeigenschaften | QuickCheck:
Original-Homepage
Modulbeschreibung Version 2.4.0.1,
Folien, Beispielprogramme:
qctest.hs, testQueue.hs |
Interaktive 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
Vordefinierte Funktionen
Fallstudien: Indexerstellung: index.hs,
Routenplanung: route.hs |
Typinferenz | Implementierung des Unifikationsalgorithmus:
robinson.hs
Beispiele für Typfehler bsptypes.hs |
Laziness: Bedarfsgesteuerte Auswertung |
bspLaziness.hs,
... mit Annotationen für den Hood-Debugger: bspLazinessObservable.hs |
Musikbearbeitung mit Haskore |
Haskore.
Haskore ist auch im SOE-Paket enthalten.
Haskore Tutorial,
Folien,
Weihnachten.hs
|
Der Lambda-Kalkül | SECD-Interpreter:
secd_pp.hs, ... mit Normalformauswertung:
secd_pp_Normalform.hs |
Monadische Programmierung | monadProg.hs |
Denotationelle Semantik | bspIOExceptions.hs,
Semantikformen.pdf |
Logik-Programmierung |
Prolog-Beispielprogramme:
bibel.pl,
bibel1.pl,
graph.pl,
listen.pl,
farben.pl,
dutch.pl
zum Vergleich:
bibel.hs,
dutch.hs,
DifferenceLists.hs
|
|
Literatur: |
- Funktionale Programmierung
siehe auch Haskell Bookshelf
-
Bryan O'Sullivan, Don Stewart, and John Goerzen:
Real World Haskell, O'Reilly 2008.
- S. Thompson: Haskell -
The Craft of Functional Programming, 2nd edition,
Addison-Wesley 1999, ISBN 0-201-34275-8.
- P. Hudak: The Haskell School of Expression:
Learning Functional Programming through Multimedia,
Cambridge University Press 2000, ISBN 0521644089.
- Graham Hutton: Programming in Haskell,
Cambridge University Press 2007.
- R. Bird: Introduction to Functional Programming Using Haskell, 2nd edition, Prentice Hall 1998,
ISBN 0-13-484346-0
- P. Thiemann: Grundlagen der funktionalen Programmierung
Teubner-Verlag 1994
- M. Chakravarty, G. Keller: Einführung in die Programmierung mit Haskell,
Pearson Studium 2004.
- 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 ist (wieder) im Informatik-Sekretariat auf D5 erhältlich.
|