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/inTerminRaumE-Mail
Bernhard Pickenbrock Do, 14-16 UhrHS III (Ebene D3, Lahnberge) pickenbrock@mathematik...
Marco Grebe Do, 16-18 UhrHS III (Ebene D3, Lahnberge) grebe@mathematik...
Florian Pfeiffer Fr, 10-12 UhrHS 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)
ThemenbereichVortragende/rTermin
Sortieralgorithmen Olesja Giese 26. Januar 2011
Bäume Tillmann Heigel26. Januar 2011
Suchen in Bäumen Jan Burchard26. Januar 2011
Abstrakte Datentypen Sven Barthel24. Februar 2011
Backtracking Mathias Albrecht24. Februar 2011
Kryptographie Alexander Vogt24. Februar 2011
Graphenalgorithmen
Heap-Sort Vinh Nguyen24. Februar 2011
Multimedia
...

Fachgebiet Klassifikation Semester Leistungspunkte Skript
Informatik Basisstudium >=1 8 (StPO 2004) / 9 (StPO 2010) 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 Bachelorstudiengangs Informatik oder des modularisierten Lehramtsstudiengangs Informatik müssen sich vier Wochen vor Vorlesungsende zu der Modulprüfung anmelden.
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 Übungsaufgabe
Zum Erwerb eines benoteten Scheins ist zusätzlich am Semesterende eine Klausur zu bestehen.
Übungsorganisation Die Übungsblattaus- und -abgabe erfolgt jeweils in der Dienstagsvorlesung. Das erste Blatt wird am Dienstag, dem 19. Oktober erscheinen.
Die Abgabe der Übungsaufgaben ist in Zweiergruppen erlaubt. Die Lösungen sollten grundsätzlich schriftlich, Programme zusätzlich per E-Mail an Ihren Tutor oder Ihre Tutorin abgegeben werden.


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.
DateiAusgabedatumAbgabedatumLösungenZusatzmaterial
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.201108.02.2012 uEL.pdf
Klausurvorbereitung: Klausuren aus 2009, 2007 und 2006 . Die Klausuren sind nur von Fachbereichsrechnern zugänglich.
Vorlesungsunterlagen:
InhaltFolien 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:
  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 ist (wieder) im Informatik-Sekretariat auf D5 erhältlich.

Links: Haskell Homepage
SWI-Prolog Homepage

Zuletzt geändert: Wednesday, 06-Apr-2011 17:28:00 CEST