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.
  • Klausurtermine: 8.8. (Python) und 22.8. (Java), jeweils 9:00
  • Die Gesamtnote setzt sich aus den Ergebnissen der beiden Klausuren (jeweils 50%) zusammen. 
  • In der fünften Woche wird ein Programmierprojekt mit Gelegenheit zur Notenverbesserung durchgeführt.