Algorithmen: Entwurf, Analyse, Implementierung

Modulnummer
TI5009
Modulverantwortliche
Andreas Gogol-Döring
Dozenten
Andreas Gogol-Döring
Kurzbeschreibung
Dieser Kurs behandelt algorithmische Techniken, ihren Einsatz im Algorithmenentwurf und die Realisierung der Algorithmen mit modernen programmiersprachlichen Mitteln.
Qualifikations- und Lernziele

Die Absolventinnen und Absolventen kennen die wichtigen Entwurfstechniken für Algorithmen. Sie sind in der Lage diese als Techniken der kreativen Problemlösung in unterschiedlichen Problembereichen unter Verwendung unterschiedlicher Datenstrukturen einzusetzen. Sie können die Algorithmen analysieren und in allgemeiner Form in einer modernen Programmiersprache in Teamarbeit implementieren. Sie sind in der Lage ihre Entscheidungen darzulegen und in kritischer Diskussion zu verteidigen.

Lerninhalte
  • Analyse von Algorithmen
  • Entwurfstechniken: Teile und Herrsche, Dynamische Programmierung, Gier, Backtracking, Branch-and-Bound, Lineare Programmierung, etc.
  • NP-Vollständige Probleme und ihre Behandlung
  • Anwendung der Entwurfstechniken auf diverse Probleme unter unter Verwendung unterschiedlicher Datenstrukturen
  • Generische Programmierung und Verallgemeinerung von Algorithmen
Moduldauer (Semester)
1
Unterrichtssprache
Deutsch
Gesamtaufwand
6 CrP; 180 Stunden, davon etwa 60 Stunden Präsenzzeit.
Semesterwochenstunden
4
Lernformen

Vorlesung 2 SWS, Übung 2 SWS

Geprüfte Leistung

Prüfungsvorleistung: eine oder mehr Hausübungen (Anzahl wird den Studierenden rechtzeitig und in geeigneter Weise bekannt gegeben)

Prüfungsleistung: Mündliche Prüfung oder Klausur

(Art der Prüfungsleistung wird den Studierenden zu Semesterbeginn rechtzeitig und auf geeignete Art und Weise bekannt gegeben)

Bewertungsstandard

Bewertung der Prüfungsleistung nach § 9 der Prüfungsordnung (Teil I)

Häufigkeit des Angebots
Nach Bedarf
Literatur
  • S. Skiena: The Algorithm Design Manual, Springer
  • A. Levitin: The Design and Analysis of Algorithms, Pearson
  • C. Moore, S. Mertens: The Nature of Computation, Oxford UP