|
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.
|