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

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

Voraussetzungen

Kenntnisse aus der Vorlesung "Funktionale Programmierung" werden vorausgesetzt.

Bitte melden Sie sich auch im KVV für die Veranstaltung an.