Algorithmen und Datenstrukturen

Since 2012, I have been teaching the Algorithms and data structures lecture (in German). This is the continuation of the lecture Introduction to Computer Science.    Studium

In 2013, the lecture was awarded Held der Lehre.

Credits

The course includes a programming contest, which traditionally implements part of a computer game. Since 2012, the contest has been organized by students from Acagamics, and Dirk Aporius put a lot of work into the contest the years before. Thank you!

As for the EinfInf lecture, we have more than 200 students attending, and I’m thankful for the great support by (student) tutors and in particular by Ilona Blümel (until 2018), Christian Braune (since 2019) and Thomas Wilde (since 2021) who organize exercise groups, tutorials, etc.

Overview

The lecture aims at students in the second semester with moderate programming experience. It includes the exemplary implementation of algorithms and data structures and a programming contest.

Contents

  • Lists
    • Dynamic arrays and linked lists
    • Stacks & queues
    • Iterators
  • Trees
    • Traversals: recursive and non-recursive
    • Syntax tree from recursive descent parsing
  • Search trees & balanced trees (AVL-, 2-3-4-, red-black-, and B-trees)
  • Binary heaps
  • Hashing
  • Graphs & data structures
  • Algorithms on graphs including
    • Traversals & topological sorting
    • Minimum spanning trees
    • Shortest paths & A*-algorithm
    • Maximum flow / minimum cut
  • Dynamic programming
  • String pattern matching

Organization

extent (week) 3h lecture + 2h exercises
credit points 6
course language German (literature partially in English)
prerequisites EinfInf (recommended), Java programming
recommended semester 2 (or 3 when starting in summer)
official times & dates please search LSF (no permalink available)

Literature

Gunter Saake and Kai-Uwe Sattler.
Algorithmen und Datenstrukturen: Eine Einführung mit Java.
6th edition, dpunkt-Verlag2020
Michael T. Goodrich and Roberto Tamassia.
Data Structures and Algorithms in Java.
6th edition, Wiley2014
Robert Sedgewick and Kevin Wayne.
Algorithms.
4th edition, Addison-Wesley2011
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein.
Introduction to Algorithms.
3rd edition, MIT Press2009