Skip to content

Exercise Configuration

Haeri edited this page Nov 13, 2019 · 7 revisions

Inside the the Exercise, we expect a config.json file that provides important information about the exercise.

Here are the possible json values;

Values

Name Type Default Required Breaking Description
title String false false The title of the exercise
longTitle String false false Will be displayed as the title on the exercise page
type [code, codeSnippet, multipleChoice, singleChoice, text] true true What type of exercise should this be
language String only for type "code" & "codeSnippet" true If type is "code" oder "codeSnippet", we need to cpecify what coding language it is
isGraded Boolean true false false Should exercise get graded or is it a bonus exericise
maxScore Double 1 false false What are the maximum amount of points that can be get in this exercise
maxSubmits Integer 1 false false Maximum amount of submits possible
options String[] only for type "multipleChoice" & "singleChoice" true A list of options
solutions String[] / regex if 'text' only for type "multipleChoice" & "singleChoice" & "Text" true A list of solutions
hints String[] false false A list of hints that will get displayd for if max score is not reached
executionLimits.memory Integer 64 false true Max ram usage in MebiBytes
executionLimits.cpuCores Integer 1 false true Max core usage
executionLimits.timeout Integer 3000 false true Max execution time in milliseconds
executionLimits.networking Boolean false false true Is networking enabled inside the container
executionLimits.testing Boolean false false true If testing is enabled, memory and cpu restrictions are lifted. Can be used for testing and debugging.
rounding.strategy [ROUND, CEILING, FLOOR] ROUND false false How should the score be rounded
rounding.steps Integer 4 false false In how many pieces should a point be devided (4 => 0, 0.25, 0.5, 0.75, 1)

Example config for a Code Exercise

{
    "title": "UZH Airlines",
    "type":"code",
    "language":"python",
    "maxSubmits": 3,
    "maxScore": 10,
    "rounding": {
        "strategy": "FLOOR",
        "steps": "2"
    },
    "executionLimits": {
        "memory": "64",
        "cpuCores": "1",
        "timeout": "10000",
        "networking": true
    }
}