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 |