CodeJudge is designed to improve the experience of learning how to program. After you have coded and tested a program, the source code can be uploaded to CodeJudge to quickly verify whether the program is correct or not. CodeJudge will run a couple of tests on the program, and the result of the tests will be presented within seconds. In case the program fails one or more of the tests, CodeJudge will provide good feedback to help you more easily find the mistake.
An exercise in CodeJudge corresponds to a programming exercise from the course. When a solution to the exercise is programmed, the program can be submitted (called a submission) to CodeJudge and automatically be tested.
The exercises in the Exercises menu are meant to be training exercises. There can be submitted any number of solution at any time to these exercises, and the status of the exercise (solved, attempted or un-attempted, see submission status) is determined by the best submission. Therefore after solving the exercise, other solutions can still be submitted and tested without changing anything.
An exercise can have attached relevant files (such as header files, templates etc), which can be downloaded. The first test case and its expected output can usually be shown before submitting any solutions. After the exercise is solved a suggested solution from the course adminstrator can be shown (if such one is uploaded).
A submission is a single attempt of solving an exercise by uploading code to CodeJudge. You can use as many submissions as needed to solve an exercise, but the lesser the better. After submitting the program it is then 'graded', meaning it is compiled and then a number of tests are run to test its correctness.
To submit a solution, first select the language of the solution (if multiple languages are allowed). Then either copy the source directly into the text area, or upload the source code file. If the solution consists of multiple files, the files must be uploaded. If the solution has a specific dictionary structure, this structure must be zipped together and uploaded as a zip-file. Finally press the 'submit'-button.
To each submission a comment can be written and it will then be shown in the list of submissions. This is only for your own use to keep track of your submissions, for instance a comment could be "solution using ArrayList" or likewise.
After submitting, the submission can have one of the following statuses:
After the program is graded the relevant test data becomes accessible. Each test case can have one of the following results:
A specific test case can then be opened in an overlay, where both the input of the test, your program's output, the expected output and error messages if any are shown. The input/output will be truncated for very large tests, but all the test-data can then be downloaded as a zip-file instead.
An assignment consists of a set of exercises similar to the training exercises, but since the solutions to these exercises are to be handed in, the exercises have a due date and most of the test-data will likely be hidden.
Any number of solutions can be submitted to the exercises of an assignment, but only the last submission before the due date will count as the solution handed in. For the visible test data you will be able to see if the solution solved all tests or failed some. If all visible tests are passed, but the exercise has hidden tests, the solution will get the submitted status (see submission status) to indicate that only the visible test-cases are passed but the solution still might be wrong.
Assignments can be handed in in groups (if allowed by the course administrator). To form a group to an assignment, one person has to invite all the other group members, who then have to accept the invitation. When working in a group, all submissions to the assignment are shared, so all members of the group can submit solutions and all members can see each others submissions. This means that all group members can submit the handin submission (the last submission), not only the group leader.
The course administrator can write feedback to the handins, which will then be visible on the assignment page. It is also possible to write a comment to the course administrator together with the solution when handing in.