Algorithmen und Programmierung II - Objektorientierte Programmierung

Dozent: Prof. Dr.-Ing. Heinz F. Schweppe

Inhalt

Grundlagen der Berechenbarkeit:
- universelle Registermaschinen
- Syntax und operationelle Semantik imperativer Programmiersprachen

Formale Verfahren zur Spezifikation und Verifikation imperativer Programme:
- Bedingungen auf dem Zustandsraum (assertions),
- Hoare-Kalkül, partielle Korrektheit, Termination

Konzepte imperativer und objektorientierter Programmierung (Java):
- primitive und zusammengesetzte Datentypen,
- Methoden (Prozeduren und Funktionen), Parameterübergabe, Überladung
- Module, Klassen, Objekte
- Klassenhierarchien, Vererbung, abstrakte Klassen, Schnittstellen

Programmiermethodik:
- schrittweise korrekte Programmentwicklung
- Teile und Herrsche
- Backtracking.

Analyse von Laufzeit und Speicherbedarf:
- O-Notation
- Umwandlung von Rekursion in Iteration

Vorlesung

  1. Einführung
  2. Imperative Programmierung und Berechenbarkeit
  3. Anatomie eines imperativen Java-Programms
  4. Grundlagen von Programmiersprachen I (Einfache Typen, Ausdrücke, Typanpassung)
  5. Grundlagen von Programmiersprachen II (Anweisungen)
  6. Unterprogramme
  7. Klassen, Objekte, Typen
  8. Programmieren mit Objekten
  9. Ausnahmebehandlung
  10. Vererbung (Teil I, Teil II)
  11. Objektorientierte Programmiermethodik an Beispielen
  12. Methodik der Programmentwicklung (Teil I, Teil II, Teil III)
  13. Softwaretest

Übungsblätter

# Übungen Lösungen
1 Übungsblatt 1 Musterlösung 1
2 Übungsblatt 2 Musterlösung 2
3 Übungsblatt 3 Musterlösung 3
4 Übungsblatt 4 Musterlösung 4
5 Übungsblatt 5 Musterlösung 5
6 Übungsblatt 6 Musterlösung 6
7 Übungsblatt 7 Musterlösung 7
8 Übungsblatt 8 Musterlösung 8
9 Übungsblatt 9 Musterlösung 9
10 Übungsblatt 10 Musterlösung 10
11 Übungsblatt 11 Musterlösung 11
12 Übungsblatt 12 Musterlösung 12
  Klausur (nicht veröffentlicht) Musterlösung der Klausur
  Nachklausur