Prof. Dr. Tobias Friedrich

Dr. Timo Kötzing

Chair for Algorithm Engineering
Hasso Plattner Institute
Prof.-Dr.-Helmert-Str. 2-3
D-14482 Potsdam

Office: K-2.17
Tel.: +493315509-418
E-Mail: Timo.Koetzing(at)hpi.de

Research Interest

I am interested in the phenomenon of emergence, where from simple starting conditions and simple rules / dynamics surprising results follow. For example, why and how can evolution adapt organisms to a variety of different environments? How can a consensus between equal options be reached, such as driving on the right side of the road? How did societies of humans come up with a language to use for communication?

I study this phenomenon mostly in the area of Bio-Inspired Computing (Theoretical Foundations, Swarm Intelligence, Evolutionary Computation,...). However, I also occasionally work on algorithmic approaches to learning (in particular pattern recognition).


A list of my publications can be found here or on dblp.

Other Scientific Activities

Member of the following program committees.

  • GECCO (2010-present); chair of the PC (theory track) in 2016;
  • PPSN (2012-present);
  • FOGA (2015-present);
  • ALT (2012 - 2015,2017,2019);
  • AAAI (2020);
  • ICML (2019);
  • EvoCop (2018-2020);
  • CEC (2012-2014,2016).

 Invited speaker at the following event.


Just as important as research is teaching. The following gives an overview over my teaching-related activities.


I got the following teaching-related awards.

  • 2018, HPI. "SPITSE!
  • 2017, HPI. "FRITSE
  • 2009, University of Delaware. "Computer and Information Sciences Teaching Assistant Award"

Teaching Teaching

Many courses and workshops on university teaching are given by personalities from the humanities. Contributions from lecturers from STEM subjects can offer a different perspective, which is what I have been doing a few times so far.

  • March 2020, HPI: Workshop "Online-Lehre leicht gemacht"
  • October 2019, HPI: Organizer and contributor for workshop "What it means to be a tutor"
  • April 2019, HPI: Organizer and main contributor for workshop "What it means to be a tutor"
  • October 2018, HPI: Organizer and main contributor for workshop "What it means to be a tutor"
  • June 2016, University of Jena: Speaker at Arbeitstagung MINT-Lehre

Teaching Meetings

An effective way to improve teaching is to talk with colleagues about challenges.

  • October 2021 to May 2022, HPI: Organizer of Competition & Panel Discussion "Utopia of Learning"
  • May 2017 to January 2019, HPI: Co-Organizer for a series "Lecturer Get-Togethers"
  • April 2014 to February 2015, University of Jena: Co-Organizer for a series "Stammtisch Lehren"

Courses taught at the HPI, Potsdam, Germany

Courses taught at the University of Jena, Jena, Germany

Courses taught at the Universität des Saarlandes, Saarbrücken, Germany

Courses taught at the University of Delaware, Newark, DE, USA

  • Spring 2009 CISC 303 -- Automata Theory (an introductory course for theoretical computer science)


The following tools I programmed because I couldn't find an appropriate tool online. I give no warranty on what actually happens when you use them, but feel free to send me bugs. Use a Java VM to execute.

  • Stopwatch. Very small tool to time talks. Counts down minutes and seconds from a specified time, resettable and resizable; counter will turn orange when at most five minutes are left, and red when at most one is left. Accurate to within about one tenth of a second.
  • LaTeXInOneCompiler. Small tool to compile a latex driver file to a single .tex file, recurses down through \include and \input commands and builds a new file called "<filename>InOne.tex". Use by dragging file on the program frame and then dropping. BibTeX inlining optional, %-comments will be removed. Optionally, you get cleaned output, which removes unused commands and useless newlines. This is great when your submission software gives you trouble with multiple source files. Note that this will not change any of your files.
  • LaTeXCompileLock. Another small tool to keep on latex'ing a file whenever it changes (i.e., whenever you saved changes in your editor). This is great when your pdf viewer automatically refreshes (I use it with SumatraPDF). It also recompiles when another .tex-file in the directory changes, in case you spread your sources over several files (looking for files also in subdirectories is optional). Use by dragging driver file on the program frame and then dropping. Stops when you close it. This jar requires Java 7.

Recent Positions

  • Since April 2023:
    Chair Representative at the Hasso Plattner Institute, Potsdam, Germany
  • July 2020 - March 2023:
    Lecturer at the Hasso Plattner Institute, Potsdam, Germany
  • January 2017 - June 2020:
    Senior Researcher at the Hasso Plattner Institute, Potsdam, Germany
  • June 2015 - December 2016:
    Postdoctoral Researcher at the Hasso Plattner Institute, Potsdam, Germany
  • January 2013 - May 2015:
    Postdoctoral Researcher at the University of Jena, Germany
  • September 2009 - December 2012:
    Postdoctoral Researcher at the Max-Planck-Institut für Informatik, Saarbrücken, Germany