Über ICPC am KIT

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.

Komm zu uns auf Discord

Wir haben einen Discord-Server für alle ICPC-Interessierten am KIT, egal ob Anfänger:in oder Profi. Hier kann man Fragen zu Aufgaben stellen, Teammitglieder finden und bleibt immer auf dem Laufenden. Wir freuen uns, dich dort zu sehen.

Nimm am freien Training teil

Die KIT-ICPCler veranstalten wöchentlich ein freies Training. Dort upsolven wir alte regionals oder nehmen an Codeforces Contests teil und besprechend danach zusammen Lösungen. Ihr seid alle herzlich eingeladen. Für den aktuellen Termin und Updates schaut einfach hier oder auf Discord.

Aufgaben

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. Anders als z.B. bei Hackathons 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.

Teams

Ein ICPC-Team besteht aus drei Student:innen, 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.

Wettbewerbe

Der offizielle ICPC Programmierwettbewerb wird jedes Jahr veranstaltet. Der Wettbewerb findet in zwei Runden statt. Im Herbst jedes Jahres treten Teams aus jeweils drei Student:innen, 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), an dem wir mit zwei bis drei Teams teilnehmen dürfen. Die besten Teams jedes Regionalwettbewerbs haben 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) im Sommer oder den Wintercontest.