Exercise Configuration

How to configure an exercise

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
    }
}

Last updated