In dieser Veranstaltung lernen die Teilnehmenden objektorientierte Konzepte anhand der Programmiersprachen Python und Java. Vorkenntnisse sind nicht erforderlich. Zum Abschluss wird ein Programmierprojekt durchgeführt.
Es werden folgende Themen behandelt:
- Einführung in die imperative Programmierung mit Python (Datentyp, Operator, Ausdruck, Variable, Zuweisung, Verzweigung, Schleifen, Prozeduren, Rekursion, Ein- und Ausgabe, Fehlerbehandlung)
- Grundlegende Algorithmen (Sortieralgorithmen, Geometrie) und Algorithmen-Typen (Teile und Herrsche, Backtracking)
- Laufzeitanalyse von kleinen Programmen und Korrektheitsbeweise mit dem Hoare-Kalkül
- Maschinelle Modellierung des Berechenbarkeitsbegriffs (Registermaschinen)
- Objektorientierte Programmierkonzepte (Klassen, Objekte, Referenzen, Methoden, Vererbung, polymorphe Typsysteme, Abstrakte Klassen, Schnittstellen, generische Klassendefinitionen, Kapselung)
- Einfache Datenstrukturen (einfach und doppelt verkettete Listen, Heap) und deren Implementierung sowie abstrakte Datentypen (Stapel, Schlange)
- Objektorientierte Modellierungstechniken und grundlegende Entwurfsmuster (Iteratoren, Beobachtermuster, Model-View-Controller usw.)
- Anwendung der Programmierkenntnisse in einem Projekt
Zusätzliche Informationen
Organisatorisches:
- Eine Anmeldung zum Kurs kann nur über Onlineanmeldung erfolgen!
- Neben den Vorlesungen (täglich 9:00-11:45 Uhr) finden nachmittags Übungen (13:00-15:30 Uhr) und Fragestunden (ab 15:30 Uhr) statt.
- In den Übungen besteht Anwesenheitspflicht.