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 2008

Aktuelles
Leistungsscheine / Studienleistungen
Studienleistungen
Bachelor Informatik, Bachelor Bioinformatik, Bachelor Kognitive Linguistik sowie Prüfungsleistungen
werden automatisch an die zuständigen Prüfungsämter gemeldet, gedruckte Scheine werden nicht ausgestellt.

Studierende in den Studiengängen:
Diplom Informatik, Diplom Bioinformatik, Diplom Physik, Diplom Mathematik, Magister Erziehungswissenschaften
können ab sofort ihre Leistungsscheine bei Frau Schifignano (Sekretariat Schmidt-Schauß) in Zimmer 202, Mo-Fr 9-12, abholen.
Hinweise zum Java-Programmiervorkurs:
Der JAVA-Programmiervorkurs findet als Blockveranstaltung vom 15.9.2008-19.9.2008 Mo-Fr 9:00 - 12:00, RM 11-15 / Magnus HS und 13:00 - 17:00 statt.

Dieser Programmierkurs wird als Vorbereitung für das Praktikum PRG-PR dringend empfohlen!

Weitere Informationen werden im UnivIS bekannt gegeben.
Klausur
Die Klausurergebnisse hängen am Brett neben Zimmer 216 (Informatikgebäude, 2.Stock) aus und sind (unverbindlich) über den folgenden Button abfragbar. Bitte beachten Sie:
  • Ab 47 Punkte wird die Klausur als bestanden gewertet.
  • Ab 45 Punkte ist eine mündliche Nachprüfung möglich.
  • Bekanntmachungen zu mündlichen Nachprüfung erfolgen in Kürze.
  • Klausureinsicht: Die Klausureinsicht findet am Freitag, 18.07.2008 von 11:00-12:00 in Raum 205b (Informatikgebäude) statt. Die Einsicht sollte vorrangig von Studierenden wahrgenommen werden, die die Klausur nicht bestandenen haben.
Sonstiges
Der Eintrag im UnivIS ist hier 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. Dott. Ing. R. Zicari (DBIS) gehalten. Die zweite Hälfte wird von Herrn Prof. Dr. M. Schmidt-Schauß (KIST) gehalten. Hierbei sind folgende Inhalte vorgesehen.
Einführung in die objektorientierte Programmierung:
Klassen, Objekte, Kommunikation, Vererbung, Architekturen von OO-Programmen, Java, UML.
Einführung in Datenbanksysteme:
Architekturen, konzeptionelle und logische Modelle, Entity- Relationship-Modell, Relationenmodell, Normalformen, Datenbankdesign, Abfragesprachen (SQL).
Übersicht über Sprachparadigmen:
Funktionale Programmierung, Rekursion und Iteration, Typisierung, Operationale Semantik für funktionale Programmiersprachen, parallele Programmierkonzepte.
Einführung in den Compilerbau
Vorlesung
Mi 9-12 Magnus-Hörsaal
Übung
Zur Teilnahme an den Übungen war eine Anmeldung bis Montag, den 07. April 2008 14h erforderlich.

Die Verteilung auf die Übungsgruppen kann über den folgenden Button abgefragt werden:
Übungseinteilung
Bitte beachten:
  • Bei der Abgabe der Übungsaufgaben am Mittwoch: Bitte den Tutor auf der Abgabe notieren!
  • Die Übungen beginnen ab Mittwoch, den 09. April
Nicht angemeldete Teilnehmer schreiben bitte eine Email an prg2@informatik.uni-frankfurt.de, die mindestens 3 Terminwünsche sowie der erforderlichen Daten (Geschlecht, Studiengang, Matrikelnummer, Geburtsdatum) enthält.
Der Übungsplan sieht wie folgt aus:
Zeit Montag Dienstag Mittwoch Donnerstag Freitag
8-10
Muhammed Sayar (DBIS-Teil), Desislava Ilieva (KIST-Teil)
NM 116
10-12 Frank Abromeit
711 (klein)
Muhammed Sayar
NM 117
12-14 Anja Gerbes (DBIS-Teil), Markus Palcer (KIST-Teil)
NM 116
Anja Gerbes
NM 116
Igor Geier
NM 116
Frank Abromeit
NM 118
14-16 Conrad Rau (DBIS-Teil), Desislava Ilieva (KIST-Teil)
NM 110
Tim Föller (DBIS-Teil), Claudia Stockhausen (KIST-Teil)
NM 117
16-18 Conrad Rau
NM 116

