Überblick
Moderne Progrmmiersysteme unterstützen den Entwickler in vielfältiger Weise: Sie erleichtern die Kommunikation und die Synchronisation seiner Arbeit mit dem Architekten der Software, mit seinen Kollegen sowie mit den Testern. Vorraussetzung hierfür ist ein Mindestmaß an semantischen Informationen sowohl im Quellcode als auch im übersetzen Code. Erst diese Informationen ermöglichen die automatische Verwaltung von Quell- und Maschinencode: die des Quellcodes durch die Entwicklungsumgebung, die des Maschinencodes durch die virtuelle Maschine. In der Vorlesung betrachten wir die Programmiersprachkonzepte und die Infrastrukturmaßnahmen die C# und .NET mitbringen, um einen integrierten Softwareprozess zu ermöglichen.
Literatur
Als vertiefende Literatur werden die Standards ECMA-334 C# Language Specification, C# Version 4 Specification und ECMA-335 Common Language Infrastructure (CLI) angeraten. Als Buchlektüre raten wir zu Jeffreys Richter's .NET-Büchern in der aktualisierten 3. Auflage (englisch) oder der 2. Auflage (deutsch). Die Konzepte der CLI werden in beiden Büchern gleichermaßen gut behandelt.
Praxisübung
Da diese Veranstaltung nicht nur Konzepte vermitteln, sondern auch nachhaltig transportieren möchte, wird ein freiwilliger Termin zur praktischen Übung der Vorlesungsinhalte angeboten. Dieser Termin ist nicht verpflichtend, sondern ist als Zusatzangebot zu verstehen.
1. Praxisübung: Donnerstag, 26.04.2012, 16:00 - 17:30 Uhr. Inhalt: IL- und JIT-Compiler sowie die Bestandteile einer Assembly.
2. Praxisübung: Donnerstag, 31.05.2012, 14:00 - 15:30 Uhr. Inhalt: Wert-/Referenztypen, Ringliste.
3. Praxisübung: Mittwoch, 27.06.2012, 10:00 - 11:30 Uhr. Inhalt: Generics und Nebenläufigkeit.
5. Praxisübung: Donnerstag, 26.07.2012, 14:00 - 15:30 Uhr. Inhalt: Nebenläufigkeit
Kommunikation
Alle Teilnehmer sollten sich in dieser Mailingliste eintragen.
Um falschen Erwartungen vorzubeugen: Diese Vorlesung ist kein Programierkurs für C#. Auch besprechen wir nicht, wo man im Visual Studio klicken muss, um XYZ zu erreichen. Die Vorlesung richtet sich an Studierende der Informatik im Hauptdiplom und hat zum Ziel, die Konzepte, Ziele und Randbedingungen die hinter der Sprache C# und der Laufzeitumgebung .NET stehen, zu beleuchten. Infolgedessen lässt sich das gelehrte z.T. sehr gut auf vergleichbare Programmiersysteme wie Java übertragen. Dafür müssen wir aber gute Java-Kenntnisse (auf Informatik/Uni-Karlsruhe-Vordiplomsniveau) sowie Teile des Stoffs der Wahlpflichtfachsvorlesung "Softwaretechnik" voraussetzen.



