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 2016

Aktuelles
Klausurergebnisse
Die Klausurergebnisse sind unter diesem Link abrufbar (ohne Gewähr).
Die Klausureinsicht findet am Mittwoch, den 12. Oktober 2016 statt - Ort: Robert-Mayer-Str 11-15 (Informatikgebäude) Raum 216 im 2. Stock. Es gibt zwei Slots:
  • Matrikelnummer kleiner als 6000000 in der Zeit von: 9:00 - 10:00 Uhr
  • Matrikelnummer größergleich 6000000 in der Zeit von: 10:30 - 11:30 Uhr
Modulscheine Lehramt
Die ausgefüllten Modulscheine für Lehramtstudierende der Klausur vom 25. Juli 2016 können ab sofort bei Frau Elsässer in Raum 202, Robert-Mayer-Straße 11-15 (Informatikgebäude) abgeholt werden.
Online-Interface zum Üben mit List Comprehensions
Das im Rahmen einer Bachelorarbeit erstellte (und in Haskell unter Verwendung von Yesod programmierte) Interface ist über den Button zu erreichen.
Klausur
Die PRG-2 Klausur findet am 25. Juli 2016 um 09:00 statt, die Zweitklausur findet am 07. Oktober 2016 um 09:00 statt.
Anmeldung zur Klausur
Studierende folgender Fachrichtungen: Informatik, Bioinformatik, Physik, Mathematik und Geographie melden sich Online im QIS/LFS an, Details unter: go.uni-frankfurt
Alle anderen (Linguistik, Lehramt, ...) füllen bitte folgenden Zettel aus und geben diesen im Prüfungsamt Informatik (Robert-Mayer-Straße 11-15, Zimmer 19 - 20, Erdgeschoss) ab (bzw. werfen ihn in den Briefkasten vor dem Prüfungsamt).
Deadline: 23. September 2016 für die Klausur am 07. Oktober 2016
Videos
Die Vorlesung wird aufgezeichnet. Die Videoaufzeichnungen sind hier zu finden.
Benutzername und Passwort werden in der Vorlesung bekannt gegeben.
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
Anmeldung für die Übungsgruppen
Die Verteilung der Teilnehmer und Teilnehmerinnen hat stattgefunden. Über die Seite
http://anmeldung.sd.uni-frankfurt.de/auge
können Sie erfahren, welcher Übungsgruppe Sie zugeordnet wurden. Die folgende Tabelle zeigt die Übungstermine, die Tutor/en/innen (samt E-Mail-Adresse ( AT durch @ ersetzen! ) und die Räume.
Die Räume NM XXX befinden sich in der Neuen Mensa im ersten Stock. Raum 903 befindet sich im 9. Stock des Mathe-Turms in der Robert-Mayer-Straße 10. Raum H 9 befindet sich im Hörsaaltrakt Bockenheim.

Zeit Montag Dienstag Mittwoch Donnerstag Freitag
8-10 Gruppe 1
Tutor: Chutipong Bruhns
Raum: NM 125
Gruppe 6
Tutor: Patrick Pech
Raum: NM 125
10-12 Gruppe 3
Tutorin: Maria Enterlein
Raum: NM 126
Gruppe 9
Tutor: Axel Hanczak
Raum: NM 102
Gruppe 7
Tutor: Tung Le Trong
Raum: NM 120
Gruppe 10
Tutor: Aleksey Koshovy
Raum: NM 125
12-14 Gruppe 2
Tutor: Noah Hummel
Raum: H 9
Gruppe 4
Tutor: Jia Ming Lao
Raum: 903 in R-M-S 10
Gruppe 11
Tutor: Sascha Rauh
Raum: NM 114
14-16 Gruppe 12
Tutor: Julian Stobbe
Raum: NM 103
16-18 Gruppe 5
Tutor: Luke Ewig
Raum: NM 133
Gruppe 8
Tutor: Patrick Hoff
Raum: NM 103
Organisatorisches
Die wesentlichen organisatorischen Hinweise sind hier zusammengefasst. Sie beinhalten Hinweise zur Übungsanmeldung, zur Abgabe und Bearbeitung der Übungsaufgaben, zur Modulprüfung, sowie zum Schreiben von Haskell-Programmen.
Die Folien zum Organisatorischen aus der ersten Vorlesung sind hier verfügbar: organisation.pdf
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.
Im Hörsaal werden entsprechende Kästen bereit gestellt.
Verspätete Abgaben werden i.A. nicht angenommen.
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, zur Modulprüfung, sowie zum Schreiben von Haskell-Programmen.
Aufgabenbatt 1
Aufgabenblatt 1 (Haskell-Code: blatt1.hs) ist bis zum 20.04.2016 zu lösen.
Aufgabenbatt 2
Aufgabenblatt 2 (Haskell-Code: blatt2.hs) ist bis zum 27.04.2016 zu lösen.
Aufgabenbatt 3
Aufgabenblatt 3 (Haskell-Code: blatt3.hs) ist bis zum 04.05.2016 zu lösen.
Aufgabenbatt 4
Aufgabenblatt 4 (Haskell-Code: blatt4.hs) ist bis zum 11.05.2016 zu lösen.
Aufgabenbatt 5
Aufgabenblatt 5 (Haskell-Code: blatt5.hs) ist bis zum 18.05.2016 zu lösen.
Aufgabenbatt 6
Aufgabenblatt 6 (Haskell-Code: blatt6.hs) ist bis zum 25.05.2016 zu lösen.
CombParser.hs enthält die benötigten Parser-Kombinatoren.
Ein einfaches Beispiel mit Kommentaren zur Verwendung der Parser-Kombinatoren: einfachesParseBeispiel.hs
Aufgabenbatt 7
Aufgabenblatt 7 (Haskell-Code: blatt7.hs) ist bis zum 01.06.2016 zu lösen.
Das Webinterface für Stackmaschinenprogramme ist unter http://www.ki.informatik.uni-frankfurt.de/stackmachine zu finden.
Aufgabenbatt 8
Aufgabenblatt 8 (Berge als Liste: Berge.csv)
Aufgabenbatt 9
Aufgabenblatt 9 - Musterlösung (teilweise) von Blatt 8 als Grundlage für Aufgabe 5
Aufgabenbatt 10
Aufgabenblatt 10 - Musterlösung (SQL Teil) von Blatt 10
Aufgabenbatt 11
Aufgabenblatt 11
Aufgabenbatt 12
Aufgabenblatt 12 - (Daten als Liste: Coindata.csv - und die Spaltenbeschreibungen)
Weiteres Material

Zur Programmiersprache Haskell:

Offizielle Homepage zu Haskell
http://haskell.org
Haskell 2010 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
Das Skript zum Vorkurs Informatik beinhaltet eine Einführung in Haskell: Vorkursskript. Weiteres Material zum Vorkurs sind auf der Webseite zum Vorkurs zu finden.
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 (englisch): http://www.w3schools.com/sql/
SQL Online ausprobieren: http://sqlzoo.net/
SQL Tutorial (deutsch): http://www.sqltutorial.de/
Kontakt
Allgemeine, organisatorische Fragen können an gestellt werden.
Weitere Informationen
Studienfächer / Studienrichtungen:
(c) 2016 KIST, DBIS, Impressum