Project Competitive Programming

Prof. Rhadamés Carmona, PhD

DegreeStudy ProgrammeExamination RegulationsECTS
M.Sc.Computer Science for Digital Mediaall15
M.Sc.Computer Science and Mediaall15
M.Sc.Human-Computer InteractionPV17 and lower15
M.Sc.Human-Computer InteractionPV1912


The goal of this project is to familiarize students with typical programming challenges in programming contests and approaches for solving them in a team of 2 to 3 students. We will focus on short-term programming contests of 1 to 3 hours and problems in geometry, graph theory and data structures. Students will learn how to quickly develop and implement efficient algorithms and data structures for the given problems.  They study existing problems and solutions as well as classical algorithms and their variations that emerge in various programming problems. Problem sets will be taken from web sites for training such as,, or One of the goals of the project is to motivate the students to prepare for and participate in an actual programming contest.

By the end of the project, students will be able to design and rapidly code efficient algorithms for a variety of non-trivial problems. It will also significantly improve your general programming skills.

German Description

Ziel dieses Projekts ist es, Teams von 2 bis 3 Studierenden mit typischen Programmierherausforderungen in Programmierwettbewerben und Lösungsansätzen vertraut zu machen. Wir konzentrieren uns auf kurze Programmierwettbewerbe von 1 bis 3 Stunden und auf Probleme in Geometrie, Graphentheorie und Datenstrukturen. Die Studierenden lernen, wie man schnell effiziente Algorithmen und Datenstrukturen für die jeweiligen Probleme entwickelt und implementiert.  Sie untersuchen bestehende Probleme und Lösungen sowie klassische Algorithmen und deren Variationen, die bei verschiedenen Programmierproblemen auftreten. Problemsätze werden von Websites wie,, oder übernommen. Eines der Ziele des Projekts ist es, die Studierenden zu motivieren, sich auf einen Programmierwettbewerb vorzubereiten und daran teilzunehmen.

Zum Ende des Projekts werden die Studenten in der Lage sein, effiziente Algorithmen für eine Vielzahl von nicht-trivialen Problemen zu entwerfen und schnell zu implementieren.


  • programming skills in C++, Java or Python
  • successful completion of lectures on algorithmic foundations like "Algorithms and Data Structures"
  • successful completion of lecture "Complexity Theory" is helpful but not mandatory


  • active participation in the project
  • presentation of solutions and regular code reviews
  • final project presentation