To content
Department of Computer Science

Lectures

Our group regularly offers the following lectures on algorithmic foundations.

In this lecture, we deal with the problem of preprocessing a (often very long) text such that we can answer search queries on them efficiently. Examples for such queries are pattern matching ("does a pattern occur in the text?") to more complex data mining queries, e.g. the search for repetitive patterns. In particular, we are looking at the following topics:

  • Tries (data structures for string search); sorting strings
  • Text indices: suffix trees, suffix arrays, inverted indexes, FM index, possibly compressed indices
  • exact and approximate pattern matching using text indices
  • Functionality of search engines: fast computation and sorting of all documents that contain a certain pattern
  • Text compression: Burrows-Wheeler transform and LZ compression

Please refer to the module handbook (INF-Msc-613) for formal information.

Requirements

Apart from any formal requirements, you should feel happy about analyzing algorithmic problems. The lectures DAP1 and DAP2 should not have been your worst modules. Ideally, you have already attended to other lectures from this area (Algorithmen und Datenstrukturen, Effiziente Algorithmen, Algorithm Engineering, Algorithmische Bioinformatik, etc.) or intend on doing so.

For the exercises, programming knowledge in C/C++ or Java is required.

Compact data structures reduce the space requirement of commonplace data structures and still allow to perform common operations on the data efficiently. Often, the space requirement of these data structures are close to the information-theoretic lower bound, sometimes even below known measures of compression. Examples for topics of this lecture are arrays, bit vectors, strings, trees, graphs, pointsets and permutations. A lot of research has been done on these elementary data structures in recent decades, at which we will have a closer look at. The excercises to the lecture include implementation and testing of these data structures in a low-level programming language.

Please refer to the module handbook (INF-Msc-616) for formal information.

Requirements

Apart from any formal requirements, you should feel happy about analyzing algorithmic problems. The lectures DAP1 and DAP2 should not have been your worst modules. Knowledge of the contents of the lecture Algorithmen und Datenstrukturen is expected.

For the exercises, basic knowledge of C/C++ or another low-level programming language is required.

Dates and other Details

This website only contains general information on regularly offered courses. Please use the LSF for information about ongoing or upcoming courses, including dates and other details. Participants of our courses will receive access to corresponding Moodle rooms.