
Ablauf & Vorbereitung
Sie können schon vor dem Programmierwettbewerb den CatCoder (=Test-Server für den Programmierwettbewerb) kennenlernen, indem Sie:
- die Webseite des CatCoders öffnen: catcoder.catalysts.cc
- sich registrieren
- ein öffentlich verfügbares Spiel auswählen
Ablauf beim Programmierwettbewerb
- Wir stellen die Aufgabenstellung kurz vor.
- Die Aufgabe lösen Sie, indem Sie sich (quasi “testgetrieben”) durch immer schwerer werdende “Levels” spielen.
- Sie wählen einen Level aus.
- Sie erhalten vom Test-Server die Detail-Anforderungen zu diesem Level und einen Testfall.
- Sie programmieren die Lösung dafür.
- Sie holen sich vom Test-Server die Testfälle.
- Sie lassen Ihr Programm die Testfälle lösen und schicken die Lösung an den Test-Server.
- Wenn Ihr Programm alle Testfälle des Levels meistert, kommen Sie in den nächsten Level (siehe Schritt 4).
Wenn es zur Aufgabenstellung passt, kann beim Programmierwettbewerb auch folgende Regel bis zum Schluss für Spannung sorgen:
Nach wie vor gewinnt der Schnellste. Allerdings erhalten die Entwickler der „besten Lösung“ ein angemessenes Zeitguthaben, sodass sie Boden auf den Schnellsten gut machen können. Damit bleibt es bis zum Schluss spannend. Man hat immer eine Chance sich noch zu verbessern.
Vorbereitung
- Man meldet sich als Teilnehmer am Test-Server unter einem Pseudonym an.
- Man kann sich als Mitglied bei einer oder mehreren Gruppen eintragen (und diese Gruppen wieder verlassen).
- Man kann neue Gruppen definieren (denen andere Teilnehmer dann beitreten können).
Programmier-Zyklus
Man arbeitet sich durch die einzelnen Levels.
Der Programmier-Zyklus sieht wie folgt aus:

- Man wählt einen Level.
- Man holt sich vom Test-Server die Aufgabenstellung.
- Man programmiert die Lösung dafür.
- Man holt sich vom Test-Server die Testfälle.
- Man lässt sein Programm die Testfälle lösen und schickt die Lösung zum Abnahmetest an den Test-Server, wenn man glaubt, dass man die Aufgabenstellung entsprechend gelöst hat.
Natürlich ist es schlecht, wenn beim Akzeptanztests Fehler auftreten. Diese Fehler werden beim Programmier-Wettbewerb mitgezählt.
Bei der Implementierung selbst kann man als Entwickler vorgehen, wie man möchte, z.B. kann man selbst unit-testgetrieben entwickeln.
Akzeptanztest
Der Akzeptanztest läuft wie folgt ab:
- Man holt sich vom Test-Server die Akzeptanz-Testfälle
- Man berechnet die Lösungen für die Testfälle.
- Man lässt seine Lösungen für die Testfall vom Test-Server verifizieren.
- Wenn die Lösung nicht passen, muss man sein Programm ausbessern und die neue Lösung zur Verifikation an den Test-Server schicken.
- Wenn man alle Testfälle des Akzeptanztests bestanden hat, hat man den Level geschafft.
Selbsteinschätzung
Man kann vom Test-Server abrufen, wie man selbst im Vergleich zu den anderen Mitgliedern seiner eigenen Gruppen steht (wer ist wie weit, wer hat wie viele Akzeptanztest-Fehler).
Gesamtsicht
- Man kann vom Test-Server abrufen, wie es in allen Gruppen steht (wer wie weit ist, wer wie viele Akzeptanztest-Fehler hat).
- Man kann vom Test-Server abrufen, wie die Verteilung der Leute auf welchem Levels ist und wie die Verteilung der Akzeptanztest-Fehler ist.
Die gesamte Funktionalität des Test-Servers steht über eine Web-Seite zur Verfügung.

