Wednesday, September 06, 2006

Google CodeJam Qualifikationsrunde

Gestern war die Qualifikationsrunde des Programmierwettbewerbes Google CodeJam. Bei dem Wettbewerb werden kleine, aber feine Programmieraufgaben gestellt, die mit einer der Programmiersprachen C++, Java, Python, C# gelöst werden müssen. Bei der Qualifikationsrunde mussten zwei Probleme gelöst werden. Ein einfacherer Problem (mit 250 Punkte) und ein komplexeres Problem mit 750 Punkte. In dieser Runde wird das Feld (irgendwo habe ich etwas von ca. 50000 Teilnehmern gelesen) auf 1000 Teilnehmer zusammen gestaucht.

Ich war dabei. Leider kann man die Betonung auf "war" legen. Es hat total Spa߸ gemacht und im nächsten Jahr bin ich (besser trainiert und vorbereitet) wieder dabei. Die Zeit hat diesmal einfach nicht gereicht. Man hat 60 Minuten Codierzeit. Ich habe gedacht, dies wäre pro Problem und nicht für beide. Die Formulierung in der Anteilung war da in meinen Augen etwas undeutlich. Dort stand das man 60 Minuten Zeit hat, sobald man das Problem geöffnet hat. Es heisst dort auch:

You may have all problems open at the same time - but keep in mind that the timers for each problem will be counting down independent of other problems that may be open.
Also unabhägige Timer. Da stimmt wohl die Beschreibung nicht mehr ganz. Aber egal.

Die Entwicklungsumgebung ist schon ziemlich beschränkt: Kein Cut-and-Paste, kaum Syntaxchecks, etc. Im Grunde wie der Windows Editor (ohne Kopierfunktion) und javac. Mir als Eclipse verwöhnten Entwickler ist es wirklich schwergefallen, damit zu arbeiten.

Insgesamt haben mich die Probleme (die beiden Probleme aus dem Wettbewerb sowie die drei Übungsprobleme) sehr an die Veranstaltung "Methoden des Algorithmenentwurfes" bei Ulf-Peter Schröder erinnert. Alle Aufgaben war nichts, was Ulf-Peter auch nicht an einem guten Tag als Hausaufgabe gestellt hätte. So war eine Übungsaufgabe im Grunde nur ein Max-Flow-Problem mit Knotenbeschränkungen. Aber man sollte auch die Schwierigkeit nicht vergessen, die Idee und den Algorithmusansatz auch in einer Programmiersprache sauber zu programmieren. Dies macht man in "Algorithmenentwurf" typischerweise nicht.

No comments:

Post a Comment