Die Räume NM XXX befinden sich in der neuen Mensa (erster Stock), der Raum 711(klein) in der Robert-Mayer-Str. 10 (Mathematik).
Die Email-Adressen der Tutoren sind der folgenden Liste zu entnehmen:
Anja Gerbes
Claudia Stockhausen
Conrad Rau
Desislava Ilieva
Frank Abromeit
Igor Geier
Markus Palcer
Muhammed Sayar
Tim Föller
Klausur und Studienleistung
Die Klausur findet am Montag, den 07. Juli 2008 um 9:00 statt. Die Raumverteilung ist unter Aktuelles zu finden.
Für die Teilnahme an der Klausur war eine Anmeldung bis einschließlich zum 30. Juni erforderlich Bitte beachten Sie, dass diese Anmeldung nur ausreicht, um an der Studienleistungsklausur teilzunehmen. Studierende, die eine Modulabschlussprüfung zu PRG-2 benötigen (z.B. Nebenfach- /Anwendungsfachstudierende) müssen sich zusätzlich beim Prüfungsamt ihres Hauptfaches zur Prüfung anmelden!
Unterlagen Teil I: Datenbanken & Java
Organisatorisches, Einführung in Datenbanken, ER-Model
Java
Unterlagen Teil II: Funktionales Programmieren & Compilerbau
Skript
Folien
Programme
Aufgaben
Die Abgabe der Aufgabenblätter ist jeweils bis zum Beginn der Vorlesung am Mittwoch möglich.
Verpä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:
  • Ihr Name und Ihre Übungsgruppe (erfahren Sie ca. 1 Woche nach Anmeldung) sollten lesbar auf der ersten Seite Ihrer Abgabe stehen
  • Bei Abgabe im Hörsaal: Bitte die Abgabe in den richtigen Kasten werfen.
  • Zu implementierende Programme sollten stets zusätzlich zur Abgabe auf Papier auch per Email an den entsprechenden Tutor geschickt werden.
Aufgabenbatt 1
Aufgabenblatt 1 ist bis zum 9.04.2008 zu lösen.
Aufgabenbatt 2
Aufgabenblatt 2 ist bis zum 16.04.2008 zu lösen.
star_trek.sql Datenbank für Aufgabe 5.
Aufgabenbatt 3
Aufgabenblatt 3 ist bis zum 23.04.2008 zu lösen.
star_trek.sql Datenbank für Aufgabe 3 und 4.
Aufgabenbatt 4
Aufgabenblatt 4 ist bis zum 30.04.2008 zu lösen.
geburtstag.sql Datenbank für Aufgabe 1 und 2.
Aufgabenbatt 4.5
Aufgabenblatt 4.5 Keine Abgabe und keine Punkteanrechnung.
Aufgabenbatt 5
Aufgabenblatt 5 ist bis zum 14.05.2008 zu lösen.
Klassen_Blatt5_Aufgabe3.zip Klassen für Aufgabe 3.
Klassen_Blatt5_Aufgabe5.zip Klassen für Aufgabe 5.
Aufgabenbatt 6
Aufgabenblatt 6 ist bis zum 21.05.2008 zu lösen.
unsortiert.txt Datei für Aufgabe 5.
Aufgabenbatt 7
Aufgabenblatt 7 ist bis zum 28.05.2008 zu lösen.
Aufgabenbatt 8
Aufgabenblatt 8 ist bis zum 04.06.2008 zu lösen.
Aufgabenbatt 9
Aufgabenblatt 9 ist bis zum 11.06.2008 zu lösen.
Aufgabenbatt 10
Aufgabenblatt 10 ist bis zum 18.06.2008 zu lösen.
Aufgabenbatt 11
Aufgabenblatt 11 ist bis zum 25.06.2008 zu lösen. In der Datei blatt11.hs sind der Datentyp PanoramaToken und zwei Testpanoramen zu finden.
Aufgabenbatt 12
Aufgabenblatt 12 ist bis zum 02.07.2008 zu lösen. Die Parserkombinatoren sind der Datei combParser.hs zu finden. Die Grammatik aus Aufgabe 1 erzeugt keine Bergpanoramen. Dafür müsste die letzte Produktion H ::= /\ | /P\ lauten. Für die Lösung der Aufgabe 1 können Sie aber die angegebene Grammatik benutzen.
Verwendete Software

