Vorlesung


Allgemeines

Die Vorlesung (4V+2Ü) ist eine Stammvorlesung im Bereich "Praktische Informatik", die regelmäßig (in der Regel einmal pro Jahr) angeboten werden wird. Sie richtet sich an Informatikstudenten nach dem Vordiplom. Weitere Voraussetzungen gibt es nicht. Leistungsnachweise werden in Form von Übungsscheinen ausgestellt, die die erfolgreiche Bearbeitung eines gewissen Prozentsatzes an Übungsaufgaben und aktive Teilnahme an den Übungen voraussetzen.

Beschreibung

Die Vorlesung bespricht die grundlegenden Konzepte heutiger Programmiersprachen aus der Sicht der praktischen Anwendung zur Lösung von Softwareproblemen.

Programmierung bedeutet nicht nur die Entwicklung und das Testen (oder, besser, Verifizieren) irgendeines korrekten und effizienten Programms zur Lösung eines bestimmten Anwendungsproblems. Es ist auch wichtig, daß das Programm gute Wartungseigenschaften besitzt. Ein Programm soll daher möglichst viele, in anderen Kontexten wiederverwendbare Teile besitzten, es soll leicht modifizierbar sein, wenn sich das ursprünglich gestellte Problem ändert, es soll von Leuten verstanden werden können, die an seiner Entwicklung nicht beteiligt waren, und vieles mehr.

In der Vorlesung untersuchen wir die Konzepte heutiger Sprachen hinsichtlich der Art und Weise, wie sie diese Anforderungen an die Programmierung unterstützen. Folgende Fragen werden deshalb typischerweise gestellt:

Diese Fragen werden nicht theoretisch oder technisch detailiert behandelt, sondern anhand ausgewählter, nichttrivialer Programmierbeispiele erläutert. Verweise auf die theoretische oder technisch detailiertere Behandlung, die man in angrenzenden Vorlesungen (z.B. Übersetzerbau, Semantik von Programmiersprachen, Spezifikation und Verifikation, Logische Programmierung, lambda-Kalkül und Typentheorie) lernen kann, werden gegeben.

Die Vorlesung orientiert sich an sprachübergreifenden Konzepten (Kontrollstrukturen, Datentypen, Berechnungsmodellen, Abstraktionsmechanismen), eine Sichtweise, die oft parallel, aber manchmal auch orthogonal zu den großen Programmierparadigmen (imperativ, funktional, logisch, objektorientiert) liegt. Die Vorlesung verwendet konkrete Programmiersprachen als Anschaungsmaterial, insbesondere ML, Haskell, Prolog, Smalltalk und C(++).

Die begleitenden Übungen sind teils theoretisch, aber zum größeren Teil praktisches Programmieren in einigen der genannten Sprachen.

Lernziele

Stichworte zum Inhalt

  1. Funktionale Programmierung: Termtypen, Typpolymorphismus und Typinferenz, parametrische Module, Typklassen, Auswertungsstrategien (ML und Haskell)
  2. Logische Programmierung: Unifikation, Einbringen primitiver Logiken über den Mechanismus der constraints, Ausführung als Constraintsimplifikation, nebenläufiges logisches Programmieren mit constraints
  3. Vererbung und objekt-orientierte Programmierung (Smalltalk-80, C++)
  4. grundlegende Konzepte von Nebenläufigkeit und Kommunikation in CSP ('Communicating Sequential Processes')

On to Übungsblätter Part of Programmiersprachen WS 95/96
Harald Ganzinger, Peter Barth, Hubert Baumeister
September 6, 1996

Imprint | Data Protection