Am 12. Juni fand zum dritten Mal der Vorentscheid zum ACM Programmierwettbewerb statt, der alljährlich von der Association for Computing Machinery, der weltgrößten und ältesten Vereinigung von Informatikern in den USA, veranstaltet wird. Zwei der zwölf teilnehmenden Teams werden die TU Darmstadt diesen Herbst erneut in 's-Hertogenbosch vertreten.
Jedes Jahr findet im Frühjahr der Programmierwettbewerb der ACM statt, bei dem Teams aus allen Teilen der Welt gegeneinander antreten und ihre Kenntnisse und ihr Können testen: Als ein Team bestehend aus maximal drei Studenten gilt es, in einer vorgegebenen Zeit möglichst viele der Aufgaben zu lösen. Dazu steht allerdings nur ein einziger Computer pro Team zur Verfügung, so daß man sich gut abstimmen muß, um die Zeit optimal zu nutzen. Gewonnen hat das Team, das die meisten Aufgaben gelöst hat. Bei mehreren Teams mit gleichviel gelösten Aufgaben entscheidet die akkumulierte Zeit, die zur Lösung der Aufgaben seit Wettkampfbeginn gebraucht wurde.
Die Probleme kommen aus dem gesamten Spektrum der Informatik: Von Graphenproblemen, Parsern, Simulationen über mathematische Probleme bis hin zu geometrischen Problemen reicht die Palette. Zu schreiben ist immer ein Programm, das Textdaten einliest, diese bearbeitet und das Ergebnis entsprechend der in der Aufgabenbeschreibung spezifizierten Form ausgibt. Die Programme können in den Sprachen C, C++, Pascal oder Java geschrieben werden, wobei wir uns bei unserem internen Wettkampf aber auf C und C++ beschränken müssen, da wir mit Pascal schlechte Erfahrungen gemacht hatten.
Vor den World Finals stehen aber die Regionalentscheide, bei denen eine Vorauswahl getroffen wird. Letztes Jahr nahmen weltweit über 1400 Teams an Regionalentscheiden teil. Die beiden besten Teams der Regionalentscheide fuhren dann weiter zu den Finals in Eindhoven in den Niederlanden, wo dieses Jahr das Team der University of Waterloo als bestes der 62 teilnehmenden Teams gewann. Zum erstenmal fand das Finale in Europa statt, bis dahin waren die Austragungsorte immer in Amerika.
Dieses Jahr hatten sich erfreulicherwaise 13 Teams zu unserem Vorentscheid angemeldet. Durch Werbung mit Plakate und Postings in Newsgruppen sowie durch gezielte Mund- und Mail-Propaganda waren 33 Studenten aus den Fachbereichen Informatik und Physik, die sich bereits als Teams meldeten oder noch Gleichgesinnte suchten, neugierig geworden. Auf einer ersten Vorbesprechung gab es dann die Möglichkeit, Teams zu bilden bzw. seine Kontrahenten kennenzulernen.
Vor dem großen Tag gab es wie üblich einen Testlauf, um mit den Gepflogenheiten vertraut zu werden: Drei einfache Aufgaben sollten jedem die Möglichkeit geben, selbst Lösungen zu erstellen und das System zu testen. Wie auch im vergangenen Jahre stellte uns die Rechnerbetriebsgruppe einen Rechnerpool zur Verfügung und installierte die Wettkampfumgebung. Jede per eMail eingeschickte Lösung wurde automatisch von einem Testierer bearbeitet und gegen einen geheimen Testsatz getestet. Je nach dem, ob die erwünschte Ausgabe geliefert wurde, erhielten die Teams Rückmeldung, ob sie die Aufgabe gelöst hatten, Fehler in der Ausgabe hatten oder ihre Lösung falsch war. Für jede falsche Lösung wurden 20 Strafminuten angerechnet. Außer einigen Problemen mit dem Judge verlieft der Probelauf aber dann doch noch glatt, so daß dem eigentlichen Wettkampf nichts mehr im Wege stand.
Nachdem alles vorbereitet war und die Bekanntmachungen letzte Fragen geklärt hatten, konnte der Wettkampf dann gegen 10:15 Uhr wie geplant beginnen: Sieben Aufgaben galt es in vier Stunden zu lösen. Nach anfänglichen Schwierigkeiten wurden dann doch die ersten Lösungen eingeschickt, von denen aber die meisten falsch waren. Erst nach zwei Stunden häuften sich dann die korrekten Einsendungen und der spannende Teil begann. Für jede gelöste Aufgabe bekam das Team einen Luftballon, so daß man den Fortschritt der anderen mitverfolgen konnte und so auch Hinweise auf den Schwierigkeitsgrade der einzelnen Aufgaben bekommen konnte. Eine halbe Stunde vor Wettkampfende wurde dann die elektronische Anzeige im Netz sowie das Verteilen der Ballons eingestellt, um die Spannung zu erhöhen.
Nach vier Stunden war es dann vorbei und die Teams konnten die Reste des Buffets plündern, daß uns freundlicherweise duch KOM zur Verfügung gestellt worden war. Um die Zeit zu überbrücken, die noch nötig war, um das Endresultat zu überprüfen, wurden die Lösungswege der einzelnen Aufgaben kurz vorgestellt. Dann endlich kam der große Augenblick der Verkündung: Das Team 42 bestehend aus Frank Hutter, Stefan Pochmann und Thomas Strohmann gewann mit 4 gelösten Aufgaben vor dem mit 3 Aufgaben gelösten Team zorc, dem Markus Eckert, Thomas Fischer und Thomas Lussnig angehören. Beide Teams erhalten die Möglichkeit, im Herbst nach 's-Hertogenbosch zu fahren und dort gegen andere Teams aus Nordwest-Europa anzutreten. Die beiden dort Erstplazierten werden dann nach Orlando/USA fliegen und an den Finals teilnehmen. Die Finanzierung der Reise in die Niederlande übernimmt wie auch im letzten Jahr wieder die Firma DANET.
Uns als Veranstaltern hat es viel Spaß gemacht, auch wenn wie immer manche Dinge erst auf den letzten Drücker erledigt wurden und vieles zu tun war. Nächstes Jahr wird es bestimmt wieder einen Wettbewerb innerhalb der TU geben, zu dem wir natürlich wieder rege Beteiligung erwarten, vor allem natürlich auch wieder die Teams, die dieses Jahr schon einmal teilgenommen haben, denn diese kennen den Ablauf dann schon und können sich entsprechend vorbereiten.
Weitere Hinweise zu diesem und anderen Wettkämpfen findet man auf der WWW-Seite http://www.pi.informatik.tu-darmstadt.de/acm-contest/, wo man auch das diesjährige Problemset samt Lösungen herunterladen kann.
Da 's-Hertogenbosch dieses Jahr das zweite Mal den Contest ausrichtet und der Südeuropäische Wettkampf auch nicht mehr in Ulm stattfindet, gibt es die Idee, den Nordwesteuropäischen Contest nach Darmstadt zu holen. Dafür suche ich schon jetzt Interessenten, die mithelfen und mitorganisieren wollen. Auch wer sonst Spaß oder Interesse daran hat, nächstes Jahr den Wettkampf mitzuorganisieren, kann sich bei uns melden.