(Plan) Oberseminar

Fortgeschrittene Algorithmen und Datenstrukturen

Motivation und Abgrenzung:

Abstrakten Datentypen wie Folge und total geordnete Menge sind einfach zu spezifizieren und (deswegen!) sehr nützlich. Zur ihrer Anwendung benötigt man aber konkrete Implementierungen. Die einfachsten davon (Bsp: einfach verkettete Liste, AVL-balancierter Suchbaum) werden im ersten und zweiten Semester behandelt. Danach verweist man auf effizientere, aber kompliziertere Implementierungen in Standardbibliothken, ohne diese im Detail zu analysieren. Genau das wollen wir in diesem Oberseminar an einigen Beispielen nachholen und dabei auch Anwendungen fortgeschrittener Programmiertechniken erleben.

Wir wollen jedoch keine Algorithmen und Datenstrukturen betrachten, die für spezielle Anwendungsbereiche angepaßt sind, denn das geschieht schon in den jeweiligen Spezialvorlesungen.

Im Seminar sollen für jede Datenstruktur jeweils eine wissenschaftliche Primärquelle zitiert werden sowie eine Implementierung. Deren Quelltext soll auf eigenem Rechner kompiliert, benutzt und ggf. verändert werden.

Themen:

  • Datenstrukturen für
    • Folgen (2/3/4-Bäume, Data.Sequence),
    • Mengen (größenbalancierte Bäume, Data.Set),
    • Mengen von Zahlen (Patricia Tries, Data.IntSet)
    • Prioritätswarteschlangen (Bsp: Braun trees)
  • Algorithmen
    • minimum comparison selection, merging, sorting
    • Sortiernetzwerke
    • Sortieren bei sequentiellem Zugriff (tape merging, sorting)
  • Methoden und Programmier-Techniken
    • Trennung von Spezifikation und Implementierung durch Schnittstellen (interfaces, Typeklassen)
    • Korrektheit (Struktur-Invarianten) durch starke Typen
    • eigenschaftsbasiertes Testen
    • maximale und amortisierte Komplexität
    • Laufzeit- und Speichermessungen (profiling)
    • Programmablaufsteuerung über Bedarfsauswertung (Streams, Iteratoren)

Quellen:

Seminar-Organisation

  • eine Konsultation 3 Wochen vor Vortragstermin
  • eine Woche vor Vortrag:
    • Zusammenfassung (1 Seiten Text, mit Quellen) an alle anderen Teilnehmer
    • Foliensatz (Arbeitsstand) an Seminarleiter, dieser gibt weiter an zwei anonyme TN, diese schreiben Kurz-Gutachten
  • Präsentation und Diskussion im Seminar
  • ggf. Überarbeitung bis max. 1 Woche nach Vortrag
  • Kurz-Gutachten für zwei andere Vorträge

allgemeines zur Bewertung von Oberseminaren