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, Polymorphie
- Abstrakte Klassen, Schnittstellen
- Programmiermethodik:
- schrittweise korrekte Programmentwicklung
- Teile und Herrsche
- Backtracking
- Analyse von Laufzeit und Speicherbedarf:
- O-Notation
- Umwandlung von Rekursion in Iteration
- Analyse von Such- und Sortieralgorithmen
- Algorithmen, Datenstrukturen, Datenabstraktion
Voraussetzungen
Kenntnisse aus ALP I sind nützlich, der Schein dazu ist aber nicht zwingend
erforderlich.