Die Teilnehmer sollen einen Überblick über verschiedene Typsysteme in Programmiersprachen und deren Vorteile und Nachteile bekommen. Insbesondere sollen die Möglichkeiten und Grenzen der Verwendung von Typen aufgezeigt werden, wobei ein Schwerpunkt auf Typen in neueren objektorientierten Sprachen liegt.
Bedeutung von Typen in Programmiersprachen, Klassifikation von Programmiersprachen an Hand von Typsystemen, einfache theoretische Typmodelle, Typen in imperativen Sprachen (hauptsächlich Ada), theoretische Modelle polymorpher Typsysteme und Typinferenz, Sprachen mit polymorphen Typsystemen, Subtyping, Generizität, Typen als partielle Spezifikationen von Objektverhalten, Verwendung polymorpher Typsysteme in der objektorientierten Programmierung. Didaktische Vorgehensweise: Typsysteme ist eine Vorlesung klassischen Stils, also im Wesentlichen ein wöchentlich stattfindender Vortrag. Nach einem allgemeinen Überblick zur Begiffsbestimmung folgt der Hauptteil, in dem zyklisch wiederholt (1) praktische Erfahrungen auf einem Teilgebiet des Themas zusammengefasst, (2) darauf aufbauende formale Modelle vorgestellt und (3) typische Anwendungen der Modelle beschrieben werden (die wieder zu praktischen Erfahrungen führen), wobei die behandelten Teilgebiete in jedem Zyklus komplexer werden. Im letzten Teil der Vorlesung werden aktuelle Trends und Ansätze zur Lösung aktueller Probleme besprochen.