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 2018

Aktuelles
Klausurergebnisse
Die Klausurergebnisse sind unter diesem Link abrufbar (ohne Gewähr).
Die Klausureinsicht findet am Dienstag, den 16. Oktober 2018 statt - Ort: Robert-Mayer-Str 11-15 (Informatikgebäude) Raum 216 im 2. Stock. Bei der Klausureinsicht sind Korrekturen in beide Richtungen möglich. Die Dauer der Einsicht ist pro Teilnehmer auf höchstens 15 Minuten beschränkt. Es gibt drei Slots:
  • Matrikelnummer kleinergleich 6340000 in der Zeit von 9:00-10:00 Uhr
  • Matrikelnummer größer 6340000 und kleinergleich 6608600 in der Zeit von 10:30-11:30 Uhr
  • Matrikelnummer größer 6608600 in der Zeit von 12:00-13:00 Uhr
Repetitorium
Tung Le Trong hält am Dienstag, den 24.7. von 10-18 Uhr ein Repetitorium in H IV.
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 folgenden Button zu erreichen:
Klausur
Die PRG-2 Klausur findet am 30. Juli 2018 um 09:00 Uhr statt, die Zweitklausur findet am 08. Oktober 2018 um 09:00 Uhr statt.
Videos
Die Vorlesung wird aufgezeichnet. Die Videoaufzeichnungen sind hier zu finden.
Benutzername und Passwort wurden in der Vorlesung bekanntgegeben.
Beachten Sie bitte, dass die Videos nicht vom Lehrstuhl hochgeladen und verwaltet werden, weshalb wir keinen Einfluss darauf haben, wann die Videos verfügbar sind.
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 (bis einschließlich 30.05.2018).

Die zweite Hälfte wird von Herrn Dr. K. Tolle (DBIS) gehalten (ab 06.06.2018).

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
erfahren Sie, 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 Gruppennummer entspricht der Gruppennummer im AUGE-System. Die Räume NM XXX befinden sich in der Neuen Mensa im ersten Stock. Raum SR 11 befindet sich im Erdgeschoß des Instituts für Informatik, Robert-Mayer-Straße 11-15. Raum H 9 befindet sich im Hörsaaltrakt Bockenheim.
Wichtig: Ein Wechsel zwischen Übungsgruppen ist nur mit einem Tauschpartner möglich. Wenden Sie sich bitte direkt an die betroffenen Tutoren, falls Sie einen Tauschpartner haben.

Zeit Montag Dienstag Mittwoch Donnerstag Freitag
8-10 Gruppe 1
Tutor: Julian Hilbert
Raum: NM 125
Gruppe 9
Tutorin: Sina Wetzel
Raum: RMS 10 - SR 110
10-12 Gruppe 2
Tutorin: Katharina Dahmann
Raum: SR 11
Gruppe 5
Tutor: Axel Hanczak
Raum: NM 113
Gruppe 16
Tutor: Jan Herrmann
Raum: NM 103
Gruppe 10
Tutor: Florian Boeck
Raum: NM 116
Gruppe 17
Tutor: Tung Le Trong
Raum: NM 125
Gruppe 13
Tutor: Lukas Müller
Raum: NM 116
12-14 Gruppe 3
Tutor: Martin Parnet
Raum: H 9
Gruppe 6
Tutor: Stefan Michel
Raum: NM 126
Gruppe 11
Tutor: Chrisowalandis Deligio
Raum: NM 116
Gruppe 18
Tutorin: Marwa Abu-Ayyad
Raum: NM 133
Gruppe 14
Tutor: Sascha Rauh
Raum: NM 116
Gruppe 19
Tutor: Marc Pavlinec
Raum: NM 125
14-16 Gruppe 4
Tutorin: Saba Mateen
Raum: NM 116
Gruppe 7
Tutor: Saif Samir
Raum: NM 126
Gruppe 15
Tutor: Amberdeep Singh Matthäus
Raum: NM 116
16-18 Gruppe 8
Tutor: Tobias Bergmann
Raum: NM 117
Gruppe 12
Tutor: Huy Luong
Raum: NM 116
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:
Skript
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 bereitgestellt.
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 18.04.2018 zu lösen.
Aufgabenbatt 2
Aufgabenblatt 2 ist bis zum 25.04.2018 zu lösen.
Aufgabenbatt 3
Aufgabenblatt 3 (Haskell-Code: blatt3.hs) ist bis zum 02.05.2018 zu lösen.
Aufgabenbatt 4
Aufgabenblatt 4 (Haskell-Code: blatt4.hs) ist bis zum 09.05.2018 zu lösen.
Aufgabenbatt 5
Aufgabenblatt 5 (Haskell-Code: blatt5.hs, Beispiel-Musikstück zur zweiten Aufgabe: NiDa_-_Against_The_Lazyness.mp3) ist bis zum 16.05.2018 zu lösen.
Aufgabenbatt 6
Aufgabenblatt 6 (Haskell-Code: blatt6.hs) ist bis zum 23.05.2018 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 30.05.2018 zu lösen.
Das Webinterface für Stackmaschinenprogramme ist unter http://www.ki.informatik.uni-frankfurt.de/stackmachine zu finden.

Aufgabenbatt 8
Aufgabenblatt 8 ist bis zum 13.06.2018 zu lösen.
Hier die zu verwendenden CSV-Dateien für Aufgabe 2: polizeireviere.csv und strassenverzeichnis_einfach.csv
Aufgabenbatt 9
Aufgabenblatt 9 ist bis zum 20.06.2018 zu lösen.
Der für Aufgabe 6 zu verwendende Dump: Musterdump.
Aufgabenbatt 10
Aufgabenblatt 10 ist bis zum 27.06.2018 zu lösen.
Aufgabenbatt 11
Aufgabenblatt 11 ist bis zum 04.07.2018 zu lösen.
Der für Aufgabe 2 zu verwendende Dump: Musterdump_Blatt11_2018.sql sowie die CSV-Datei: gesundheit_einfach.csv.
Aufgabenbatt 12
Aufgabenblatt 12 ist bis zum 11.07.2018 zu lösen.
Der für Aufgabe 4 zu verwendende Dump: DumpAufg4_Blatt12.sql.
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/
Kontakt
Allgemeine, organisatorische Fragen können an gestellt werden.
Weitere Informationen
Studienfächer / Studienrichtungen:
(c) 2018 KIST, DBIS, Impressum, Datenschutzerklärung