Im Programmierkurs 1 wurde Java als Programmiersprache eingesetzt. Im Programmierkurs 2 werden wir die Kenntnisse auf weitere Programmiersprachen ausweiten. Es handelt sich dabei um die objektorientierten Sprachen C++ und C#. Wie die Namen bereits andeuten, sind die Sprachen stark von der prozeduralen Sprache C beeinflusst. Die Sprache C++ kann, zur Vereinfachnung, als Obermenge der Sprache C angesehen werden. Daher können wir mit einem geringen Mehraufwand auch den Kern (ANSI89) der Sprache C erlernen. Am Ende der Vorlesung haben Sie die prozedurale Sprache C und die objektorientierten Sprachen Java, C++ und C+ kennengelernt. Diese gehören weltweit zu den am meisten eingesetzten Programmiersprachen.
Während im Programmierkurs 1 die Erstellung von komplexen Anwendungen unter Verwendung einer API im Mittelpunkt stand, werden wir uns im Programmierkurs 2 mit den Sprachdetails beschäftigen. Durch eine vergleichende Betrachtung der einzelnen Sprachen sind wir in der Lage, einen vertieften Einblick in die Programmierung zu erhalten.
Themen
| 1 | C |
| 1.1 | Historie |
| 1.2 | Eigenschaften von C |
| 1.3 | Compilierung (make) |
| 1.4 | Bezeichner |
| 1.5 | Variablen und Konstanten |
| 1.6 | Datentypen |
| 1.7 | Anweisungen und Kontrollstrukturen |
| 1.8 | Funktionen |
| 1.9 | Deklaration und Definition |
| 1.10 | Aus- und Eingabe |
| 1.11 | Zuweisung |
| 1.12 | Logische Operatoren |
| 1.13 | Inkrement |
| 1.14 | Trennen von Ausdrücken |
| 1.15 | Abkürzungen bei Zuweisungen |
| 1.16 | Präprozessor |
| 1.17 | Zusammengesetzte Datentypen (Strukturen, Varianten, Aufzählungen) |
| 1.18 | Namen für Datentypen |
| 1.19 | Speicherverwaltung |
| 1.20 | Zeiger |
| 1.21 | Dynamische Speicherverwaltung |
| 1.22 | Funktion main mit Parametern |
| 2 | C++ |
| 2.1 | Historie |
| 2.2 | Eigenschaften von C++ |
| 2.3 | Ein- und Ausgabe |
| 2.4 | Standardbibliothek |
| 2.5 | Klassen |
| 2.6 | Includeguards |
| 2.7 | Konstruktoren |
| 2.8 | Destruktoren |
| 2.9 | Dynamische Objekterzeugung |
| 2.10 | Überladen |
| 2.11 | Inline Funktionen |
| 2.12 | Konstante Elementfunktionen |
| 2.13 | Vererbung |
| 2.14 | Virtuelle Funktionen |
| 2.15 | Abstrakte Klassen |
| 2.16 | Virtueller Destruktor |
| 2.17 | Referenzen |
| 2.18 | Defaultparameter |
| 2.19 | Konstante Objekte |
| 2.20 | Statische Elementfunktionen und Attribute |
| 2.21 | Namensräume |
| 2.22 | Mehrfachvererbung |
| 2.23 | Zeiger auf Elementfunktionen und Attribute |
| 2.24 | friend-Funktionen |
| 2.25 | Templates |
| 2.26 | Überladen von Operatoren |
| 2.27 | Ausnahmebehandlung |
| 2.28 | Typumwandlung |
| 2.29 | Typinformationen |
| 3 | C# |
| 3.1 | Historie |
| 3.2 | Eigenschaften von C# |
| 3.3 | .NET-Framework |
| 3.4 | Programmerstellung |
| 3.5 | Grundlagen |
| 3.6 | Ein- und Ausgabe |
| 3.7 | Strukturen |
| 3.8 | Klassen |
| 3.9 | Vererbung |
| 3.10 | Abstrakte Klassen |
| 3.11 | Interface |
| 3.12 | Namensräume |
| 3.13 | Partielle Klassendefinition |
| 3.14 | Methoden |
| 3.15 | Eigenschaften |
| 3.16 | Generische Datentypen |
| 3.17 | Überladen von Operatoren |
| 3.18 | Indexer |
| 3.19 | Delegates |
| 3.20 | Ereignisse |
| 3.21 | Ausnahmebehandlung |
| 3.22 | Typumwandlung |