Kompetitives Programmieren
Programmieren als Wettbewerb?
Beim Thema Programmieren denken viele eher an Angestellte, die alleine im Büro sitzen und den ganzen Tag auf den Bildschirm starren. Ein wenig spannender wird es aber, wenn man das Programmieren als Wettkampfsport betrachtet. In ganz Deutschland nehmen regelmäßig viele Teams am ICPC, dem International Collegiate Programming Contest, teil. Dabei lösen die Teams von bis zu drei Studierenden über einen Zeitraum von fünf Stunden verschiedene komplexe algorithmische Probleme.
Die Herausforderung bei Programmierwettbewerben besteht insbesondere darin, unter Zeitdruck eine effiziente Lösung für ein Programmierproblem zu entwickeln und diese korrekt umzusetzen. Die Programme werden dann automatisiert getestet, und insbesondere auf die Korrektheit in Spezialfällen geprüft.
Um in Programmierwettbewerben zu bestehen, ist viel Erfahrung und noch mehr Übung nötig. Oft sind zur Lösung der gestellten Probleme spezialisierte Algorithmen notwendig, die nicht Bestandteil eines Informatikstudiums sind. Dazu kommt, dass Standardalgorithmen oft an spezifische Problemstellungen angepasst werden müssen, wofür ein tiefgehendes Verständnis der eingesetzten Algorithmen notwendig ist.
Der Verein
Im Verein zur Förderung des Kompetitiven Programmierens e.V. organisieren sich aktive, ehemalige und zukünftige Teilnehmende an Programmierwettbewerben. Wir organisieren den Winter Contest und den GCPC und trainieren Interessierte für die Teilnahme an den Wettbewerben.
Bei uns sind alle willkommen, die sich für die Teilnahme an oder die Organisation von Programmierwettbewerben interessieren, unabhängig von Studiengang oder vorhandener Erfahrung.
Übrigens: Auch uns ist klar, dass unser Vereinsname unhandlich lang ist. Daher kürzen wir diesen meist als CPUlm (Competitive Programming Ulm) ab, da Ulm der Gründungsort des Vereins ist.
Wettbewerbe
Der International Collegiate Programming Contest (ICPC), an dem viele Vereinsmitglieder teilnehmen oder teilgenommen haben, ist in verschiedene Ebenen mit unterschiedlichen Schwierigkeitsgraden organisiert. Die erste Ebene ist die deutschlandweite Runde, der German Collegiate Programming Contest (GCPC), über den die Universitäten die Teams auswählen, die dann an den Regionalrunden und eventuell den World Finals teilnehmen.
Der GCPC findet üblicherweise lokal statt, das heißt, die Teilnehmenden nehmen von ihrer Universität aus über das Internet am Wettbewerb teil. Der nächste Wettbewerb ist die "Regionalrunde", für Deutschland ist das Nordwesteuropa mit dem North Western Europe Regional Contest (NWERC). Die besten Teams in den Regionalrunden dürfen dann an den World Finals teilnehmen.
Die Regionalrunde und die World Finals finden üblicherweise zentral an einer veranstaltenden Universität statt. Vor dem Wettbewerb gibt es ein Begleitprogramm mit Programmpunkten wie Tech Talks oder Stadtführungen. Die Reise zu und die Teilnahme an diesen Wettbewerben stärkt das Teamgefühl und ist eine spannende und wertvolle Erfahrung für alle Teilnehmenden.
Training
Um die aktiven Teilnehmenden für die Wettbewerbe vorzubereiten, veranstalten manche Universitäten ein regelmäßiges Training. Im Rahmen solcher Trainingseinheiten erhalten Teilnehmende eine Einführung in unterschiedliche Problemkategorien, häufig verwendete Algorithmen und hilfreiche Strategien zur Fehlersuche. Sie üben die Problemanalyse und die Auswahl geeigneter Algorithmen, erhalten Hinweise zur Implementierung, und Unterstützung beim Debugging der entstandenen Programme. Dabei können die Trainingsteilnehmenden von der Erfahrung der Coaches, die meist selbst erfolgreich an Programmierwettbewerben teilgenommen haben, profitieren.
Das Training ist von Universität zu Universität unterschiedlich. Bei Interesse freuen wir uns über eine E-Mail an info@cpulm.org oder eine Nachricht über unser Kontaktformular. Wir stellen gerne Kontakt zu den lokalen Trainingsorganisatoren her.