This is an old revision of the document!
We will explore advanced techniques for the design and the analysis of algorithms with selected examples from classical as well as modern algorithmics. Our discussion will include both polynomial time and exponential time exact algorithms, as well as approximation algorithms for combinatorial optimization problems (often on graphs) and their analysis.
We will discuss techniques such as amortized analysis, duality of linear programs, integer linear programming, and techniques for big data (e.g. parallel algorithms, streaming algorithms). Topics will include algorithms for (time-expanded) network flows, min-cost flows, streaming for bipartite matching, parallel shortest paths, traveling salesman problem, linear ordering, and data structures such as, e.g., Fibonacci heaps, Union-Find, (Cuckoo) Hashing, and their analysis.
The lectures are accompanied by tutorials. There are two alternative appointments. You only need to attend one of the appointments. The assignment of the attendees to these appointments will be done after the first lecture. Details about the assignment procedure will be announced here soon.
There will be a written exam in the usual exam period.