Algorithmen und Datenstrukturen 2

ECTS 3.0

Inhaltsübersicht

Das Modul Algorithmen und Datenstrukturen 2 baut auf dem Modul Algorithmen und Datenstrukturen 1 auf. Studentinnen und Studenten erhalten einen vertieften Einblick ins Design und in die Implementierung von zentralen dynamischen Datenstrukturen. Aufbauend auf diesen Datenstrukturen werden typische Anwendungen und Algorithmen vorgestellt.

  • halbdynamische Datenstrukturen (ArrayList)
  • Stack, Listen, Ringlisten, optional: Skip-Liste
  • natürliche und ausgeglichene Binärbäume, Maps 
  • Heap und Prioritätswarteschlangen
  • Hash-Verfahren und Hash-Funktionen
  • Graphen und Graphenalgorithmen

Lernziele

  • Die Studentinnen und Studenten kennen die wesentlichen (halb-) dynamischen Datenstrukturen (ArrayList, Stack, Listen, Bäume, Prioritätswarteschlangen, Maps), die in der Software-Entwicklung eingesetzt werden und können diese selber in Java implementieren. 
  • Sie kennen wichtige exemplarische Algorithmen zum Suchen und Sortieren von Daten in dynamischen Datenstrukturen und können diese in Java selber implementieren.
  • Sie verstehen das Prinzip des Hashings, kennen geläufige Hash-Verfahren und können eigene, sinnvolle Hash-Funktionen formulieren.
  • Sie kennen die zentrale Datenstruktur Graph und sind in der Lage, effiziente Graphen und Graphenalgorithmen der Problemstellung angepasst zu implementieren.

Empfohlene Vorkenntnisse

  • Objektorientierte Programmierung 2 (oop2)
  • Algorithmen und Datenstrukturen 1 (algd1)

Leistungsbewertung

Erfahrungsnote und MSP schriftlich