Exercises are grouped in exercise groups. The normal exercises are meant to be non-mandatory training exercises, which means the users will be able to submit solutions at any time, and the best submission will determine the exercise status (solved, attempted or un-attempted). Assignment exercises are on the other hand meant to be handed in, see assignments for further details.
An exercise group is a set of normal exercises. When creating/editing an exercise group the following properties can be set:
An exercise has the following properties:
The solution to the exercise can be uploaded (optional) and can serve two purposes: The solution can be used to generate the output of the test data automatically (see expected output) and/or the solution can be used as a suggested solution shown to the users. For the solution the following properties are thus available:
Show Suggested Solution
Select when if/when a suggested solution should be shown to the users:
Suggested Solution Type
If the suggested solution is not set to Never, then the type of the suggested solution can be selected:
Finally the test data should be uploaded. The tests are uploaded in test groups, which are sets of tests with the the same configuration (see configuration). An exercise can have as many test groups as you want. For each test group the following properties can be set:
Select when the test group should be run:
Select what should be visible to the users after submitting a solution:
For training exercises we suggest having only one test group with full feedback (visibility set to All), and execution mode to until failure (see configuration). With these settings the users can focus on correcting one test at a time. We also encourage you to upload a suggested solution and let it be visible after the exercise is solved, because we believe that the best way to learn is by trying yourself first, and then afterwards see the correct solution for comparison.
Exercises and exercise groups can be imported to CodeJudge by uploading a single zip-file. To import a single exercise file the uploaded zip-file should contain a folder with the exercise name and the following files in it:
NOTE: This function is very strict with the contents of the uploaded file, and only limited error messages helping diagnosing problems are currently available.
To import an entire exercise group, simply place all the exercise folders in a zip file and upload it. Exercises and exercise groups can also be exported in the same format as described above.
An assignment consists of a set of exercises like an exercise group, but since the solutions to these exercises are to be handed in, the exercises have a due-date. Here the last submission to each exercise before the due date will count as the solution handed in. (If by mistake a user submits a wrong solution as the last, the users other submissions can still be seen in the list of all submissions.)
An assignment have the following properties.
The exercises of an assignment are created exactly as training exercises, see exercise.
For assignments we recommend to always have a test group called "Sample Tests" (or similar) consisting of a few small test cases, with full feedback, and then have another test group with all the hard tests, which is either invisible or has no feedback, depending on what suits the course best. The sample tests will help the users correcting very stupid mistakes in their handed in solution, but they will still not know if the solution is completely correct.
For assignments a complete overview of all hand-ins to the assignment can be seen. Here all users/groups are listed, and for each group/user it can be seen what exercises they have solved or attempted. The submissions of a hand-in will be available by selecting the user/group. Here a comment from the user/group can also be seen (if they have written one), and feedback can be given to them.
After the users have handed in, a plagiarism report can be generated per exercise of the assignment. The plagiarism check compares the solutions two by two, and find identical sequences (variable names are all considered identical and white spaces are ignored), all solutions are then ranked by the amount of code that is identical to another solution. An overview of all solutions' plagiarism score for the exercise will then be available. Each plagiarism score can then be opened to exactly what code is identical between the compared solutions.