Technische Universität Ilmenau

Algorithms, Automata, and Complexity - Modultafeln of TU Ilmenau

The module lists provide information on the degree programmes offered by the TU Ilmenau.

Please refer to the respective study and examination rules and regulations for the legally binding curricula (Annex Curriculum).

You can find all details on planned lectures and classes in the electronic university catalogue.

Information and guidance on the maintenance of module descriptions by the module officers are provided at Module maintenance.

Please send information on missing or incorrect module descriptions directly to modulkatalog@tu-ilmenau.de.

module properties Algorithms, Automata, and Complexity in degree program Bachelor Ingenieurinformatik 2021
module number200063
examination number2200712
departmentDepartment of Computer Science and Automation
ID of group 2241 (Automata and Logics)
module leaderProf. Dr. Dietrich Kuske
term summer term only
languageDeutsch
credit points5
on-campus program (h)67
self-study (h)83
obligationobligatory module
examwritten examination performance, 180 minutes
details of the certificate
signup details for alternative examinations
maximum number of participants
previous knowledge and experience

Algorithmen und Programmierung, Umgang mit mengentheoretischen Begriffen und Notationen (z. B. erworben in "Mathematik 1")

learning outcome

Die Studierenden nnen grundlegende Algorithmen und Datenstrukturen anhand von Beispielen beschreiben, sind in der Lage, die Effizienz von Algorithmen zu bestimmen und können geeignete Algorithmen auswählen bzw. anpassen.

Die Studierenden kennen die Stufen 0, 2 und 3 der Chomsky-Hierarchie, ihre automatentheoretischen Charakterisierungen und können die Umwandlungen ausführen, sind in der Lage, Nachweise der Nicht-Regularität zu führen,sind mit Abschluss- und algorithmischen Eigenschaften der regulären und kontextfreien Sprachen vertraut.

Die Studierenden kennen die Klassen der semi-entscheidbaren und der entscheidbaren Probleme mit wesentlichen Beispielen, sind in der Lage, die Church-Turing These zu formulieren, ihre Bedeutung darzustellen und Argumente zu ihrer Begründung anzugeben.

Die Studierenden kennen die Komplexiätsklassen P und NP und einige NP-vollständige Probleme, können erläutern, warum die NP-schweren Probleme nicht effizient lösbar sind.

Die Studierenden können kritische Fragen zum behandelten Stoff, Probleme bei der Erarbeitung des Wissens bzw. bei der Lösung der Aufgaben klar formulieren und in Diskussionen mit Kommilitonen und Lehrenden vertreten.

In den Vorlesungen und im Selbstudium haben sie die genannten Kenntnisse erworben, in den Übungen und im Selbstudium die genannten Fähigkeiten der Anwendung erlernt.

content

Spezifikation von Berechnungsproblemen und von abstrakten Datentypen. Analyse von Algorithmen: Korrektheitsbeweise für iterative und rekursive Verfahren, Laufzeitbegriff, O-Notation, Laufzeitanalyse.  Grundlegende Datenstrukturen (Listen, Stacks, Queues, Bäume). Binäre Suchbäume, Mehrwegsuchbäume, balancierte Suchbäume  (AVL- und/oder Rot-Schwarz-B¨aume, B-Bäume). Einfache Hashverfahren, universelles Hashing. Sortierverfahren: Quicksort, Heapsort, Mergesort, Radixsort. Priority Queues mit der Implementierung als Binärheaps. Grundbegriffe der Graphentheorie (ungerichtete und gerichtete Graphen, Markierungen an Knoten und Kanten, Wege und Kreise, Bäume und Wälder, Zusammenhangskomponenten). Datenstrukturen für Graphen (Adjazenzmatrix, Kantenliste, Adjazenzlisten, Adjazenzarrays). Durchmustern von Graphen: Breitensuche, Tiefensuche, Zusammenhangskomponenten, Entdecken von Kreisen. Minimale Spannbäume. Begleitend: Methoden für die Analyse von Laufzeit und Korrektheit.

  • reguläre Sprachen: deterministische und nichtdeterministische endliche Automaten, reguläre Ausdrücke, effektiver Abschluss unter Booleschen Operationen, Verkettung und Iteration, Entscheidbarkeit von Leerheit, Inklusion und Äquivalenz, Pumping-Lemma
  • kontextfreie Sprachen: Kellerautomaten, Parsing, effektiver Abschluss unter positiven Booleschen Operationen, Verkettung und Iteration, Entscheidbarkeit der Leerheit, Pumping-Lemma, Nichtabschluss unter Schnitt
  • semi-entscheidbare Sprachen: Turing-Maschine
  • Berechenbarkeit: Church-Turing These, Unentscheidbarkeit des Halteproblems und der Universalität von kontextfreien Sprachen
  • Komplexitätstheorie: die Klassen P und NP, NP-Vollständigkeit, 3-SAT, graphentheoretische Probleme

media of instruction

Tafel, Folien, Übungsblätter

literature / references
  • G. Saake, K.-U. Sattler, Algorithmen und Datenstrukturen, 4. Auflage, dpunkt, 2010
  • R. Sedgewick, Algorithmen in C++, Pearson Studium, 2001
  • T. Ottmann, P. Widmayer, Algorithmen und Datenstrukturen, Spektrum Akademischer Verlag, 4. überarb. Aufl. 2002
  • R. H. Güting, S. Dieker: Datenstrukturen und Algorithmen, Teubner, 2004
  • T. Cormen, C. Leiserson, R. Rivest, C. Stein, Introduction to Algorithms, Second Edition, MIT Press 2001 (auch auf deutsch erhältlich)
  • M. T. Goodrich, R. Tamassia, Data Structures and Algorithms in Java, 2. Auflage, Wiley, 2003
  • Schöning, "Theoretische Informatik kurzgefasst"
evaluation of teaching