Project Competitive Programming

Prof. Rhadamés Carmona, PhD

DegreeStudy ProgrammeExamination RegulationsECTS
B.Sc.Medieninformatikall15
M.Sc.Computer Science for 
Digital Media
all15
M.Sc.Computer Science and Mediaall15
M.Sc.Human-Computer InteractionPV17 and lower15
M.Sc.Human-Computer InteractionPV1912/18

The goal of this project is to familiarize students with typical programming challenges in short-term programming contests and job interviews. We will focus on problems in geometry, graph theory, dynamic programming 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 contests. Problem sets will be taken from web sites for training such as https://www.spoj.com/https://www.topcoder.com/http://www.codeforces.com/ or https://uva.onlinejudge.org. One of the goals of the project is to motivate the students to prepare for job interviews by big companies and for the participation 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.

Ziel dieses Projekts ist es, Teams von 2 bis 3 Studierenden mit typischen Programmierherausforderungen in Programmierwettbewerben und bei Bewerbungen für IT-Firmen 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 www.spoj.com, www.topcoder.com, www.codeforces.com oder uva.onlinejudge.org ü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. Dies ist auch eine wichtige Fähigkeit für die Bewerbung bei großen IT-Firmen, die regelmäßig Code Interviews durchführen.

Experience in C++, Java or Python programming is required as well as successful completion of related courses such as algorithms and data structures. Knowledge in complexity theory is helpful.

Active participation in the project, presentation of solutions and regular code review, intermediate and final presentation