Technische Universität Ilmenau

Algorithms and Data Structures 1 - 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 and Data Structures 1 in degree program Bachelor Wirtschaftsinformatik 2021
module number200062
examination number220445
departmentDepartment of Computer Science and Automation
ID of group 2242 (Complexity Theory and Efficient Algorithms)
module leaderProf. Dr. Martin Dietzfelbinger
term summer term only
languageDeutsch
credit points5
on-campus program (h)112
self-study (h)38
obligationelective module
examexamination performance with multiple performances
details of the certificateDas Modul Algorithmen und Datenstrukturen 1 mit der Prüfungsnummer 220445 schließt mit folgenden Leistungen ab:
  • schriftliche Prüfungsleistung über 90 Minuten mit einer Wichtung von 100% (Prüfungsnummer: 2200710)
  • Studienleistung mit einer Wichtung von 0% (Prüfungsnummer: 2200711)


Details zum Abschluss Teilleistung 2:

Praktikum, mündliche Präsentation und Diskussion

alternative examination performance due to COVID-19 regulations incl. technical requirements
signup details for alternative examinations
maximum number of participants
previous knowledge and experience

Algorithmen und Programmierung

Grundlagen und Diskrete Strukturen

Mathematik 1

learning outcome

Fachkompetenz: Die Studierenden kennen die Grundprinzipien des Algorithmenentwurfs und der Korrektheits- und Zeitanalyse von Algorithmen und Datenstrukturen. Die Studierenden kennen ein Verfahren für die Spezifikation von Datentypen und können dieses auf Beispiele anwenden. Sie kennen die O-Notation und ihre Regeln und können sie bei der Laufzeitanalyse benutzen. Die Studierenden kennen grundlegende Datenstrukturen über Spezifikation und Implementierungs­möglichkeiten und können die zentralen Perfomanzparameter benennen und begründen. Sie kennen fortgeschrittenere Datentypen wie  "binärer Suchbaum" und Details der Implementierung als balancierter Suchbaum. Die Studierenden kennen das Prinzip und das Verhalten von einfachen Hashverfahren und können das zu erwartende Verhalten für die verschiedenen Verfahren beschreiben. Sie kennen Konstruktionen einfacher randomisierter Hashklassen und zugehörige Beweise.  Die Studierenden kennen die grundlegenden Sortieralgorithmen (Quicksort, Heapsort, Mergesort sowie Radixsort), können die Korrektheit der Verfahren begründen und ihre Laufzeit berechnen. Sie kennen die untere Schranke für vergleichsbasierte Sortierverfahren sowie den grundlegenden Datentyp  "Priority Queue" und seine Implementierung auf der Basis von binären Heaps. Die Studierenden kennen die Grundbegriffe der Graphentheorie, soweit sie algorithmisch relevant sind, und können mit ihnen umgehen. Sie kennen die wesentlichen Datenstrukturen für die Darstellung von Graphen und Digraphen mit den zugehörigen Methoden und Performanzparametern.

Im Praktikum konnten die Studierenden konkrete Erfahrungen mit dem essentiellen Schritt von theoretisch entworfenen und analysierten Algorithmen zur praktischen Implementierung und experimentellen Evaluation machen. Das Praktikum führt in den Umgang mit einer zweiten Programmiersprache (C++) ein und führt zur grundlegenden Beherrschung dieser Sprache in Lesen und Verwendung. Die Studierenden können in diesem Aufgabenfeld selbst entwickelte Vorgehensweisen und eigene Erkenntnisse im Gespräch darstellen.

Methodenkompetenz: Die Studierenden beherrschen Techniken zur Beschreibung von einfachen Systemen (Datentypen) und Verfahren (Algorithmen) sowie zur Beschreibung des Laufzeitverhaltens (O-Notation). Sie verstehen den Sinn von Korrektheitsbeweisen und beherrschen die grundlegenden Techniken für solche Beweise und für Laufzeitanalysen. Sie verstehen die Bedeutung der Effizienz bei der Implementierung von Algorithmen und Datenstrukturen.

Sozialkompetenz: Die Studierenden haben die Erfahrung gemacht, dass zur Erreichung des Ziels der Vorlesung die Herstellung einer gemeinsamen konzentrierten Arbeitsatmosphäre wesentlich ist. Diskussionsbeiträge und Fragen werden von den Lehrenden und den Studierenden immer begrüßt. Die Studierenden können sich aktiv und interagierend an der Diskussion der Lösung der Übungsaufgaben in der Übung beteiligen. Sie sind fähig zu erkennen, dass unterschiedliche Herangehensweisen zum Ziel führen können, im Rahmen der mathematischen Regeln und des Standes der Kunst. Im Praktikum konnte die Kombination eigener Bemühungen mit der Annahme von unterstützender Beratung vom Tutor eingeübt werden. Die Studierenden erkennen, dass es sich lohnt, theoretische Ergebnisse der Vorlesung im Experiment zu hinterfragen und haben den Wert unterschiedlicher Perspektiven auf einen Sachverhalt erfahren. 

content

Spezifikation von Berechnungsproblemen und von abstrakten Datentypen.

Analyse von Algorithmen: Korrektheitsbeweise für iterative und rekursive Verfahren, Laufzeitbegriff, O-Notation, Laufzeitanalyse.

Methoden für die Analyse von Laufzeit und Korrektheit.

Grundlegende Datenstrukturen (Listen, Stacks, Queues, Bäume).

Binäre Suchbäume, Mehrwegsuchbäume, balancierte Suchbäume  (AVL- und/oder Rot-Schwarz-Bäume, B-Bäume).

Einfache Hashverfahren, universelles Hashing.

Sortierverfahren: Quicksort, Heapsort, Mergesort, Radixsort. Untere Schranke für Sortieren.

Priority Queues mit der Implementierung als Binärheaps.

Graphen und gerichtete Graphen und ihre Darstellung.
Graphdurchlauf: Breitensuche, einfache Tiefensuche

media of instruction and technical requirements for education and examination in case of online participation

zum Moodle-Kurs

Vorlesung: Folienprojektion, Folien auf der Webseite, Details im Tafelvortrag

Übung: Tafel, Studierende präsentieren Lösungen, Entwicklung von Lösungen im Dialog

Im Praktikum: Programmieraufgaben, eigenständig zu lösen in dedizierter Programmierumgebung, On-Line-Auswertung der Lösungen.

literature / references
  • T. Ottmann, P. Widmayer, Algorithmen und Datenstrukturen, Spektrum Akademischer Verlag, 2002
  • R. Sedgewick, Algorithms, Addison-Wesley, 2002 (auch C-, C++, Java-Versionen, auch auf deutsch bei Pearson)
  • R. Sedgewick, Algorithms, Part 5: Graph Algorithms, Addison-Wesley, 2003
  • K. Mehlhorn, P. Sanders, Algorithms and Data Structures - The Basic Toolbox, Springer, 2008
  • R. H. Güting, S. Dieker: Datenstrukturen und Algorithmen, B.G. Teubner Verlag, 2004
  • T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Introduction to Algorithms, 2nd ed., MIT Press, 2001 (auch auf deutsch bei Oldenbourg)
evaluation of teaching