Algorithmen und Datenstrukturen (für Mechatronik, Elektronik und Informationstechnik und Maschinenbau)

339.640 Algorithmen und Datenstrukturen 2VO Rabiser Mi 10:15-11:45 Raum: Zoom (siehe Moodle) Beginn: 10.3.2021

Übungen

Informationen zu den Übungen finden Sie hier

Ziele

Algorithmen sind das formale Grundgerüst für die Software-Entwicklung. Sie sind ein Bindeglied zwischen der Theoretischen Informatik und der eigentlichen Programmierung.

In dieser Lehrveranstaltung werden die wesentlichen Eigenschaften von Algorithmen untersucht und wichtige Klassen von Algorithmen in Bezug auf ihre praktische Anwendung vorgestellt.

Die Behandlung der Algorithmen erfolgt großteils in Pseudocode. Dies erlaubt die Betrachtung von Algorithmen losgelöst von einer konkreten Programmiersprache. Manche Lehrinhalte werden durch Vorführungen (Demo-Videos) veranschaulicht. Manche Algorithmen werden auch an der Tafel/am Whiteboard gemeinsam konstruiert.

Inhalt

  • Der Algorithmusbegriff
    Definition, Abgrenzung zwischen Algorithmen und Programmen, Darstellungsarten, Abstraktionsschichten und Bestandteile von Algorithmen
  • Spezifikation
    Zweck, Schnittstellenbeschreibung, Aufgabenbeschreibung, Darstellungsarten
  • Schrittweise Verfeinerung
    "Divide & Conquer", systematisches Lösen großer Probleme, Beispiel in Java
  • Algorithmen mit Gedächtnis
    Begriff, Implementierungsvarianten
  • Komplexität
    Begriff, Laufzeitanalyse, Laufzeitmessung, Asymptotische Komplexität, Minimale Komplexität von Problemen
  • Dynamische Datenstrukturen
    Klassen als Referenztypen, Lineare Listen, Unsortierte Listen, Sortierte Listen, Ringlisten, Doppelt verkettete Listen, Stacks, Queues, Mengen
  • Rekursion
    Begriff, Klassifizierung, Terminierung, Anwendungen, Umwandlung rekursiver Algorithmen in iterative und umgekehrt
  • Bäume
    Begriffe, Binäre Suchbäume, Balancierte Bäumeer Suchbäume, Topdown-234-Bäume, Rot-Schwarz-Bäume, B-Bäume
  • Graphen
    Begriffe, Depth-First-Search, Breadth-First-Search, Kleinster spannender Baum, Kürzester Pfad, Transitive Hülle, Serialisierung von Graphen
  • Exhaustion
    Das n-Damen-Problem, Schema zum Suchen einer Lösung, Exhaustionsvariante, Optimierungsvariante, Darstellung von Lösungsvektoren, Näherungsverfahren, Nichtdeterministische Algorithmen
  • Sortieren
    Auswahlverfahren, Einfügeverfahren, Shellsort, Quicksort, internes und externes Mischsortieren, Sortieren von Listen, Heapsort, Topologisches Sortieren, Komplexität von Sortierverfahren

Leistungsnachweis:

VO: Vorlesungsklausur am Ende des Semesters.

UE: Beurteilung ausgearbeiteter Übungsaufgaben.

Unterlagen

Die Vorlesung wird foliengestützt abgehalten. Die Folien und ergänzende Unterlagen werden zum Download im PDF-Format bereitgestellt.

Literatur

  • Aho A.V., Hopcroft J.E., Ullman J.D.: Data Structures and Algorithms. Addison-Wesley 1983.
  • Goodrich, M. T., Tamassia, R., and Goldwasser, M. H.: Data structures and algorithms in Java. John Wiley & Sons. 2014.
  • Knuth D.E.: The Art of Computer Programming. Addison-Wesley 1973.
    Band 1: Fundamental Algorithms.
    Band 2: Seminumerical Algorithms.
    Band 3: Sorting and Searching.
  • Pomberger G., Dobler H.: Algorithmen und Datenstrukturen. Pearson 2008.
  • Saake G., Sattler K.: Algorithmen und Datenstrukturen. dpunkt 2006.
  • Sedgewick R.: Algorithmen in Java. Pearson 2014.
  • Wirth N.: Algorithmen und Datenstrukturen. Teubner Studienbücher Informatik 1986.

Links

Visualisierung und Animation diverser Algorithmen: hier und hier.