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 2017

Aktuelles
Klausurergebnisse
Die Klausurergebnisse sind unter diesem Link abrufbar (ohne Gewähr).
Die Klausureinsicht findet am Donnerstag, den 19. Oktober 2017 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 zwei Slots:
  • Matrikelnummer kleiner als 6355733 in der Zeit von 9:00-10:00 Uhr
  • Matrikelnummer größergleich 6355733 in der Zeit von 13:00-14:00 Uhr
Probleme mit dem GHCi unter Windows nach der Installation des Creators Updates
Falls das Creators Update von Windows aufgespielt wurde, kann man aktuell eventuell die Haskell-Dateien nicht per Doppelklick aus dem Explorer heraus öffnen. Eine Übergangslösung hierfür:
  1. Die Windows-Kommandozeile starten (cmd.exe).
  2. In das Verzeichnis navigieren in dem die zu öffnende Haskell-Datei liegt.
  3. Die Datei mit ghci <Dateiname> direkt laden oder nur ghci und dann per :l <Dateiname> die Datei laden. Zum erneuten Laden kann :r innerhalb des GHCi verwendet werden.
Tutoren im Lernzentrum
Ab diesem Semester gibt es Tutoren im Lernzentrum, die vor allem für die Basismodule fachliche Beratung anbieten. Die aktuellen Tutorenzeiten hängen im Lernzentrum aus.
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 31. Juli 2017 um 09:00 Uhr statt, die Zweitklausur findet am 06. Oktober 2017 um 09:00 Uhr statt.
Videos
Die Vorlesung wird aufgezeichnet. Die Videoaufzeichnungen sind hier zu finden.
Benutzername und Passwort wurden in der Vorlesung bekanntgegeben.
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 07.06.2017).

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

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. Alle Räume befinden 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 8
Tutor: Tobias Bergmann
Raum: H 10
10-12 Gruppe 1
Tutorin: Marwa Abu-Ayyad
Raum: H 7
Gruppe 4
Tutorin: Jia-Ming Lao
Raum: H 15
Gruppe 15
Tutor: Amberdeep Singh Matthäus
Raum: H 12
Gruppe 9
Tutor: Tung Le Trong
Raum: H 15
Gruppe 16
Tutor: Chutipong Bruhns
Raum: H 16
Gruppe 12
Tutor: Julian Hilbert
Raum: H 10
12-14 Gruppe 2
Tutor: Patrick Bonack
Raum: H 11
Gruppe 5
Tutor: Axel Hanczak
Raum: H 15
Gruppe 10
Tutor: Martin Parnet
Raum: H 11
Gruppe 17
Tutor: Sascha Rauh
Raum: H 16
Gruppe 13
Tutor: Stefan Michel
Raum: H 10
Gruppe 18
Tutor: Florian Boeck
Raum: H 11
14-16 Gruppe 3
Tutorin: Sina Wetzel
Raum: H 10
Gruppe 6
Tutor: Chrisowalandis Deligio
Raum: H 15
Gruppe 14
Tutor: Huy Luong
Raum: H 11
16-18 Gruppe 7
Tutor: Saif Samir
Raum: H 11
Gruppe 11
Tutorin: Maria Enterlein
Raum: H 10
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
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 26.04.2017 zu lösen.
Aufgabenbatt 2
Aufgabenblatt 2 ist bis zum 03.05.2017 zu lösen.
Aufgabenbatt 3
Aufgabenblatt 3 (Haskell-Code: blatt3.hs) ist bis zum 10.05.2017 zu lösen.
Aufgabenbatt 4
Aufgabenblatt 4 (Haskell-Code: blatt4.hs) ist bis zum 17.05.2017 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 24.05.2016 zu lösen.
Aufgabenbatt 6
Aufgabenblatt 6 (Haskell-Code: blatt6.hs) ist bis zum 31.05.2017 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 07.06.2017 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 21.06.2017 zu lösen.
Aufgabenbatt 9
Aufgabenblatt 9 ist bis zum 28.06.2017 zu lösen. ... die Musterlösung zu Blatt 8: Musterlösung Blatt 8
Aufgabenbatt 10
Aufgabenblatt 10 ist bis zum 05.07.2017 zu lösen.
Aufgabenbatt 11
Aufgabenblatt 11 ist bis zum 12.07.2017 zu lösen. Hier die CSV-Datei für Aufgabe 2a): Berge.csv
Aufgabenbatt 12
Aufgabenblatt 12 ist bis zum 19.07.2017 zu lösen. Hier die JSON-Datei für Aufgabe 4): praegeherren.json
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) 2017 KIST, DBIS, Impressum