Inhalte: Dieses Modul richtet sich an Studentinnen und Studenten, deren Einstufungstest Vorkenntnisse in einer objektorientierten Programmiersprache nachweist.
Es werden folgende Themen behandelt:
• Maschinelle Modellierung des Berechenbarkeitsbegriffs, (Registermaschinen) und zentrale Imperative Programmierkonzepte.
• Nachweis der Eigenschaften von kleinen Programmen (Hoare-Kalkül und/oder wp-Kalkül).
• Objektorientierte Programmierkonzepte (wie Klassen, Objekte, Referenzen, Methoden, Vererbung, polymorphe Typsysteme, Abstrakte Klassen, Schnittstellen, generische Klassendefinitionen, Kapselung, Fehlerbehandlung usw.).
• Einfache Datenstrukturen und deren Implementierung unter Verwendung objektorientierter Programmiertechniken sowie grundlegende Konzepte der Datenabstraktion.
• Vertiefte objektorientierte Modellierungstechniken und grundlegende Entwurfsmuster (Iteratoren, Beobachtermuster, Strukturmuster, MVC, usw.)
• Die Realisierung/Umsetzung der Konzepte werden anhand von modernen, gegenwärtig verwendeten, objektorientierten Programmiersprachen vorgestellt.