Inhalt

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

Literatur

  • Concepts of Programming Languages, Robert Sebesta, Pearson Education , 10th Edition, 2012, ISBN: 0131395319
  • Data Structures & Problem Solving Using Java, Mark Allen Weiss, Addison Wesley, 4. Auflage, 2010, ISBN: 0-321-54140-5
  • Cormen, Leiserson, Rivest: Introduction to Algorithms, 3. Auflage 2009,
  • Bundle of algorithms in java, third edition, parts 1-5. Sedgewick Robert und Michael Schidlowsky. Addison-Wesley Longman, Amsterdam. 2003.

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: (voraussichtlich) 04.08. (Python) und 25.08. (Python & Java), jeweils um 9:00 s.t.
  • Die Gesamtnote setzt sich aus den Ergebnissen der beiden Klausuren (40:60) zusammen. Ist die Note der 2. Klausur besser als die der 1. Klausur, ist die Gesamtnote die der 2. Klausur.