In this lecture we will introduce concepts and methods of advanced algorithmics relevant to current reseach in bioinformatics. We will discuss Methods for the development and analysis of deterministic and randomised algorithms and foundations of compact data structures. Finally, the lecture will encompass concepts for parallel and vectorized computing. In more detail we will cover:

- Introduction into different kinds of algorithms and analysis methods
- Foundations of compact data structures 
- Graph theory and graph algorithms 
- Analysis of randomized algorithms and data structures
- Introduction into parallel and vectorized computing
- Concepts, paradigms and frameworks for distributed computing

Date   Topic
15.10.   L: Types of algorithms and their analysis I
22.10.  L: Types of algorithms and their analysis I
29.10.  L: Compact data structures: Entropy and Coding
05.11.  L: Compact data structures: Arrays 
12.11  L: Compact data structures: Bitvectors with rank and select I
19.11  L: Compact data structures: Bitvectors with rank and select II
26.11  Review I
03.12.  L: Hashing I
10.12.  L: Hashing II
17.12  L: Graph algorithms : Shortest path
07.01.  L: Graph algorithms : Network flow
14.01.  L: Graph algorithms : Bipartite Matching
21.01  L: Vectorized and parallel computing I
28.01.  Review II
04.02.  L: Vectorized and parallel computing II
11.02.  Examination

 

 

 

 

 

 

 

 

 

 

 

 

 

 

General notes regarding the exercises:

  • to pass the course, you need to pass the exam in the end, and you need to pass the exercises (formal requirement "Aktive Teilnahme")
  • to pass the exercises you need to pass the theoretical assignments and the reviews
  • if you successfully passed the exercises in a previous semester, i.e. all the requirements, you do not need to take the exercises again (although it is highly recommended)
  • however partial results from previous semesters cannot be taken into account, e.g. if you only passed programming but not the review, you need to take programming again, as well.

Theoretical assignments:

  • there assignment sheets with 3-4 tasks each, every week one sheet is due
  • I will ask at least two students (not groups) in advance to prepare each task and then explain it during the exercise
  • every student will be asked at least once, but most will be asked twice
  • failure to present a task more than once  means failing the exercises (it's ok if the solution is not perfect, that's why I ask two students, but it should be close)
  • assignment sheets are not collected/graded, presentation is the "test"