Algorithmen und Datenstrukturen (25SS)

  1. Vorlesung:

    Algorithmen und Datenstrukturen

  1. LV-Leiter:
    Assoc.Prof. Dipl.-Ing. Dr. Peter Schartner
    Termine & Prüfungsinformationen:
    Siehe ZEUS-Webseite für einzelne Termine und weitere Details!
    Beschreibung:
    Aufbauend auf den Kenntnissen der "Einführung in die strukturierte und objektorientierte Programmierung" (ESOP) ist der Umgang mit Datenstrukturen und Algorithmen größerer Strukturkomplexität zu erlernen. Dabei sollen die Studierenden einen Grundschatz wichtiger Datenstrukturen und Algorithmen kennenlernen und diese nach ihrer algorithmischen Komplexität beurteilen können. Die begleitenden Übungen vertiefen den Vorlesungsstoff und sollen dazu beitragen, eigenständig die Konstruktion und Analyse von Algorithmen durchzuführen. Von den vorgestellten Datenstrukturen bzw. Algorithmen sind einige exemplarisch zu implementieren. Neben diesem Grundziel der Lehrveranstaltung dienen ausgewählte Implementierungsbeispiele des Praktikums dazu, die im ESOP erworbenen Programmierkenntnisse (insbesondere die objektorientierten Konzepte) zu festigen.

    Nach Absolvieren von VO und UE können Studierende …
      • Landau-Symbole definieren und einfache Komplexitätsklassen gegeneinander abgrenzen
      • die Komplexität von einfachen Algorithmen bestimmen
      • den Fundamentalsatz (Beschleunigen durch Aufteilen) wiedergeben und anwenden
      • unterschiedliche Sortierverfahren beschreiben und nutzen
      • unterschiedliche Suchverfahren beschrieben und nutzen
      • unterschiedliche Hashverfahren beschreiben und nutzen
      • Graphen und Bäume definieren und grundlegende Algorithmen (Traversierung, Tiefen/Breitensuche) auf den zugehörigen Datenstrukturen anwenden
      • Balancierte Bäume (AVL- und B-Bäume) definieren und zugehörige Algorithmen anwenden
      • Kürzeste Wege in Graphen (1:n, n:n) und Spannbäume definieren und bestimmen
      • Unterschiedliche Algorithmen für Stringmatching nennen
      • einfache Algorithmen zu Datenkompression, Fehlererkennung- und -korrektur erklären und anwenden
      • die Komplexitätsklassen P und NP definieren und das Prinzip der Polynomiellen Reduktion erklären
    Weitere Informationen:
    LV-Modalitäten
    Materialien siehe Moodle
    Tools & Links
    go2algo 5.2 (inkl. Beta-Version von AVL-Bäumen) – Bugs und Anregungen bitte an Peter Schartner
    Data Structures Handbook (externer Link)
  1. Kapitel der VO

    1. Organisatorisches
    2. Einführung und Überblick
    3. Elementare Algorithmen
    4. Beschleunigung durch Aufteilen
    5. Sortieralgorithmen
    6. Suchalgorithmen
    7. Hashverfahren
    8. Graphen und Bäume
    9. Balancierte Wurzelbäume
    10. Algorithmen auf Graphen
    11. (String Matching)
    12. Datenkommunikation
    13. Ausblick — Die Klassen P und NP