Algorithm Animations for Algorithmic Machine Learning and Bioinformatics (*)

Potential supervisors: 

Gato is a software for animating algorithms, see Teaching algorithms, especially graph or combinatorial optimization algorithms, is one of the few very natural applications of multi-media in computer science educations. The objects considered are of a highly dynamic nature and teaching can benefit greatly from an adequate dynamic visualization, especially if non-math or non-cs students are addressed.

We have developed CATBox (Combinatorial Algorithm ToolBox), an interactive course combining a textbook with the visualization software Gato (graph animation toolbox), which improves upon existing
packages for visualization in the following aspects:

- Gato is freely available under the LGPL (Library General Public License) and runs on all platforms supporting Python/Tkinter. There is an interactive web version (see above) available providing most of the functionality in standard browsers and an iOS App nearly complete.

- Gato uses a real programming language, Python, instead of pseudo-code for the presentation of algorithms.
- The visualization is defined through rules and implemented is specific variations of data-types used in algorithms; it is transparent with respect to the algorithm implementation.

The design and its technical realization create an environment in which students can easily experiment with problem instances as well as with algorithms; either by creating variants of existing algorithms or
by implementing from scratch. Note, that at least a rudimentary visualization is obtained automatically.
Gato has also been used by researchers to study and design heuristics for combinatorial optimization problems.

The main focus of Gato has been graph algorithms and combinatorial optimization, and animations for some string algorithms (suffix tree construction) and other areas of bioinformatics. The purpose of the thesis is to develop and implement animations for basic algorithms from machine learning (clustering, regression and classification) and further bioinformatics algorithms.

Student profile: The ideal candidate(s) has/have an interest in algorithms and some background in machine learning, big data, or bioinformatics. Programming experience in Python is necessary.

Further Information and links to papers at

(*) this project is not available during spring 2021

Date range: 
October, 2017 to October, 2020