This course is the first in a series of three, where each course can be taken independently:
Part 1: Mathematical Tools and Network Problems
Part 2: Approximation and Online Algorithms (homepage for part 2)
Part 3: Computational Geometry
Parts 2 and 3 will be offered in the following terms.


  • Lecturer: Christiane Schmidt
  • Course start on October 14, 2019.
  • The course will consist of 7 seminars. Most of the seminars will be lectures/problem solving sessions led by me, Christiane. Moreover, all students have to prepare a group presentation (on topics from Distributed Algorithms, possibly, depending on the number of participants, on Matroids). In addition, homework assignments will be given. These will not be marked, but for each student 2 assignments are picked for presentation, and the requisite of 50% of homework translates to a sufficiently correct and complete presentation of at least one solution. The grade will be based on the exercises assigned during the course and one exam per part.
  • The first seminar is on Monday, October 14, 2019, 13:00-17:00 in room SP6225.
  • The second seminar will take place Thursday, November 14, 2019, 13:00-17:30 in room SP6225.
  • The third seminar will take place Monday, November 18, 2019, 13:00-17:00 in room SP6225.
  • The fourth seminar will take place Thursday, December 12, 2019, 13:00-17:30 in room SP6225.
  • The fifth seminar will take place Thursday, January 23, 2020, 13:00-17:30 in room SP6225.
  • The sixth seminar will take place Monday, February 10, 2020, 13:00-17:00 in room SP7226.
  • The seventh seminar will take place Friday, February 14, 2020, 13:00-16:00 in room SP6225. In this seminar the group projects will be presented: Nisha, Kristofer: Greedy and Matroid Duality; 2. Anastasia, Manos: Distributed Vertex Coloring and Leader Election.
  • The examination will take place Monday, March 23, 2020, 15:15-(max)17:30 in room SP6225.

Course content.


  • Basic notions of graph theory
  • Asymptotic growth of functions and big-O notation
  • Sorting
  • Tree algorithms
  • Paths in graphs
  • Discrete network flows
  • Covering and packing (IS, coloring, in particular, distributed)

Algorithmic approaches

  • Distributed algorithms

Standard techniques

  • Divide-and-Conquer
  • Dynamic Programming
  • Greedy Algorithms

Current stuff.

  • There is a nice overview on proof techniques, all with a common example, from Estie Arkin available [here].
  • Welcome to the class!

Group Projects

(Note: This is a guideline, you can extend, and, if you can motivate it, delete parts.)
  • 1. Nisha, Kristofer: Greedy and Matroid Duality (Proof of the Greedy algorithm (with necessary definitions); Some applications of the Greedy algorithm; Matroid duality; Greedy and matroid duality)
  • 2. Anastasia, Manos: Distributed Vertex Coloring and Leader Election (Colouring trees (up to 3 colors); What is leader election?; Leader election in an asynchronous ring; Leader election in a synchronous ring)

Mailing list.

Information will be made available via the mailinglist, contact to be added to the list.

Homework and Lectures.

  • The current homework sets can be found here.
  • Slides/notes can be downloaded from this site - Slides are password protected!
  • The password will be announced in the first seminar.


The course is self-contained, that is, the lecture notes and other course material will be enough to follow the course. For the group presentation material will be made available. Interested students may use the following books for additional self-study:
  • •Bernhard Korte, Jens Vygen: Combinatorial Optimization, Theory and Algorithms. Fourth Edition, 2008, 660 pages, Springer Verlag.
  • • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein: Introduction to Algorithms, Third Edition, 2009, 1312 pages, MIT Press.
  • •Ravindra K. Ahuja, Thomas L. Magnanti , James B. Orlin: Network Flows: Theory, Algorithms and Applications. 1993, 846 pages, Cisco Press.