Fachbereich Informatik und Mathematik
Institut für Informatik
Professur für Datenbanken und Informationssysteme
Professur für Künstliche Intelligenz und Softwaretechnologie
Uni Frankfurt Institut für Informatik
KIST DBIS

Grundlagen der Programmierung 2 [PRG-2]

Sommersemester 2013

Aktuelles
Klausur
Die PRG-2 Klausur im Wintersemester 2013/14 findet am 11.Oktober 2013 um 09:00 statt.
Es wird im Hörsaal HV (Hörsaalgebäude - Bockenheim) geschrieben.
Klausur vom 11.Oktober 2013
Die Klausurergebnisse können hier abgefragt werden.

Die Ergebnisliste hängt zusätzlich neben Zimmer 216 aus.

Klausureinsicht: Freitag, 25. Oktober 2013 um 13 Uhr, in Zimmer 216 (Robert-Mayer-Str. 11-15, 2.OG)
Tutorenwechsel
Die Übung von Jens Rieser wird für Teil 2 von David Unzue übernommen. Bitte die neue Email-Adresse zur Abgabe der Übungen beachten!
Raumwechsel
Die Übung von Arno Appenzeller (Di 10-12) zieht von NM 118 in NM 114 um, und die Übung von Jens Rieser (Di 10-12) zieht von NM 119 in NM 118 um.
Feiertage / Übung am Freitag
Die folgenden Übung fallen aus:
  • Freitag, 3. Mai 10-12 (da parallel zur Ersatzvorlesung)
  • Donnerstag 9.Mai (alle) (Feiertag)
  • Montag 20.Mai (alle) (Feiertag)
  • Donnerstag 30.Mai (alle) (Feiertag)
Die Teilnehmer der Übung können in der jeweiligen Übungswoche eine beliebige andere Übung besuchen.
Vorlesung am 1. Mai
Am 1.Mai (Feiertag) findet die Vorlesung nicht statt. Diese wird jedoch am Freitag, den 3. Mai, 10-12, Hörsaal H VI, nachgeholt.
Videos
Die Videoaufzeichnungen sind hier zu finden.
Sowohl Login als auch Passwort entsprechen jeweils dem Passwort der Übungsanmeldung.
Im Anschluss daran müssen Sie sich evtl. mit Ihrem HRZ-Account verifizieren.

Mit den gleichen Zugangsdaten sind auch die Videos vom SoSe 2012 hier zu finden.
Haskell Compiler - GHC
Hinweise zum Benutzen und zur Selbstinstallation des GHC / GHCi sind auf dieser Seite zu finden.
Inhalt
Die Veranstaltung findet als gemeinsame Veranstaltung der Professuren für Künstliche Intelligenz und Softwaretechnologie (KIST) und für Datenbanken und Informationssysteme (DBIS) statt. Die erste Hälfte wird von Herrn Prof. Dr. M. Schmidt-Schauß (KIST) gehalten. Die zweite Hälfte wird von Herrn Dr. K. Tolle (DBIS) gehalten. Hierbei sind folgende Inhalte vorgesehen.
Übersicht über Sprachparadigmen:
Funktionale Programmierung, Rekursion und Iteration, Typisierung, Operationale Semantik für funktionale Programmiersprachen, parallele Programmierkonzepte.
Einführung in den Compilerbau
Einführung in Datenbanksysteme:
Architekturen, konzeptionelle und logische Modelle, Entity- Relationship-Modell, Relationenmodell, Normalformen, Datenbankdesign, Abfragesprachen (SQL).
Vorlesung
Mittwoch, 9 Uhr c.t., Jügelhaus - Hörsaal VI
Übung
Die Verteilung der Teilnehmer und Teilnehmerinnen hat stattgefunden. Über den folgenden Button können Sie erfahren, welcher Übungsgruppe sie zugeordnet wurden:
Übungsanmeldung
Nicht angemeldete Studierende wenden sich bitte direkt an den Tutor.

Die folgende Tabelle zeigt die Übungstermine, die Tutoren (samt Email-Adresse) und die Räume. Die Räume NM XXX befinden sich in der Neuen Mensa im ersten Stock.

Zeit Montag Dienstag Mittwoch Donnerstag Freitag
8-10 Mirko Brueggemann
NM 113
Markus Wondrak
NM 120
Rafael Franzke
NM 114
10-12 Kevin Tschickart
NM 119
Arno Appenzeller
NM 114
Nils Dallmeyer
NM 119
Aybike Demirsan
NM 114
David Unzue
NM 118
Nicolas Meisberger
NM 109
12-14
14-16 Melvin Metzger
NM 114
Nicolas Torchalla
NM 109
Sorin Daniel Constantinescu
NM 116

Unterlagen Teil I: Funktionales Programmieren & Compilerbau
Skript
Folien
Unterlagen Teil II: Datenbanken
Folien
Programme
Aufgaben
Die Abgabe der Aufgabenblätter ist jeweils bis zum Beginn der Vorlesung am Mittwoch möglich.
Verspätete Abgaben werden i.A. nicht angenommen. Im Hörsaal sind werden entsprechende Kästen bereit gestellt.
Wer mittwochs morgen nicht pünktlich zur Abgabe erscheinen kann, hat die Möglichkeit sein Übungsblatt bereits vorher (z.B. Dienstag Nachmittag) abzugeben:
Links neben Raum 216 (2.Stock, Robert-Mayer-Str. 11-15 (Informatikgebäude)) ist ein weißer Briefkasten, in den die Abgaben eingeworfen werden können.

