Modul Fortgeschrittene Programmierung

Sommersemester 2015
Arbeitsgruppe Programmiersprachen und Übersetzerkonstruktion

Nr. Art Termine Raum Veranstalter
080010 V4 Di 14:15 - 15:30 CAP3 - HS.2 Hanus
    Do 14:15 - 15:30 OS40 - R.201  
080015 Ü2 Mi 14-16/16-18, Do 10-12/12-14   Hanus, Peemöller, Dylus

Vorlesungsbeginn

Dienstag, 14.4.2015, 14:15 Uhr, CAP3 - HS.2

Zielgruppe

Studierende im 1-Fach-Bachelorstudiengang Informatik, im 2-Fach-Masterstudiengang Informatik, im Masterstudiengang Wirtschaftsinformatik sowie Studierende mit Nebenfach Informatik

Voraussetzungen

Solide Programmierkenntnisse einschließlich in der objektorientierten Programmierung mit Java, wie sie beispielsweise im Grundmodul Programmierung und im Programmierpraktikum erworben werden können.

Inhalt

In dieser Vorlesung werden forgeschrittene Programmierkonzepte, die über die in den ersten Studiensemestern erlernte Programmierung hinausgehen, vorgestellt. Dabei wird anhand verschiedener Programmiersprachen der Umgang mit den Konzepten der wichtigsten Programmierparadigmen vermittelt. Moderne funktionale Programmierungtechniken werden am Beispiel der Sprache Haskell gezeigt. Logische und Constraint-orientierte Programmierung wird in der Sprache Prolog vermittelt. Konzepte zur nebenläufigen und verteilten Programmierung werden mit der Sprache Java vorgestellt und geübt.

Modulprüfung

Am Ende der Vorlesung findet eine schriftliche Abschlussprüfung statt. Zur Prüfungszulassung müssen mindestens 60% der Übungspunkte erreicht werden. Genauere Informationen befinden sich in der Modulbeschreibung.

Die erste Modulprüfung findet am Donnerstag, 23.7.2015, von 14:00 bis 17:00 Uhr im Hörsaal CAP2 - Frederik-Paulsen-Hörsaal statt. Eine weitere Modulprüfung findet am Montag, 19.10.2015, statt. Eine vorherige Anmeldung in der StudiDB ist zur Teilnahme erforderlich.

Ergänzende Materialien zur Vorlesung

Es gibt ein Skript zur Vorlesung (SS'14), das zunächst benutzt werden kann. Parallel zur Vorlesung wird ein aktuelles Skript überarbeitet (im PDF-Format, nur innerhalb der CAU Kiel zugreifbar!). Dieses Skript ist kein Lehrbuch, aber es beinhaltet den ungefähren Vorlesungsverlauf. Daher sollte neben dem Lesen des Skripts auch immer die Vorlesung besucht werden, um über den aktuellen Stand informiert zu sein!

Folien und Programme:

14.4.2015: Einführung (PDF)
30.4.2015: Einfache Haskell-Funktionen
5.5.2015: Datentypdeklarationen
7.5.2015: Polymorphe Daten und Funktionen
12.5.2015: Pattern Matching Funktionen höherer Ordnung
19.5.2015: Funktionen höherer Ordnung (Fortsetzung)
21.5.2015: Funktionen höherer Ordnung (Fortsetzung)
26.5.2015: Typklassen
28.5.2015: Lazy-Auswertung
2.6.2015: I/O-Aktionen
4.6.2015: List comprehensions CSV Show/Read Nats-Modul Main Hauptmodul
9.6.2015: Verwandtschaftsbeispiel in Haskell Verwandtschaftsbeispiel in Prolog
11.6.2015: Listenelement Landkartenfärbung Liste sortieren
23.6.2015: Listenoperationen Peano-Zahlen
2.7.2015: Cut-Operator Fakultät Schaltkreise / Hypotheken
7.7.2015: SEND+MORE=MONEY n-Damen-Problem
9.7.2015: Verwandschaftsbeispiel mit Meta-Prädikaten Meta-Interpretierer für Prolog Abschlussbemerkungen (PDF)

Literatur

  • S. Thompson: Haskell - The Craft of Functional Programming, Addison-Wesley, 1996
  • G. Hutton: Programming in Haskell, Cambridge University Press, 2007
  • L. Sterling, E. Shapiro: The Art of Prolog, 2nd Ed., MIT Press, 1994
  • T. Frühwirth, S. Abdennadher: Constraint-Programmierung, Springer, 1997
  • D. Lea: Concurrent Programming in Java, 2nd Ed., Addison Wesley, 2000
  • P. Hyde: Java Thread Programming, Sams Publishing, 1999

Übungen

Die in der Vorlesung behandelten Programmiersprachen sind auf den Institutsrechnern installiert und auch im Internet sind freie Implementierungen von Java, Haskell und Prolog verfügbar.

Die Abgabe der Übungen soll vornehmlich über das iLearn Übungssystem erfolgen. Hierzu wird man automatisch angemeldet, wenn man sich bei der StudiDB angemeldet hat.