Über ICPC

Der International Collegiate Programming Contest (ICPC) ist ein jährlich stattfindender weltweiter studentischer Team-Programmierwettbewerb. Die Aufgaben beim ICPC rangieren von kniffligen Implementierungsaufgaben über Aufgaben zu Entwurf und Implementierung von Algorithmen und Datenstrukturen bis hin zu algorithmischer Geometrie und Mathematik. Das Ziel bei jeder Aufgabe ist es, ein Programm zu schreiben, das nach einer gegebenen Spezifikation Eingaben einliest und schnell und fehlerfrei korrekte Ausgaben berechnet.

Die Aufgaben sind rein algorithmischer Natur – für schönen Code oder gute Dokumentation gibt es keine Punkte. Stattdessen wird der Code von der Jury auf geheimen Testfällen ausgeführt. Gibt das Programm auf allen Testfällen die richtige Antwort aus, ohne zu viel Zeit oder Speicher in Anspruch zu nehmen, gibt es einen Punkt. Die meisten Aufgaben sind in eine mehr oder weniger sinnvolle kurze Story verpackt, und oft ist ein wichtiger Schritt der Lösung, die Aufgabe in geeigneten informatischen Worten neu zu formulieren.

Ein ICPC-Team besteht aus drei Studenten, die sich einen Computer teilen. Neben guten Programmierskills, algorithmischen Kenntnissen und Teamwork sind deswegen Zeitmanagement und Koordination unerlässlich, um die begrenzte Computerzeit bestmöglich zu nutzen. Programmiert wird typischerweise in C++ oder Java. Anders als bei Hackathons und ähnlichen Veranstaltungen bekommt man bei einem Wettbewerb zwischen 10 und 13 mundgerechte Aufgaben und hat dann 5 Stunden Zeit, diese zu lösen.

Falls das alles zu abstrakt war, gibt es hier als Beispiel die Aufgaben eines vergangenen Wettbewerbs. Wenn das interessant klingt, komm doch mal bei einem unserer freien Trainings vorbei.

Der offizielle ICPC Programmierwettbewerb wird jedes Jahr veranstaltet. Der Wettbewerb findet in zwei Runden statt. Im Herbst jedes Jahres treten Teams aus jeweils drei Studierenden, die sich in den ersten vier Jahren ihres Studiums befinden müssen, in weltweit 32 Regional Contests gegeneinander an. Für das KIT ist das der Northwestern Europe Regional Contest (NWERC). Das Gewinnerteam jedes Regionalwettbewerbs hat im Frühjahr des Folgejahres die Möglichkeit, an den World Finals teilzunehmen. Neben dem offiziellen ICPC Contest gibt es auch noch andere regionale Wettbewerbe wie den German Collegiate Programming Contest (GCPC) oder den FAU Wintercontest.