Bei der Abgabe sollten Sie beachten:
Allgemeine Hinweise
Die Allgemeinen Hinweise beinhalten, Hinweise zur Übungsanmeldung, zur Abgabe und Bearbeitung der Übungsaufgaben, sowie zum Schreiben von Haskell-Programmen.
Aufgabenbatt 1
Aufgabenblatt 1 ist bis zum 24.04.2013 zu lösen.
Aufgabenbatt 2
Aufgabenblatt 2 (Haskell-Code: blatt2.hs) ist bis Dienstag, 30.04.2013 zu lösen:
Abgabe am Dienstag in den Briefkasten neben Zimmer 216, oder per Email am 01.05.2013
Aufgabenbatt 3
Aufgabenblatt 3 (Haskell-Code: blatt3.hs) ist bis Mittwoch, 08.05.2013 zu lösen:
Das Blatt behandelt Stoff der Ersatzvorlesung am 03.Mai 10-12 H VI. Wer vorher loslegen möchte, kann z.B. das Skript lesen.
Aufgabenbatt 4
Aufgabenblatt 4 (Haskell-Code: blatt4.hs) ist bis Mittwoch, 15.05.2013 zu lösen.
Lösungsvorschlag zu Aufgabe 1
Aufgabenbatt 5
Aufgabenblatt 5 (Haskell-Code: blatt5.hs) ist bis Mittwoch, 22.05.2013 zu lösen.
Aufgabenbatt 6
Aufgabenblatt 6 ist bis zum 29.05.2013 zu lösen.
CombParser.hs enthält die Parser-Kombinatoren, die in Aufgabe 2 benötigt werden.
blatt6.hs enthält die gegebenen Datentypen
Aufgabenbatt 7
Aufgabenblatt 7 ist bis zum 05.06.2013 zu lösen.
blatt7.hs enthält die gegebenen Datentypen
Aufgabenbatt 8
Aufgabenblatt 8 ist bis zum 19.06.2013 zu lösen.
Musterlösung Aufgabe 2
Aufgabenbatt 9
Aufgabenblatt 9 ist bis zum 26.06.2013 zu lösen.
Aufgabenbatt 10
Aufgabenblatt 10 ist bis zum 03.07.2013 zu lösen.
Aufgabenbatt 11
Aufgabenblatt 11 ist bis zum 10.07.2013 zu lösen.
Aufgabenbatt 12
Aufgabenblatt 12 ist bis zum 17.07.2013 zu lösen.
Weiteres Material

Zur Programmiersprache Haskell:

Offizielle Homepage zu Haskell
http://haskell.org
Haskell 210 Language Report (Offizielle Sprachdefinition von Haskell 2010)
http://www.haskell.org/onlinereport/haskell2010/ (Online-Version)
http://haskell.org/definition/haskell2010.pdf (PDF)
Dokumentation der 'Haskell Hierarchical Libraries' (Standard-Programmbibliotheken zu Haskell)
http://www.haskell.org/ghc/docs/latest/html/libraries/
Implementierungen
Haskell Platform: http://hackage.haskell.org/platform
Glasgow Haskell Compiler (GHC): http://haskell.org/ghc
Weitere Implementierungen: http://www.haskell.org/implementations.html
Bücher
Manuel M. T. Chakravarty / Gabriele C. Keller: Einführung in die Programmierung mit Haskell
Miran Lipovaca: Learn You a Haskell for Great Good! (Aus dem Netz der Universität kostenlos zugänglich (E-Book-Lizenz der Universitätsbibliothek))
Marco Block, Adrian Neumann: Haskell-Intensivkurs: Ein kompakter Einstieg in die funktionale Programmierung (Aus dem Netz der Universität kostenlos zugänglich (E-Book-Lizenz der Universitätsbibliothek))
Simon Thompson: Haskell: The Craft of Functional Programming
Weitere Bücher: http://www.haskell.org/haskellwiki/Books#Textbooks
Tutorials
A Gentle Introduction to Haskell: http://www.haskell.org/tutorial/
Weitere Tutorials: http://www.haskell.org/haskellwiki/Books#Papers_available_on_the_Web

Zu Datenbanken:

Bücher
Batini, Navathe, Ceri: "Conceptual Database Design: An Entity-Relationship Approach", Benjamin-Cummings
Kemper, Eickler: "Datenbanksysteme. Eine Einführung", Oldenbourg
Ramez Elmasri und Shamkant B. Navathe, 'Grundlagen von Datenbanksystemen', Pearson Studium, 2002
Gottfried Vossen, 'Datenbankmodelle, Datenbanksprachen, Datenbankmanagement-Systeme', Oldenbourg, 2000
Bernstein, Hadzilacos, Goodman, 'Concurrency Control and Recovery in Database Systems', Addison-Wesley, 1987
SQL:
SQL Tutorial (deutsch): http://www.sqltutorial.de/
SQL Tutorial (englisch): http://www.intermedia.net/support/sql/sqltut.asp
SQL Online ausprobieren: http://sqlzoo.net/
Kontakt
wenden.
Weitere Informationen
Studienfächer / Studienrichtungen:
(c) 2013 KIST, DBIS, Impressum