Modulinformationssystem Informatik

 

Fortgeschrittene Programmierung URL PDF XML

Modulcode: Inf-FortProgP
Englische Bezeichnung: Advanced Programming
Modulverantwortliche(r): Prof. Dr. Michael Hanus
Turnus: jedes Jahr im WS (WS16/17 WS17/18 WS18/19 WS19/20 WS20/21 WS21/22)
Präsenzzeiten: 4V 2Ü 1PÜ
ECTS: 10
Workload: 60 Std. Vorlesung, 30 Std. Präsenzübung, 15 Std. Praktische Übungen, 195 Std. Selbststudium
Dauer: ein Semester
Modulkategorien: A (BSc Inf (15)) WI (MSc WInf (15)) WI (MEd Inf) WPI (MEd Inf) IG (TA) (MSc Inf (2-Fach)) IG (SA) (MSc Inf (2-Fach)) WI (MSc WInf) GU (MSc WInf)
Lehrsprache: Deutsch
Voraussetzungen: Info Inf-ProgOO

Kurzfassung:

In dieser Vorlesung werden fortgeschrittene Programmierkonzepte vorgestellt. Dabei wird der Umgang mit den Konzepten der wichtigsten Programmierparadigmen, d.h. funktionale, logische, Constraint-orientierte, nebenläufige und verteilte Programmierung, geübt.

Lernziele:

Die Studierenden kennen die Konzepte der wichtigsten Programmierparadigmen und haben die Befähigung, diese zur Lösung konkreter Programmieraufgaben effektiv einzusetzen. Sie können die Anwendung geeigneter Konzepte für gegebene Probleme einschätzen. Sie sind in der Lage, sich in neue Programmiersprachen- und Programmiersysteme einzuarbeiten und diese anzuwenden.

Lehrinhalte:

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.

Weitere Voraussetzungen:

Solide Programmierkenntnisse, insbesondere in der objektorientierten Programmierung mit Java, wie sie beispielsweise in der einführenden Programmierungsvorlesung erworben werden können.

Prüfungsleistung:

Am Ende der Vorlesung findet nach dem Praktikum eine schriftliche Abschlussprüfung statt. Voraussetzung zur Zulassung zur Klausur ist die regelmäßige Bearbeitung der Übungsaufgaben und die erfolgreiche Teilnahme am Praktikum. Für jede Übungsaufgabe wird festgehalten, ob diese sinnvoll bearbeitet wurde ("Sinnpunkte"). Für die Zulassung zur Klausur müssen in jedem der drei Bereiche nebenläufige/verteile Programmierung, funktionale Programmierung und logische Programmierung mindestens 50% der Sinnpunkte erreicht werden.

Lehr- und Lernmethoden:

Tafelanschrieb und Live-Programmierung während der Vorlesung, d.h. Entwicklung der Programme am Laptop. Die Programme werden jeweils am Ende der Vorlesung über die Webseite den Studierenden zur Verfügung gestellt. Erstellung kleinerer Programme durch die Studierenden in den Übungen. Erstellung einer größeren Anwendung durch die Studierenden im anschließenden Praktikum.

Verwendbarkeit:

Literatur:

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

Verweise:

Kommentar: