Kompetitives Programmieren

​Foto: Gregor Behnke

​Kompetitives Programmieren In Ulm

​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. Hier in Ulm nehmen wir regelmäßig am ICPC, dem International Collegiate Programming Contest, teil. Dabei lösen 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.

Ulmer Team beim NWERC 2017 in Bath
Ulmer Team beim NWERC 2017 in Bath. Foto: Gregor Behnke

​Der Verein

Im Verein zur Förderung des Kompetitiven Programmierens e.V. organisieren sich aktive, ehemalige und zukünftige Teilnehmende an Programmierwettbewerben aus dem Großraum Ulm. Wir trainieren Interessierte für die Teilnahme an den Wettbewerben, veranstalten eigene Übungswettbewerbe und organisieren die Teilnahme an und auch die Reise zu den Wettbewerben. Für das Programmiertraining betreiben wir einen Online-Judge, mit dessen Hilfe man bei uns wie unter echten Wettbewerbsbedingungen das Lösen von Problemen üben kann.

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. Insbesondere möchten wir komplett Unerfahrene ermutigen, in unserem Training vorbeizuschauen und bei Interesse auch regelmäßig teilzunehmen.

Übrigens: Auch uns ist klar, dass unser Vereinsname unhandlich lang ist. Daher kürzen wir diesen meist als CPUlm (Competitive Programming Ulm) ab.

​Unterstützt durch:

​Die Wettbewerbe

Der International Collegiate Programming Contest (ICPC), an dem viele Vereinsmitglieder für die Universität Ulm teilnehmen oder teilgenommen haben, ist in verschiedene Ebenen mit unterschiedlichen Schwierigkeitsgraden organisiert. Die erste Ebene ist der 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.

NWERC 2018 in Eindhoven
NWERC 2018 in Eindhoven. Foto: Max Langerak. Instagram: @maxlangerak
Ulmer Teams lösen Programmieraufgaben beim GCPC 2018
Ulmer Teams lösen Programmieraufgaben beim GCPC 2018. Foto: Gregor Behnke

​Das Training

Um die aktiven Teilnehmenden für die Wettbewerbe vorzubereiten, veranstalten wir ein regelmäßiges Training. Ähnlich einer Lehrveranstaltung im Studium geben wir eine Einführung in unterschiedliche Problemkategorien, häufig verwendete Algorithmen und hilfreiche Strategien zur Fehlersuche. Anhand einer Auswahl von Problemen auf unserem eigenen Online-Judge üben wir die Problemanalyse und die Auswahl geeigneter Algorithmen, geben Hinweise zur Implementierung, und unterstützen beim Debugging der entstandenen Programme. Dabei können die Trainingsteilnehmenden von der Erfahrung der Coaches, die meist selbst erfolgreich an Programmierwettbewerben teilgenommen haben, profitieren.

Aufgrund der aktuell geltenden Kontaktbeschränkungen findet das Training bis auf Weiteres online statt. Der aktuelle Trainingstermin ist Montags ab 17 Uhr. Bei Interesse freuen wir uns über eine E-Mail an info@cpulm.org oder eine Nachricht über unser Kontaktformular.