Zu Java:

Entwicklungsumgebung: Eclipse: "www.eclipse.org/downloads/",
Entwicklungsumgebung: NetBeans: "www.netbeans.org/",
Java Compiler JDK 6 und Virtuelle Maschine JRE 6: "java.sun.com/javase/downloads/index.jsp",

Zu Haskell:

In der Vorlesung und in der Übung wird der Haskell-Interpreter GHCi verwendet.
GHCi ist Bestandteil des Glasgow Haskell Compilers, der für viele Betriebssysteme unter http://haskell.org/ghc/download.html kostenfrei heruntergeladen werden kann.
Für die Vorlesung ist ein GHC ab Version 6.6. (oder höher) empfehlenswert. Auf den Rechnern der RBI ist teilweise Version 6.6 und teilweise Version 6.8.2 (Rechner, der Namen mit E beginnt) installiert. Der ghci kann auf diesen Rechnern entweder mit /usr/bin/ghci oder mit /opt/rbi/bin/ghci gestartet werden.
Weiteres Material

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:
Installation, Doku und Beispiele für die freie Datenbank MySQL: http://www.dbis.informatik.uni-frankfurt.de/
Einführung in SQL: http://www.hrz.uni-dortmund.de/Kurse/DB-Docs/SQLOracle.html
SQL Reference: http://www.sqltutorial.de/
SQL Tutorial: http://www.w3schools.com/sql/default.asp
SQL Course: http://sqlcourse.com/
SQL Tutorial: http://www.intermedia.net/support/sql/sqltut.asp
Wikipedia Artikel: english, deutsch

Zur Programmiersprache Java:

Java Homepage Sun
http://java.sun.com
Java API Specification (Doku)
http://java.sun.com/javase/6/docs/api/
Weiterführendes
Java Tutorial: http://java.sun.com/new2java/
Horstmann, Cornell: "Core Java 2, Band 1", Addison-Wesley
Java News: http://www.onjava.com/
Java Buch: http://www.boku.ac.at/javaeinf/jein.html
Reading: Bruce Eckel Thinking in Java Chapter1

Zur Programmiersprache Haskell:

Offizielle Homepage zu Haskell
http://haskell.org
Haskell 98 Report (Offizielle Sprachdefinition von Haskell 98)
http://www.haskell.org/onlinereport (Online-Version)
http://haskell.org/definition/haskell98-report.pdf (PDF)
Dokumentation der 'Haskell Hierarchical Libraries' (Standard-Programmbibliotheken zu Haskell)
http://www.haskell.org/ghc/docs/latest/html/libraries/
Implementierungen
Glasgow Haskell Compiler (GHC): http://haskell.org/ghc
Haskell User Gofer System (HUGS): http://haskell.org/hugs
Weitere Implementierungen: http://www.haskell.org/implementations.html
Bücher
Manuel M. T. Chakravarty / Gabriele C. Keller: Einführung in die Programmierung mit Haskell
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

Weiterführende Literatur zu OO und UML bei Interesse:

UML Homepage
http://www.uml.org/
Bücher
Heide Balzert: "Lehrbuch der Objektmodellierung", Spektrum AV
Grady Booch, Jim Rumbaugh, Ivar Jacobson: "Das UML Benutzerhandbuch", Addison-Wesley
Grechenig, Zuser: "SE mit UML und dem Unified Process", Pearson
Eclipse mit Omondo-UML Plugin (für Windows2000/XP):
http://www.eclipsedownload.com
Kontakt
Für allgemeine bzw. organisatorische Fragen können Sie sich per Email an prg2@informatik.uni-frankfurt.de wenden.
Weitere Informationen
Studienfächer / Studienrichtungen:
(c) 2007 KIST, DBIS, Impressum