Preparation for the Coding Contest
Prior to the coding contest, you can get to know the CatCoder (=test server for the coding contest) by
- opening the CatCoder web page
- registering
- choosing a publicly available game (e.g. …)
Procedure at the Coding Contest
- We quickly present the assignment.
- You solve the problem by playing through the levels of increasing difficulty (in a quasi test-driven way with pre-defined acceptance tests).
- You select the first level.
- You receive the detailed requirements for that level and a test case.
- You develop your solution.
- You request additional test cases from the test server.
- You let your program compute the solution for those test cases and send in your solution to the test server.
- If your program has mastered all test cases of a level, you’re advanced to the next level (see step 4).
Whoever is the first to finish the last level has one the contest. The criteria are therefore: functional correctness and speed.
Preparation
- You register at the test server under your pseudonym.
- You can select to join one or several groups (and leave those groups again).
- You can define new groups (for other participants to join as well).
Development Cycle
You solve the assignment playing through several levels.
The development cycle looks as follows:

- You select a level.
- You request the assignment for that level from the test server.
- You implement the solution.
- You have your solution be acceptance tested as soon as you feel you’ve solved the assignment.
Of course, it is a bad thing to have failures during acceptance testing. So we will count those failures.
During the implementation you can choose freely how to proceed, e.g. you can work in a unit-test-driven way.
Acceptance Testing
The acceptance testing is done in the following way:
- You request the first acceptance test from the test server.
- You compute your solution for the test case.
- You let the test server verify your solution.
- If your solution is correct, you get the next test case from the test server. Otherwise, you have to adapt your program and compute your next guess at the solution to let the test server verify it.
- If your program passes all acceptance tests of a level, you are finished with that level.
Self-Evaluation
You can request from the test server how you do compared to the members of the groups that you’re a member of. You see how far they are (in what level) and how many acceptance test failures they have.
Total Evaluation
- You can request from the test server how everyone does (members of all groups). You see how far they are (in what level) and how many acceptance test failures they have.
- You can request from the test server the distribution of the participants (at which level they are, how many acceptance test failures they have).
The entire functionality of the test server is available via a web page.

