diff --git a/.github/workflows/assessments-publish.yml b/.github/workflows/assessments-publish.yml new file mode 100644 index 00000000..a5076560 --- /dev/null +++ b/.github/workflows/assessments-publish.yml @@ -0,0 +1,24 @@ +name: codio-assessments-publish +on: + push: + branches: + - guides_v3 + +jobs: + publish: + runs-on: ubuntu-20.04 + steps: + + - uses: actions/checkout@v2 + + - name: Install zstd + run: sudo apt install zstd + + - name: Publish assessments to assessment library + uses: codio/codio-assessments-publish-action@88a108ab0e639b1d2f5011b7a7d0597f5275030f + with: + client-id: ${{ secrets.CODIO_DEMO_CLIENT_ID }} + secret-id: ${{ secrets.CODIO_DEMO_SECRET_ID }} + library-id: 7786d577-e05a-45f8-8eaa-e31842811b41 + dir: ./ + domain: test2-codio.com diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index e81a9f51..9e3725f5 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -2,7 +2,7 @@ name: codio-publish on: push: branches: - - master + - guides_v3 jobs: @@ -23,6 +23,6 @@ jobs: secret-id: ${{ secrets.CODIO_DEMO_SECRET_ID }} course-id: 1a6dd23261de591822b3073056935856 dir: ./ - yml: .guides/yaml_map + yml: yaml_map changelog: ${{ github.event.head_commit.message }} domain: test2-codio.com diff --git a/.guides/assessments/code-output-compare-135304776.json b/.guides/assessments/code-output-compare-135304776.json new file mode 100644 index 00000000..1d1d3c8d --- /dev/null +++ b/.guides/assessments/code-output-compare-135304776.json @@ -0,0 +1,70 @@ +{ + "source": { + "bloomsObjectiveLevel": "5", + "command": "python argumentscount.py", + "guidance": "answer and rationale", + "instructions": "run", + "learningObjectives": "learning", + "metadata": { + "files": [ + "file.js", + "argumentscount.py" + ], + "opened": [ + { + "content": "file.js", + "panelNumber": 0, + "type": "file" + } + ], + "tags": [ + { + "name": "Assessment Type", + "value": "Standard Code Test" + }, + { + "name": "Content", + "value": "code test" + }, + { + "name": "Programming Language", + "value": "python" + } + ] + }, + "name": "standard code test arguments count in output", + "oneTimeTest": true, + "options": { + "ignoreCase": false, + "ignoreNewline": true, + "ignoreWhitespaces": true, + "matchSubstring": false, + "timeout": 30 + }, + "points": 100, + "preExecuteCommand": "sleep 1", + "sequence": [ + { + "arguments": "one two three four", + "feedback": "error feedback1", + "input": "", + "output": "5", + "showFeedback": true + }, + { + "arguments": "1 2 3", + "feedback": "error feedback2", + "input": "", + "output": "4", + "showFeedback": true + } + ], + "showExpectedAnswer": true, + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "showName": true + }, + "taskId": "code-output-compare-135304776", + "type": "code-output-compare" +} \ No newline at end of file diff --git a/.guides/assessments/code-output-compare-145385884.json b/.guides/assessments/code-output-compare-145385884.json new file mode 100644 index 00000000..8f815d4a --- /dev/null +++ b/.guides/assessments/code-output-compare-145385884.json @@ -0,0 +1,75 @@ +{ + "source": { + "arePartialPointsAllowed": true, + "bloomsObjectiveLevel": "", + "command": "python standard_partial_empty.py", + "guidance": "answer and rationale", + "instructions": "run", + "learningObjectives": "", + "metadata": { + "files": [], + "opened": [], + "tags": [ + { + "name": "Assessment Type", + "value": "Standard Code Test" + } + ] + }, + "name": "standard partial empty output", + "oneTimeTest": false, + "options": { + "ignoreCase": false, + "ignoreNewline": true, + "ignoreWhitespaces": true, + "matchSubstring": false, + "timeout": 30 + }, + "points": 100, + "preExecuteCommand": "", + "sequence": [ + { + "arguments": "", + "feedback": "", + "input": "", + "output": "test", + "showFeedback": false + }, + { + "arguments": "1 2 3", + "feedback": "", + "input": "", + "output": "", + "showFeedback": false + }, + { + "arguments": "", + "feedback": "", + "input": "1 2 3", + "output": "", + "showFeedback": false + }, + { + "arguments": "1 2", + "feedback": "", + "input": "", + "output": "test", + "showFeedback": false + }, + { + "arguments": "", + "feedback": "", + "input": "1 2", + "output": "test", + "showFeedback": false + } + ], + "showExpectedAnswer": true, + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "showName": true + }, + "taskId": "code-output-compare-145385884", + "type": "code-output-compare" +} \ No newline at end of file diff --git a/.guides/assessments/code-output-compare-1532525639.json b/.guides/assessments/code-output-compare-1532525639.json new file mode 100644 index 00000000..69fa55da --- /dev/null +++ b/.guides/assessments/code-output-compare-1532525639.json @@ -0,0 +1,70 @@ +{ + "source": { + "bloomsObjectiveLevel": "2", + "command": "python inputcommands.py", + "guidance": "answer and rationale", + "instructions": "run", + "learningObjectives": "learning", + "metadata": { + "files": [ + "file.js", + "inputcommands.py" + ], + "opened": [ + { + "content": "file.js", + "panelNumber": 0, + "type": "file" + } + ], + "tags": [ + { + "name": "Assessment Type", + "value": "Standard Code Test" + }, + { + "name": "Content", + "value": "code test" + }, + { + "name": "Programming Language", + "value": "python" + } + ] + }, + "name": "standard code test inputs in output", + "oneTimeTest": false, + "options": { + "ignoreCase": false, + "ignoreNewline": true, + "ignoreWhitespaces": true, + "matchSubstring": false, + "timeout": 30 + }, + "points": 100, + "preExecuteCommand": "sleep 1", + "sequence": [ + { + "arguments": "", + "feedback": "error feedback1", + "input": "input1\ninput2", + "output": "input1\ninput2", + "showFeedback": true + }, + { + "arguments": "", + "feedback": "error feedback2", + "input": "input1\ninput2\ninput3", + "output": "input1\ninput2", + "showFeedback": true + } + ], + "showExpectedAnswer": true, + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "showName": true + }, + "taskId": "code-output-compare-1532525639", + "type": "code-output-compare" +} \ No newline at end of file diff --git a/.guides/assessments/code-output-compare-1650925873.json b/.guides/assessments/code-output-compare-1650925873.json new file mode 100644 index 00000000..a5c32bc0 --- /dev/null +++ b/.guides/assessments/code-output-compare-1650925873.json @@ -0,0 +1,77 @@ +{ + "source": { + "bloomsObjectiveLevel": "3", + "command": "python empty.py", + "guidance": "answer and rationale", + "instructions": "run", + "learningObjectives": "learning", + "metadata": { + "files": [ + "file.js", + "empty.py" + ], + "opened": [ + { + "content": "file.js", + "panelNumber": 0, + "type": "file" + } + ], + "tags": [ + { + "name": "Assessment Type", + "value": "Standard Code Test" + }, + { + "name": "Content", + "value": "code test" + }, + { + "name": "Programming Language", + "value": "python" + } + ] + }, + "name": "standard code test empty output", + "oneTimeTest": true, + "options": { + "ignoreCase": false, + "ignoreNewline": true, + "ignoreWhitespaces": true, + "matchSubstring": false, + "timeout": 30 + }, + "points": 100, + "preExecuteCommand": "sleep 1", + "sequence": [ + { + "arguments": "", + "feedback": "error feedback1", + "input": "", + "output": "", + "showFeedback": true + }, + { + "arguments": "1 2 3", + "feedback": "error feedback2", + "input": "", + "output": "", + "showFeedback": true + }, + { + "arguments": "", + "feedback": "error feedback3", + "input": "1 2 3", + "output": "", + "showFeedback": true + } + ], + "showExpectedAnswer": true, + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "showName": true + }, + "taskId": "code-output-compare-1650925873", + "type": "code-output-compare" +} \ No newline at end of file diff --git a/.guides/assessments/code-output-compare-272921492.json b/.guides/assessments/code-output-compare-272921492.json new file mode 100644 index 00000000..d5f2be22 --- /dev/null +++ b/.guides/assessments/code-output-compare-272921492.json @@ -0,0 +1,72 @@ +{ + "source": { + "arePartialPointsAllowed": false, + "bloomsObjectiveLevel": "4", + "command": "python allsymbols.py", + "guidance": "answer and rationale", + "instructions": "run", + "learningObjectives": "learning", + "maxAttemptsCount": 5, + "metadata": { + "files": [ + "file.js", + "allsymbols.py" + ], + "opened": [], + "tags": [ + { + "name": "Assessment Type", + "value": "Standard Code Test" + }, + { + "name": "Content", + "value": "code test" + }, + { + "name": "Programming Language", + "value": "python" + } + ] + }, + "name": "standard code test all symbols in output", + "options": { + "ignoreCase": true, + "ignoreNewline": true, + "ignoreWhitespaces": true, + "matchSubstring": false, + "timeout": 30 + }, + "points": 100, + "preExecuteCommand": "sleep 1", + "sequence": [ + { + "arguments": "", + "feedback": "error feedback1", + "input": "", + "output": "qwertyuiopasdfghjklzxcvbnm!@#$%^\u0026*()_-=+\u003c\u003e,./?|[]{};:~`\\", + "showFeedback": true + }, + { + "arguments": "1 2 3", + "feedback": "error feedback2", + "input": "", + "output": "qwertyuiopasdfghjklzxcvbnm!@#$%^\u0026*()_-=+\u003c\u003e,./?|[]{};:~`\\", + "showFeedback": true + }, + { + "arguments": "", + "feedback": "error feedback3", + "input": "input1\ninput2", + "output": "qwertyuiopasdfghjklzxcvbnm!@#$%^\u0026*()_-=+\u003c\u003e,./?|[]{};:~`\\", + "showFeedback": true + } + ], + "showExpectedAnswer": true, + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "showName": true + }, + "taskId": "code-output-compare-272921492", + "type": "code-output-compare" +} \ No newline at end of file diff --git a/.guides/assessments/code-output-compare-364020762.json b/.guides/assessments/code-output-compare-364020762.json new file mode 100644 index 00000000..88d318da --- /dev/null +++ b/.guides/assessments/code-output-compare-364020762.json @@ -0,0 +1,89 @@ +{ + "source": { + "arePartialPointsAllowed": true, + "bloomsObjectiveLevel": "", + "command": "python standard_partial_allsymbols.py", + "guidance": "answer and rationale", + "instructions": "run", + "learningObjectives": "", + "metadata": { + "files": [], + "opened": [], + "tags": [ + { + "name": "Assessment Type", + "value": "Standard Code Test" + } + ] + }, + "name": "standard partial all symbols", + "oneTimeTest": false, + "options": { + "ignoreCase": true, + "ignoreNewline": true, + "ignoreWhitespaces": true, + "matchSubstring": false, + "timeout": 30 + }, + "points": 100, + "preExecuteCommand": "", + "sequence": [ + { + "arguments": "", + "feedback": "", + "input": "", + "output": "qwertyuiopasdfghjklzxcvbnm!@#$%^\u0026*()_-=+\u003c\u003e,./?|[]{};:~`\\", + "showFeedback": false + }, + { + "arguments": "1 2 3", + "feedback": "", + "input": "", + "output": "qwertyuiopasdfghjklzxcvbnm!@#$%^\u0026*()_-=+\u003c\u003e,./?|[]{};:~`\\", + "showFeedback": false + }, + { + "arguments": "", + "feedback": "", + "input": "1 2", + "output": "qwertyuiopasdfghjklzxcvbnm!@#$%^\u0026*()_-=+\u003c\u003e,./?|[]{};:~`\\", + "showFeedback": false + }, + { + "arguments": "1 2", + "feedback": "", + "input": "", + "output": "test", + "showFeedback": false + }, + { + "arguments": "", + "feedback": "", + "input": "1 2", + "output": "test", + "showFeedback": false + }, + { + "arguments": "", + "feedback": "", + "input": "1\n2", + "output": "test", + "showFeedback": false + }, + { + "arguments": "1 2 3", + "feedback": "", + "input": "", + "output": "test", + "showFeedback": false + } + ], + "showExpectedAnswer": true, + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "showName": true + }, + "taskId": "code-output-compare-364020762", + "type": "code-output-compare" +} \ No newline at end of file diff --git a/.guides/assessments/code-output-compare-3689217873.json b/.guides/assessments/code-output-compare-3689217873.json new file mode 100644 index 00000000..5e2abcb3 --- /dev/null +++ b/.guides/assessments/code-output-compare-3689217873.json @@ -0,0 +1,83 @@ +{ + "source": { + "name": "standard partial inputs in output", + "showName": true, + "instructions": "run", + "command": "python standard_partial_inputcommands.py", + "preExecuteCommand": "", + "options": { + "timeout": 30, + "ignoreCase": false, + "ignoreWhitespaces": true, + "ignoreNewline": true, + "matchSubstring": false + }, + "guidance": "answer and rationale", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, + "points": 100, + "showExpectedAnswer": true, + "arePartialPointsAllowed": true, + "sequence": [ + { + "arguments": "", + "input": "input1\ninput2", + "output": "input1\ninput2", + "showFeedback": false, + "feedback": "" + }, + { + "arguments": "", + "input": "input1\ninput2\ninput3", + "output": "input1\ninput2", + "showFeedback": false, + "feedback": "" + }, + { + "arguments": "", + "input": "input1\ninput2\ninput3", + "output": "input1\ninput2\ninput3", + "showFeedback": false, + "feedback": "" + }, + { + "arguments": "", + "input": "input1\ninput2\ninput3", + "output": "input1\ninput2\ninput3", + "showFeedback": false, + "feedback": "" + }, + { + "arguments": "", + "input": "input1\ninput2\ninput3", + "output": "input1\ninput2\ninput3", + "showFeedback": false, + "feedback": "" + } + ], + "metadata": { + "tags": [ + { + "name": "Assessment Type", + "value": "Standard Code Test" + }, + { + "name": "Content", + "value": "content" + }, + { + "name": "Programming Language", + "value": "language" + } + ], + "files": [], + "opened": [] + }, + "bloomsObjectiveLevel": "5", + "learningObjectives": "learning" + }, + "taskId": "code-output-compare-3689217873", + "type": "code-output-compare" +} \ No newline at end of file diff --git a/.guides/assessments/code-output-compare-3793267654.json b/.guides/assessments/code-output-compare-3793267654.json new file mode 100644 index 00000000..e6115d8e --- /dev/null +++ b/.guides/assessments/code-output-compare-3793267654.json @@ -0,0 +1,75 @@ +{ + "source": { + "arePartialPointsAllowed": true, + "bloomsObjectiveLevel": "", + "command": "python standard_partial_argumentscount.py", + "guidance": "answer and rationale", + "instructions": "run", + "learningObjectives": "", + "metadata": { + "files": [], + "opened": [], + "tags": [ + { + "name": "Assessment Type", + "value": "Standard Code Test" + } + ] + }, + "name": "standard partial arguments count", + "oneTimeTest": false, + "options": { + "ignoreCase": false, + "ignoreNewline": true, + "ignoreWhitespaces": true, + "matchSubstring": false, + "timeout": 30 + }, + "points": 100, + "preExecuteCommand": "", + "sequence": [ + { + "arguments": "one two three four", + "feedback": "", + "input": "", + "output": "5", + "showFeedback": false + }, + { + "arguments": "1 2 3", + "feedback": "", + "input": "", + "output": "4", + "showFeedback": false + }, + { + "arguments": "1 2 3 4 5", + "feedback": "", + "input": "", + "output": "10", + "showFeedback": false + }, + { + "arguments": "1", + "feedback": "", + "input": "", + "output": "4", + "showFeedback": false + }, + { + "arguments": "1", + "feedback": "", + "input": "", + "output": "4", + "showFeedback": false + } + ], + "showExpectedAnswer": true, + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "showName": true + }, + "taskId": "code-output-compare-3793267654", + "type": "code-output-compare" +} \ No newline at end of file diff --git a/.guides/assessments/fill-in-the-blanks-1045584002.json b/.guides/assessments/fill-in-the-blanks-1045584002.json new file mode 100644 index 00000000..6233be46 --- /dev/null +++ b/.guides/assessments/fill-in-the-blanks-1045584002.json @@ -0,0 +1,93 @@ +{ + "source": { + "name": "fib regex", + "showName": true, + "instructions": "run", + "showValues": false, + "text": "color or colour - <<>>\nfrom 1 to 100 - <<>>\ngmail check - <<>>\nstart from word \"begin\" - <<>>\nends with word \"end\" - <<>> ", + "distractors": "", + "guidance": "answer and rationale", + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "maxAttemptsCount": 1, + "showExpectedAnswer": true, + "points": 100, + "arePartialPointsAllowed": false, + "metadata": { + "tags": [ + { + "name": "Assessment Type", + "value": "Fill in the Blanks" + }, + { + "name": "Content", + "value": "content" + }, + { + "name": "Programming Language", + "value": "language" + } + ], + "files": [ + "file.js" + ], + "layout": "2-panels-tree", + "pageTitle": "fibs", + "buttonText": "Check It!", + "content": "\n\n<<<<>>>>\n", + "opened": [] + }, + "bloomsObjectiveLevel": "3", + "learningObjectives": "learning", + "tokens": { + "blank": [ + { + "type": "regEx", + "value": "/colou?r/" + }, + { + "type": "regEx", + "value": "/^([1-9][0-9]?|100)$/" + }, + { + "type": "regEx", + "value": "/(\\W|^)[\\w.\\-]{0,25}@(gmail)\\.com(\\W|$)/" + }, + { + "type": "regEx", + "value": "/^begin/" + }, + { + "type": "regEx", + "value": "/end$/" + } + ], + "text": [ + "color or colour - ", + 0, + "\nfrom 1 to 100 - ", + 0, + "\ngmail check - ", + 0, + "\nstart from word \"begin\" - ", + 0, + "\nends with word \"end\" - ", + 0, + " " + ], + "regexPositions": [ + 0, + 1, + 2, + 3, + 4 + ] + } + }, + "taskId": "fill-in-the-blanks-1045584002", + "type": "fill-in-the-blanks", + "linkedId": "cf4bc902-89cd-4843-b2f3-651f448b8826", + "libraryId": "7786d577-e05a-45f8-8eaa-e31842811b41", + "version": 0 +} \ No newline at end of file diff --git a/.guides/assessments/fill-in-the-blanks-2164478132.json b/.guides/assessments/fill-in-the-blanks-2164478132.json new file mode 100644 index 00000000..02136ba1 --- /dev/null +++ b/.guides/assessments/fill-in-the-blanks-2164478132.json @@ -0,0 +1,66 @@ +{ + "source": { + "bloomsObjectiveLevel": "", + "guidance": "answer and rationale", + "instructions": "run", + "learningObjectives": "", + "metadata": { + "files": [ + "file.js" + ], + "opened": [ + { + "content": "file.js", + "panelNumber": 0, + "type": "file" + } + ], + "tags": [ + { + "name": "Assessment Type", + "value": "Fill in the Blanks" + } + ] + }, + "name": "fib oneOf do not show possible values", + "points": 100, + "showExpectedAnswer": true, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true, + "showValues": false, + "text": "place1 or \"place1\" or place2 or \"place2\" \u003c\u003c\u003c\"place1\", \"\"place1\"\", \"place2\", \"\"place2\"\"\u003e\u003e\u003e\nvalue1 or \"value1\" or value2 or \"value2\" \u003c\u003c\u003c\"value1\", \"\"value1\"\", \"value2\", \"\"value2\"\"\u003e\u003e\u003e", + "tokens": { + "blank": [ + { + "type": "oneOf", + "value": [ + "place1", + "\"place1\"", + "place2", + "\"place2\"" + ] + }, + { + "type": "oneOf", + "value": [ + "value1", + "\"value1\"", + "value2", + "\"value2\"" + ] + } + ], + "regexPositions": [], + "text": [ + "place1 or \"place1\" or place2 or \"place2\" ", + 0, + "\nvalue1 or \"value1\" or value2 or \"value2\" ", + 0 + ] + } + }, + "taskId": "fill-in-the-blanks-2164478132", + "type": "fill-in-the-blanks" +} \ No newline at end of file diff --git a/.guides/assessments/fill-in-the-blanks-2420836729.json b/.guides/assessments/fill-in-the-blanks-2420836729.json new file mode 100644 index 00000000..7c0b1b91 --- /dev/null +++ b/.guides/assessments/fill-in-the-blanks-2420836729.json @@ -0,0 +1,62 @@ +{ + "source": { + "bloomsObjectiveLevel": "4", + "guidance": "answer and rationale", + "instructions": "fill in the blank", + "learningObjectives": "learning", + "metadata": { + "files": [ + "file.js" + ], + "opened": [ + { + "content": "file.js", + "panelNumber": 0, + "type": "file" + } + ], + "tags": [ + { + "name": "Assessment Type", + "value": "Fill in the Blanks" + }, + { + "name": "Content", + "value": "fib" + }, + { + "name": "Programming Language", + "value": "any" + } + ] + }, + "name": "fib simple do not show possible values", + "points": 100, + "showExpectedAnswer": true, + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "showName": true, + "showValues": false, + "text": "0 \u003c\u003c\u003c1\u003e\u003e\u003e 2 \u003c\u003c\u003c3\u003e\u003e\u003e 4 \u003c\u003c\u003c5\u003e\u003e\u003e 6", + "tokens": { + "blank": [ + "1", + "3", + "5" + ], + "regexPositions": [], + "text": [ + "0 ", + 0, + " 2 ", + 0, + " 4 ", + 0, + " 6" + ] + } + }, + "taskId": "fill-in-the-blanks-2420836729", + "type": "fill-in-the-blanks" +} \ No newline at end of file diff --git a/.guides/assessments/fill-in-the-blanks-3216557446.json b/.guides/assessments/fill-in-the-blanks-3216557446.json new file mode 100644 index 00000000..44164980 --- /dev/null +++ b/.guides/assessments/fill-in-the-blanks-3216557446.json @@ -0,0 +1,62 @@ +{ + "source": { + "bloomsObjectiveLevel": "5", + "guidance": "answer and rationale", + "instructions": "run", + "learningObjectives": "learning", + "metadata": { + "files": [ + "file.js" + ], + "opened": [ + { + "content": "file.js", + "panelNumber": 0, + "type": "file" + } + ], + "tags": [ + { + "name": "Assessment Type", + "value": "Fill in the Blanks" + }, + { + "name": "Content", + "value": "fib" + }, + { + "name": "Programming Language", + "value": "any" + } + ] + }, + "name": "fib simple show possible values", + "points": 100, + "showExpectedAnswer": true, + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "showName": true, + "showValues": true, + "text": "0 \u003c\u003c\u003c1\u003e\u003e\u003e 2 \u003c\u003c\u003c3\u003e\u003e\u003e 4 \u003c\u003c\u003c5\u003e\u003e\u003e 6", + "tokens": { + "blank": [ + "1", + "3", + "5" + ], + "regexPositions": [], + "text": [ + "0 ", + 0, + " 2 ", + 0, + " 4 ", + 0, + " 6" + ] + } + }, + "taskId": "fill-in-the-blanks-3216557446", + "type": "fill-in-the-blanks" +} \ No newline at end of file diff --git a/.guides/assessments/fill-in-the-blanks-557330530.json b/.guides/assessments/fill-in-the-blanks-557330530.json new file mode 100644 index 00000000..6a889b1c --- /dev/null +++ b/.guides/assessments/fill-in-the-blanks-557330530.json @@ -0,0 +1,67 @@ +{ + "source": { + "bloomsObjectiveLevel": "", + "guidance": "answer and rationale", + "instructions": "run", + "learningObjectives": "", + "metadata": { + "files": [ + "file.js" + ], + "opened": [ + { + "content": "file.js", + "panelNumber": 0, + "type": "file" + } + ], + "tags": [ + { + "name": "Assessment Type", + "value": "Fill in the Blanks" + } + ] + }, + "name": "fib oneOf show possible values", + "points": 100, + "showExpectedAnswer": true, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true, + "showValues": true, + "text": "place1 or \"place1\" or place2 or \"place2\" \u003c\u003c\u003c\"place1\", \"\"place1\"\", \"place2\", \"\"place2\"\"\u003e\u003e\u003e\nvalue1 or \"value1\" or value2 or \"value2\" \u003c\u003c\u003c\"value1\", \"\"value1\"\", \"value2\", \"\"value2\"\"\u003e\u003e\u003e\n", + "tokens": { + "blank": [ + { + "type": "oneOf", + "value": [ + "place1", + "\"place1\"", + "place2", + "\"place2\"" + ] + }, + { + "type": "oneOf", + "value": [ + "value1", + "\"value1\"", + "value2", + "\"value2\"" + ] + } + ], + "regexPositions": [], + "text": [ + "place1 or \"place1\" or place2 or \"place2\" ", + 0, + "\nvalue1 or \"value1\" or value2 or \"value2\" ", + 0, + "\n" + ] + } + }, + "taskId": "fill-in-the-blanks-557330530", + "type": "fill-in-the-blanks" +} \ No newline at end of file diff --git a/.guides/assessments/free-text-1395913156.json b/.guides/assessments/free-text-1395913156.json new file mode 100644 index 00000000..149a0e9e --- /dev/null +++ b/.guides/assessments/free-text-1395913156.json @@ -0,0 +1,45 @@ +{ + "source": { + "arePartialPointsAllowed": false, + "bloomsObjectiveLevel": "2", + "guidance": "answer and rationale1", + "instructions": "run", + "learningObjectives": "learning", + "metadata": { + "files": [ + "file.js" + ], + "opened": [ + { + "content": "file.js", + "panelNumber": 0, + "type": "file" + } + ], + "tags": [ + { + "name": "Assessment Type", + "value": "Free Text" + }, + { + "name": "Content", + "value": "free text" + }, + { + "name": "Programming Language", + "value": "any" + } + ] + }, + "name": "free text simple", + "oneTimeTest": false, + "points": 100, + "previewType": "NONE", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "showName": true + }, + "taskId": "free-text-1395913156", + "type": "free-text" +} \ No newline at end of file diff --git a/.guides/assessments/free-text-3763572986.json b/.guides/assessments/free-text-3763572986.json new file mode 100644 index 00000000..e524a153 --- /dev/null +++ b/.guides/assessments/free-text-3763572986.json @@ -0,0 +1,45 @@ +{ + "source": { + "arePartialPointsAllowed": true, + "bloomsObjectiveLevel": "4", + "guidance": "answer and rationale", + "instructions": "run", + "learningObjectives": "learning", + "metadata": { + "files": [ + "file.js" + ], + "opened": [ + { + "content": "file.js", + "panelNumber": 0, + "type": "file" + } + ], + "tags": [ + { + "name": "Assessment Type", + "value": "Free Text" + }, + { + "name": "Content", + "value": "free text" + }, + { + "name": "Programming Language", + "value": "any" + } + ] + }, + "name": "free text partial", + "oneTimeTest": true, + "points": 100, + "previewType": "RAW", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "showName": true + }, + "taskId": "free-text-3763572986", + "type": "free-text" +} \ No newline at end of file diff --git a/.guides/assessments/free-text-573761361.json b/.guides/assessments/free-text-573761361.json new file mode 100644 index 00000000..da19025e --- /dev/null +++ b/.guides/assessments/free-text-573761361.json @@ -0,0 +1,54 @@ +{ + "source": { + "name": "free text with predefined rubrics", + "showName": true, + "instructions": "run", + "guidance": "answer and rationale", + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "maxAttemptsCount": 5, + "previewType": "NONE", + "arePartialPointsAllowed": true, + "points": 100, + "rubrics": [ + { + "id": "16578323-24c3-9bc1-e1b4-3e92e290b3d7", + "weight": 10, + "message": "-10 predefined points in free text" + }, + { + "id": "45f0d96e-3c02-8591-c4b6-cd58bd65471d", + "weight": 20, + "message": "-20 predefined points in free text" + }, + { + "id": "67f42e77-431a-6a27-92b2-636cba3e5b3f", + "weight": 30, + "message": "-30 predefined points in free text" + } + ], + "metadata": { + "tags": [ + { + "name": "Assessment Type", + "value": "Free Text" + }, + { + "name": "Content", + "value": "content" + }, + { + "name": "Programming Language", + "value": "language" + } + ], + "files": [], + "opened": [] + }, + "bloomsObjectiveLevel": "5", + "learningObjectives": "learning" + }, + "taskId": "free-text-573761361", + "type": "free-text" +} \ No newline at end of file diff --git a/.guides/assessments/free-text-auto-252956828.json b/.guides/assessments/free-text-auto-252956828.json new file mode 100644 index 00000000..8da41123 --- /dev/null +++ b/.guides/assessments/free-text-auto-252956828.json @@ -0,0 +1,40 @@ +{ + "source": { + "arePartialPointsAllowed": false, + "bloomsObjectiveLevel": "6", + "command": "python freetextauto_simple.py", + "guidance": "answer and rationale", + "instructions": "run", + "learningObjectives": "LEARNING OBJECTIVES", + "metadata": { + "files": [ + "file.js", + "run.sh" + ], + "opened": [ + { + "content": "file.js", + "panelNumber": 0, + "type": "file" + } + ], + "tags": [ + { + "name": "Assessment Type", + "value": "Free Text Autograde" + } + ] + }, + "name": "free text auto simple", + "oneTimeTest": false, + "points": 100, + "previewType": "NONE", + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true, + "timeoutSeconds": 40 + }, + "taskId": "free-text-auto-252956828", + "type": "free-text-auto" +} \ No newline at end of file diff --git a/.guides/assessments/free-text-auto-2980779615.json b/.guides/assessments/free-text-auto-2980779615.json new file mode 100644 index 00000000..6dce5960 --- /dev/null +++ b/.guides/assessments/free-text-auto-2980779615.json @@ -0,0 +1,41 @@ +{ + "source": { + "name": "free text auto partial v2", + "showName": true, + "instructions": "run", + "command": "python freetextauto_partial_v2.py", + "timeoutSeconds": 40, + "guidance": "answer and rationale", + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "maxAttemptsCount": 5, + "arePartialPointsAllowed": true, + "previewType": "NONE", + "points": 100, + "metadata": { + "tags": [ + { + "name": "Assessment Type", + "value": "Free Text Autograde" + }, + { + "name": "Content", + "value": "content" + }, + { + "name": "Programming Language", + "value": "language" + } + ], + "files": [ + "file.js" + ], + "opened": [] + }, + "bloomsObjectiveLevel": "3", + "learningObjectives": "learning" + }, + "taskId": "free-text-auto-2980779615", + "type": "free-text-auto" +} \ No newline at end of file diff --git a/.guides/assessments/free-text-auto-4024036708.json b/.guides/assessments/free-text-auto-4024036708.json new file mode 100644 index 00000000..72474923 --- /dev/null +++ b/.guides/assessments/free-text-auto-4024036708.json @@ -0,0 +1,48 @@ +{ + "source": { + "arePartialPointsAllowed": true, + "bloomsObjectiveLevel": "6", + "command": "python freetextauto_partial_v1.py", + "guidance": "answer and rationale", + "instructions": "run", + "learningObjectives": "LEARNING OBJECTIVES", + "metadata": { + "files": [ + "file.js", + "partial.sh" + ], + "opened": [ + { + "content": "file.js", + "panelNumber": 0, + "type": "file" + } + ], + "tags": [ + { + "name": "Assessment Type", + "value": "Free Text Autograde" + }, + { + "name": "Content", + "value": "partial" + }, + { + "name": "Programming Language", + "value": "bash" + } + ] + }, + "name": "free text auto partial v1", + "oneTimeTest": true, + "points": 100, + "previewType": "NONE", + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true, + "timeoutSeconds": 40 + }, + "taskId": "free-text-auto-4024036708", + "type": "free-text-auto" +} \ No newline at end of file diff --git a/.guides/assessments/grade-book-1053141.json b/.guides/assessments/grade-book-1053141.json new file mode 100644 index 00000000..a202cf8e --- /dev/null +++ b/.guides/assessments/grade-book-1053141.json @@ -0,0 +1,34 @@ +{ + "source": { + "arePartialPointsAllowed": false, + "bloomsObjectiveLevel": "1", + "isCollapsedOnStart": false, + "learningObjectives": "", + "metadata": { + "files": [], + "opened": [], + "tags": [ + { + "name": "Assessment Type", + "value": "Grade Book" + }, + { + "name": "Content", + "value": "gradebook" + }, + { + "name": "Programming Language", + "value": "gradebook" + } + ] + }, + "name": "gradebook1", + "points": 100, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true + }, + "taskId": "grade-book-1053141", + "type": "grade-book" +} \ No newline at end of file diff --git a/.guides/assessments/grade-book-2427660357.json b/.guides/assessments/grade-book-2427660357.json new file mode 100644 index 00000000..066e4b0f --- /dev/null +++ b/.guides/assessments/grade-book-2427660357.json @@ -0,0 +1,34 @@ +{ + "source": { + "arePartialPointsAllowed": true, + "bloomsObjectiveLevel": "2", + "isCollapsedOnStart": false, + "learningObjectives": "", + "metadata": { + "files": [], + "opened": [], + "tags": [ + { + "name": "Assessment Type", + "value": "Grade Book" + }, + { + "name": "Content", + "value": "gradebook" + }, + { + "name": "Programming Language", + "value": "gradebook" + } + ] + }, + "name": "gradebook2", + "points": 100, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true + }, + "taskId": "grade-book-2427660357", + "type": "grade-book" +} \ No newline at end of file diff --git a/.guides/assessments/grade-book-3769268793.json b/.guides/assessments/grade-book-3769268793.json new file mode 100644 index 00000000..d0b80262 --- /dev/null +++ b/.guides/assessments/grade-book-3769268793.json @@ -0,0 +1,47 @@ +{ + "source": { + "name": "gradebook3 with predefined rubrics", + "showName": true, + "points": 100, + "arePartialPointsAllowed": true, + "rubrics": [ + { + "id": "fae170fa-2d0b-912e-2381-5941c9aa8c96", + "weight": 5, + "message": "-5 predefined points in gradebook" + }, + { + "id": "7efcdd4a-d3e4-8f0b-2831-42e04cd1b52f", + "weight": 15, + "message": "-15 predefined points in gradebook" + }, + { + "id": "708ce97f-dcda-4f14-a72a-e403cbca14bf", + "weight": 25, + "message": "-25 predefined points in gradebook" + } + ], + "metadata": { + "tags": [ + { + "name": "Assessment Type", + "value": "Grade Book" + }, + { + "name": "Content", + "value": "content" + }, + { + "name": "Programming Language", + "value": "language" + } + ], + "files": [], + "opened": [] + }, + "bloomsObjectiveLevel": "1", + "learningObjectives": "learning" + }, + "taskId": "grade-book-3769268793", + "type": "grade-book" +} \ No newline at end of file diff --git a/.guides/assessments/multiple-choice-1738770040.json b/.guides/assessments/multiple-choice-1738770040.json new file mode 100644 index 00000000..7b51fd87 --- /dev/null +++ b/.guides/assessments/multiple-choice-1738770040.json @@ -0,0 +1,72 @@ +{ + "source": { + "answers": [ + { + "_id": "30a1ed6e-98b9-3fd0-3eb5-245cfde23158", + "answer": "111 111 111 111 111 111 111", + "correct": true + }, + { + "_id": "7db440f4-42da-b699-b718-7a9bfa684605", + "answer": "222 222 222 222 222 222 222", + "correct": false + }, + { + "_id": "4f993dd8-f738-40e4-9355-f54443886e59", + "answer": "333 333 333 333 333 333 333", + "correct": false + }, + { + "_id": "aa3b440b-2a35-cc19-2b4a-84639d8ac788", + "answer": "444 444 444 444 444 444 444", + "correct": false + }, + { + "_id": "f4671d97-118e-2f4e-9b00-4687e41e666e", + "answer": "555 555 555 555 555 555 555", + "correct": false + } + ], + "bloomsObjectiveLevel": "6", + "guidance": "answer and rationale", + "incorrectPoints": 0, + "instructions": "run", + "learningObjectives": "learning", + "metadata": { + "files": [ + "file.js" + ], + "opened": [ + { + "content": "file.js", + "panelNumber": 0, + "type": "file" + } + ], + "tags": [ + { + "name": "Assessment Type", + "value": "Multiple Choice" + }, + { + "name": "Content", + "value": "multi" + }, + { + "name": "Programming Language", + "value": "any" + } + ] + }, + "multipleResponse": false, + "name": "multichoice one response", + "points": 100, + "showExpectedAnswer": true, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true + }, + "taskId": "multiple-choice-1738770040", + "type": "multiple-choice" +} \ No newline at end of file diff --git a/.guides/assessments/multiple-choice-445889773.json b/.guides/assessments/multiple-choice-445889773.json new file mode 100644 index 00000000..389618e0 --- /dev/null +++ b/.guides/assessments/multiple-choice-445889773.json @@ -0,0 +1,72 @@ +{ + "source": { + "answers": [ + { + "_id": "6a9f87b4-a555-a8fb-772e-58b3801bf0f3", + "answer": "111 111 111 111 111 111 111", + "correct": true + }, + { + "_id": "a84e6222-046c-5a4a-3210-df40ba898684", + "answer": "222 222 222 222 222 222 222", + "correct": true + }, + { + "_id": "c6344f0b-6c63-8fe7-00b2-3e120226f67c", + "answer": "333 333 333 333 333 333 333", + "correct": false + }, + { + "_id": "bdadeb57-bfd6-d33c-3e77-26c355ee250b", + "answer": "444 444 444 444 444 444 444", + "correct": false + }, + { + "_id": "1595a358-f87b-4156-a94b-ff4c49ce3255", + "answer": "555 555 555 555 555 555 555", + "correct": false + } + ], + "bloomsObjectiveLevel": "4", + "guidance": "answer and rationale", + "incorrectPoints": 0, + "instructions": "run", + "learningObjectives": "learning", + "metadata": { + "files": [ + "file.js" + ], + "opened": [ + { + "content": "file.js", + "panelNumber": 0, + "type": "file" + } + ], + "tags": [ + { + "name": "Assessment Type", + "value": "Multiple Choice" + }, + { + "name": "Content", + "value": "multi" + }, + { + "name": "Programming Language", + "value": "any" + } + ] + }, + "multipleResponse": true, + "name": "multichoice multiple response", + "points": 100, + "showExpectedAnswer": true, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true + }, + "taskId": "multiple-choice-445889773", + "type": "multiple-choice" +} \ No newline at end of file diff --git a/.guides/assessments/parsons-puzzle-124691793.json b/.guides/assessments/parsons-puzzle-124691793.json new file mode 100644 index 00000000..20dfc184 --- /dev/null +++ b/.guides/assessments/parsons-puzzle-124691793.json @@ -0,0 +1,38 @@ +{ + "source": { + "name": "line based grader", + "showName": true, + "instructions": "

Construct a function by drag&dropping and reordering lines from the\n left to the right.\n The constructed function should return True if the parameter is True and\n return False otherwise.

\n

Note: The correct solution is obviously a dumb way to do\n it. This exercise is merely trying to give an example of a Parson's\n puzzle with js-parsons, not teach you Python :)

", + "initial": "def is_true(boolean_value):\n if boolean_value:\n return True\n return False\n return true #distractor\n ", + "options": "{\"trashId\":\"sortableTrash\",\"max_wrong_lines\":1}", + "grader": "1", + "guidance": "answer and rationale", + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "maxAttemptsCount": 0, + "points": 100, + "metadata": { + "tags": [ + { + "name": "Assessment Type", + "value": "Parsons Puzzle" + }, + { + "name": "Content", + "value": "parsons" + }, + { + "name": "Programming Language", + "value": "parsons" + } + ], + "files": [], + "opened": [] + }, + "bloomsObjectiveLevel": "1", + "learningObjectives": "learning" + }, + "taskId": "parsons-puzzle-124691793", + "type": "parsons-puzzle" +} \ No newline at end of file diff --git a/.guides/assessments/parsons-puzzle-1929622756.json b/.guides/assessments/parsons-puzzle-1929622756.json new file mode 100644 index 00000000..1f06fdca --- /dev/null +++ b/.guides/assessments/parsons-puzzle-1929622756.json @@ -0,0 +1,38 @@ +{ + "source": { + "bloomsObjectiveLevel": "2", + "grader": "2", + "guidance": "answer and rationale", + "initial": "$$toggle::x::y::tmp$$ = $$toggle::x::y::tmp$$\n$$toggle::x::y::tmp$$ = $$toggle::x::y::tmp$$\n$$toggle::x::y::tmp$$ = $$toggle::x::y::tmp$$\n ", + "instructions": "Construct a program that swaps the values of variables \u003ccode\u003ex\u003c/code\u003e and \u003ccode\u003ey\u003c/code\u003e using the\n helper variable \u003ccode\u003etmp\u003c/code\u003e. You can change the names of the variables (\u003cspan class=\"jsparson-toggle\"\u003e\u003c/span\u003e)\n by clicking them.", + "learningObjectives": "", + "metadata": { + "files": [], + "opened": [], + "tags": [ + { + "name": "Assessment Type", + "value": "Parsons Puzzle" + }, + { + "name": "Content", + "value": "parsons" + }, + { + "name": "Programming Language", + "value": "parsons" + } + ] + }, + "name": "variable check grader", + "oneTimeTest": false, + "options": "{\n \n \"vartests\": [{\"initcode\": \"x = 0\\ny=2\", \"code\": \"\", \"message\": \"Testing with initial variable values x = 0 and y = 2\", \"variables\": {\"x\": 2}},\n {\"initcode\": \"x = 3\\ny=4\\n\", \"code\": \"\", \"message\": \"Testing with initial variable values x = 3 and y = 4\", \"variables\": {\"x\": 4, \"y\": 3}}],\n \"lang\": \"en\"\n }", + "points": 100, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true + }, + "taskId": "parsons-puzzle-1929622756", + "type": "parsons-puzzle" +} \ No newline at end of file diff --git a/.guides/assessments/parsons-puzzle-2243390891.json b/.guides/assessments/parsons-puzzle-2243390891.json new file mode 100644 index 00000000..0bf6428c --- /dev/null +++ b/.guides/assessments/parsons-puzzle-2243390891.json @@ -0,0 +1,38 @@ +{ + "source": { + "bloomsObjectiveLevel": "3", + "grader": "3", + "guidance": "answer and rationale", + "initial": "def find_largest(a, b, c):\nif \u003cspan class='jsparson-toggle' data-type='abc'\u003e\u003c/span\u003e \u003e \u003cspan class='jsparson-toggle' data-type='abc'\u003e\u003c/span\u003e:\nif \u003cspan class='jsparson-toggle' data-type='abc'\u003e\u003c/span\u003e \u003e \u003cspan class='jsparson-toggle' data-type='abc'\u003e\u003c/span\u003e:\nreturn \u003cspan class='jsparson-toggle' data-type='abc'\u003e\u003c/span\u003e\nelse:\nreturn \u003cspan class='jsparson-toggle' data-type='abc'\u003e\u003c/span\u003e\nelif \u003cspan class='jsparson-toggle' data-type='abc'\u003e\u003c/span\u003e \u003e \u003cspan class='jsparson-toggle' data-type='abc'\u003e\u003c/span\u003e:\nreturn \u003cspan class='jsparson-toggle' data-type='abc'\u003e\u003c/span\u003e\nelse:\nreturn \u003cspan class='jsparson-toggle' data-type='abc'\u003e\u003c/span\u003e\n ", + "instructions": "Construct a function which returns the largest of the three given arguments.\n You can change the value of a toggleable element (\u003cspan class=\"jsparson-toggle\"\u003e\u003c/span\u003e) by clicking.", + "learningObjectives": "", + "metadata": { + "files": [], + "opened": [], + "tags": [ + { + "name": "Assessment Type", + "value": "Parsons Puzzle" + }, + { + "name": "Content", + "value": "parsons" + }, + { + "name": "Programming Language", + "value": "parsons" + } + ] + }, + "name": "unit tests grader 1", + "oneTimeTest": false, + "options": "{\n \"sortableId\": \"sortable\", \n \"unittests\": \"import unittestparson\\nclass myTests(unittestparson.unittest):\\n def testOne(self):\\n self.assertEqual(find_largest(0, 2, 4),4,\\\"Calling function \u003ccode\u003efind_largest(0, 2, 4)\u003c/code\u003e.\\\")\\n self.assertEqual(find_largest(4, 2, 4),4,\\\"Calling function \u003ccode\u003efind_largest(4, 2, 4)\u003c/code\u003e.\\\")\\n self.assertEqual(find_largest(-5, -1, -4),-1,\\\"Calling function \u003ccode\u003efind_largest(-5, -1, -4)\u003c/code\u003e.\\\")\\n self.assertEqual(find_largest(7, 2, 4),7,\\\"Calling function \u003ccode\u003efind_largest(7, 2, 4)\u003c/code\u003e.\\\")\\n_test_result = myTests().main()\",\n \"toggleTypeHandlers\": {\"abc\": [\"a\", \"b\", \"c\"]}\n }", + "points": 100, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true + }, + "taskId": "parsons-puzzle-2243390891", + "type": "parsons-puzzle" +} \ No newline at end of file diff --git a/.guides/assessments/parsons-puzzle-610337841.json b/.guides/assessments/parsons-puzzle-610337841.json new file mode 100644 index 00000000..c96eb573 --- /dev/null +++ b/.guides/assessments/parsons-puzzle-610337841.json @@ -0,0 +1,38 @@ +{ + "source": { + "bloomsObjectiveLevel": "5", + "grader": "5", + "guidance": "answer and rationale", + "initial": "REPEAT 3 TIMES\n forward(100)\n left(120)\nENDREPEAT\n ", + "instructions": "Construct a program by drag\u0026amp;dropping and reordering lines from the\n left to the right.\n The constructed program should draw a triangle like shown below.", + "learningObjectives": "", + "metadata": { + "files": [], + "opened": [], + "tags": [ + { + "name": "Assessment Type", + "value": "Parsons Puzzle" + }, + { + "name": "Content", + "value": "parsons" + }, + { + "name": "Programming Language", + "value": "parsons" + } + ] + }, + "name": "turtle graphics grader", + "oneTimeTest": false, + "options": "{\n \n \"max_wrong_lines\": 1,\n \"turtleModelCode\": \"modelTurtle.forward(100)\\nmodelTurtle.left(120)\\nmodelTurtle.forward(100)\\nmodelTurtle.left(120)\\nmodelTurtle.forward(100)\\nmodelTurtle.left(120)\",\n \"executable_code\": \"for i in range(0,3):\\nmyTurtle.forward(100)\\nmyTurtle.left(120)\\npass\",\n \"programmingLang\": \"pseudo\"\n }", + "points": 100, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true + }, + "taskId": "parsons-puzzle-610337841", + "type": "parsons-puzzle" +} \ No newline at end of file diff --git a/.guides/assessments/parsons-puzzle-922035714.json b/.guides/assessments/parsons-puzzle-922035714.json new file mode 100644 index 00000000..dd4bada7 --- /dev/null +++ b/.guides/assessments/parsons-puzzle-922035714.json @@ -0,0 +1,38 @@ +{ + "source": { + "bloomsObjectiveLevel": "4", + "grader": "4", + "guidance": "answer and rationale", + "initial": "for (int i=0;i\u003c3;i++) {\nSystem.out.print(\\\"I \\\");\nSystem.out.print(\\\"am \\\");\nSystem.out.print(\\\"a Java program \\\");\n}", + "instructions": "Construct code by reordering and indenting the lines.", + "learningObjectives": "", + "metadata": { + "files": [], + "opened": [], + "tags": [ + { + "name": "Assessment Type", + "value": "Parsons Puzzle" + }, + { + "name": "Content", + "value": "parsons" + }, + { + "name": "Programming Language", + "value": "parsons" + } + ] + }, + "name": "language translation grader 1", + "oneTimeTest": false, + "options": "{\n \n \"max_wrong_lines\": 1,\n \"vartests\": [{\"initcode\": \"output = ''\", \"code\": \"\", \"message\": \"Testing...\", \"variables\": {\"output\": \"I am a Java program I am a Java program I am a Java program \"}}\n ],\n \"executable_code\": \"for x in range(3):\\noutput += 'I '\\noutput += 'am '\\noutput += 'a Java program '\\npass\\n\",\n \"programmingLang\": \"java\"\n }", + "points": 100, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true + }, + "taskId": "parsons-puzzle-922035714", + "type": "parsons-puzzle" +} \ No newline at end of file diff --git a/.guides/assessments/test-1034057722.json b/.guides/assessments/test-1034057722.json new file mode 100644 index 00000000..9a817c20 --- /dev/null +++ b/.guides/assessments/test-1034057722.json @@ -0,0 +1,32 @@ +{ + "source": { + "arePartialPointsAllowed": true, + "bloomsObjectiveLevel": "", + "command": "python default_format_partial_v2.py", + "guidance": "answer and rationale", + "instructions": "run", + "learningObjectives": "", + "maxAttemptsCount": 5, + "metadata": { + "files": [ + "file.js" + ], + "opened": [], + "tags": [ + { + "name": "Assessment Type", + "value": "Advanced Code Test" + } + ] + }, + "name": "advanced code test partial v2 default format", + "points": 100, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true, + "timeoutSeconds": 40 + }, + "taskId": "test-1034057722", + "type": "test" +} \ No newline at end of file diff --git a/.guides/assessments/test-1516475134.json b/.guides/assessments/test-1516475134.json new file mode 100644 index 00000000..7f1b34cc --- /dev/null +++ b/.guides/assessments/test-1516475134.json @@ -0,0 +1,43 @@ +{ + "source": { + "arePartialPointsAllowed": true, + "bloomsObjectiveLevel": "3", + "codeEnvConfig": "{\"type\":\"java\",\"subtype\":\"junit\",\"files\":[{\"filePath\":\"javafolder/TestCalcManyCasesOk.java\",\"className\":\"TestCalcManyCasesOk\"},{\"filePath\":\"javafolder/TestCalcManyCasesFailed.java\",\"className\":\"TestCalcManyCasesFailed\"}],\"partialPoints\":true,\"maxPoints\":100,\"wd\":\"\",\"sources\":\"\",\"libs\":\"\",\"testsources\":\"javafolder\"}", + "command": "python /usr/share/codio/assessments/assessments.py", + "guidance": "answer and rationale", + "instructions": "test", + "learningObjectives": "", + "metadata": { + "files": [ + "javafolder/Calc.java", + "javafolder/TestCalcManyCasesFailed.java", + "javafolder/TestCalcManyCasesOk.java" + ], + "opened": [], + "tags": [ + { + "name": "Assessment Type", + "value": "Advanced Code Test" + }, + { + "name": "Content", + "value": "junit" + }, + { + "name": "Programming Language", + "value": "java" + } + ] + }, + "name": "java junit partial points two classes", + "oneTimeTest": false, + "points": 100, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true, + "timeoutSeconds": 300 + }, + "taskId": "test-1516475134", + "type": "test" +} \ No newline at end of file diff --git a/.guides/assessments/test-1575987488.json b/.guides/assessments/test-1575987488.json new file mode 100644 index 00000000..21c77a04 --- /dev/null +++ b/.guides/assessments/test-1575987488.json @@ -0,0 +1,38 @@ +{ + "source": { + "arePartialPointsAllowed": true, + "bloomsObjectiveLevel": "", + "command": "python html_partial_v2.py", + "guidance": "answer and rationale", + "instructions": "run", + "learningObjectives": "", + "metadata": { + "files": [ + "file.js" + ], + "opened": [ + { + "content": "file.js", + "panelNumber": 0, + "type": "file" + } + ], + "tags": [ + { + "name": "Assessment Type", + "value": "Advanced Code Test" + } + ] + }, + "name": "advanced code test html partial v2", + "oneTimeTest": false, + "points": 100, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true, + "timeoutSeconds": 40 + }, + "taskId": "test-1575987488", + "type": "test" +} \ No newline at end of file diff --git a/.guides/assessments/test-1604017877.json b/.guides/assessments/test-1604017877.json new file mode 100644 index 00000000..b9a0ac32 --- /dev/null +++ b/.guides/assessments/test-1604017877.json @@ -0,0 +1,42 @@ +{ + "source": { + "arePartialPointsAllowed": false, + "bloomsObjectiveLevel": "3", + "codeEnvConfig": "{\"type\":\"java\",\"subtype\":\"junit\",\"files\":[{\"filePath\":\"javafolder/TestCalcOneCaseOk.java\",\"className\":\"TestCalcOneCaseOk\"}],\"partialPoints\":false,\"maxPoints\":100,\"wd\":\"\",\"sources\":\"\",\"libs\":\"\",\"testsources\":\"javafolder\"}", + "command": "python /usr/share/codio/assessments/assessments.py", + "guidance": "answer and rationale", + "instructions": "test", + "learningObjectives": "", + "metadata": { + "files": [ + "javafolder/Calc.java", + "javafolder/TestCalcOneCaseOk.java" + ], + "opened": [], + "tags": [ + { + "name": "Assessment Type", + "value": "Advanced Code Test" + }, + { + "name": "Content", + "value": "junit" + }, + { + "name": "Programming Language", + "value": "java" + } + ] + }, + "name": "java junit one case ok", + "oneTimeTest": false, + "points": 100, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true, + "timeoutSeconds": 300 + }, + "taskId": "test-1604017877", + "type": "test" +} \ No newline at end of file diff --git a/.guides/assessments/test-1798311137.json b/.guides/assessments/test-1798311137.json new file mode 100644 index 00000000..06488c4a --- /dev/null +++ b/.guides/assessments/test-1798311137.json @@ -0,0 +1,47 @@ +{ + "source": { + "arePartialPointsAllowed": false, + "bloomsObjectiveLevel": "2", + "command": "python advanced_simple.py", + "guidance": "answer and rationale", + "instructions": "run", + "learningObjectives": "learning", + "metadata": { + "files": [ + "file.js", + "empty.py" + ], + "opened": [ + { + "content": "file.js", + "panelNumber": 0, + "type": "file" + } + ], + "tags": [ + { + "name": "Assessment Type", + "value": "Advanced Code Test" + }, + { + "name": "Content", + "value": "code test" + }, + { + "name": "Programming Language", + "value": "python" + } + ] + }, + "name": "advanced code test simple", + "oneTimeTest": false, + "points": 100, + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "showName": true, + "timeoutSeconds": 19 + }, + "taskId": "test-1798311137", + "type": "test" +} \ No newline at end of file diff --git a/.guides/assessments/test-2544594776.json b/.guides/assessments/test-2544594776.json new file mode 100644 index 00000000..ead3344b --- /dev/null +++ b/.guides/assessments/test-2544594776.json @@ -0,0 +1,38 @@ +{ + "source": { + "arePartialPointsAllowed": true, + "bloomsObjectiveLevel": "", + "command": "python md_partial_v2.py", + "guidance": "answer and rationale", + "instructions": "run", + "learningObjectives": "", + "metadata": { + "files": [ + "file.js" + ], + "opened": [ + { + "content": "file.js", + "panelNumber": 0, + "type": "file" + } + ], + "tags": [ + { + "name": "Assessment Type", + "value": "Advanced Code Test" + } + ] + }, + "name": "advanced code test md partial v2", + "oneTimeTest": false, + "points": 100, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true, + "timeoutSeconds": 40 + }, + "taskId": "test-2544594776", + "type": "test" +} \ No newline at end of file diff --git a/.guides/assessments/test-2750589735.json b/.guides/assessments/test-2750589735.json new file mode 100644 index 00000000..f8005961 --- /dev/null +++ b/.guides/assessments/test-2750589735.json @@ -0,0 +1,41 @@ +{ + "source": { + "arePartialPointsAllowed": false, + "bloomsObjectiveLevel": "1", + "codeEnvConfig": "{\"type\":\"javascript\",\"subtype\":\"jslint\",\"files\":[\"js_file_jslint_ok.js\"],\"partialPoints\":false,\"maxPoints\":100}", + "command": "python /usr/share/codio/assessments/assessments.py", + "guidance": "answer and rationale", + "instructions": "run", + "learningObjectives": "", + "metadata": { + "files": [ + "js_file_jslint_ok.js" + ], + "opened": [], + "tags": [ + { + "name": "Assessment Type", + "value": "Advanced Code Test" + }, + { + "name": "Content", + "value": "jslint" + }, + { + "name": "Programming Language", + "value": "javascript" + } + ] + }, + "name": "jslint one case ok", + "oneTimeTest": false, + "points": 100, + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "showName": true, + "timeoutSeconds": 300 + }, + "taskId": "test-2750589735", + "type": "test" +} \ No newline at end of file diff --git a/.guides/assessments/test-287466350.json b/.guides/assessments/test-287466350.json new file mode 100644 index 00000000..e050bfc5 --- /dev/null +++ b/.guides/assessments/test-287466350.json @@ -0,0 +1,38 @@ +{ + "source": { + "arePartialPointsAllowed": true, + "bloomsObjectiveLevel": "", + "command": "python txt_partial_v2.py", + "guidance": "answer and rationale", + "instructions": "run", + "learningObjectives": "", + "metadata": { + "files": [ + "file.js" + ], + "opened": [ + { + "content": "file.js", + "panelNumber": 0, + "type": "file" + } + ], + "tags": [ + { + "name": "Assessment Type", + "value": "Advanced Code Test" + } + ] + }, + "name": "advanced code test txt partial v2", + "oneTimeTest": false, + "points": 100, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true, + "timeoutSeconds": 40 + }, + "taskId": "test-287466350", + "type": "test" +} \ No newline at end of file diff --git a/.guides/assessments/test-2899876268.json b/.guides/assessments/test-2899876268.json new file mode 100644 index 00000000..171574c7 --- /dev/null +++ b/.guides/assessments/test-2899876268.json @@ -0,0 +1,41 @@ +{ + "source": { + "arePartialPointsAllowed": false, + "bloomsObjectiveLevel": "3", + "codeEnvConfig": "{\"type\":\"javascript\",\"subtype\":\"jshint\",\"files\":[\"js_file_jshint_ok.js\"],\"partialPoints\":false,\"maxPoints\":100}", + "command": "python /usr/share/codio/assessments/assessments.py", + "guidance": "answer and rationale", + "instructions": "run", + "learningObjectives": "", + "metadata": { + "files": [ + "js_file_jshint_ok.js" + ], + "opened": [], + "tags": [ + { + "name": "Assessment Type", + "value": "Advanced Code Test" + }, + { + "name": "Content", + "value": "jshint" + }, + { + "name": "Programming Language", + "value": "javascript" + } + ] + }, + "name": "jshint one case ok", + "oneTimeTest": false, + "points": 100, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true, + "timeoutSeconds": 300 + }, + "taskId": "test-2899876268", + "type": "test" +} \ No newline at end of file diff --git a/.guides/assessments/test-3188355957.json b/.guides/assessments/test-3188355957.json new file mode 100644 index 00000000..441e85d7 --- /dev/null +++ b/.guides/assessments/test-3188355957.json @@ -0,0 +1,41 @@ +{ + "source": { + "name": "java style one case ok", + "showName": true, + "instructions": "test", + "command": "python /usr/share/codio/assessments/assessments.py", + "codeEnvConfig": "{\"type\":\"java\",\"subtype\":\"style\",\"files\":[\"javafolder/JavaClassStyleOk1.java\"],\"maxPoints\":100,\"configFile\":\"\"}", + "timeoutSeconds": 300, + "guidance": "answer and rationale", + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "maxAttemptsCount": 0, + "points": 100, + "arePartialPointsAllowed": false, + "metadata": { + "tags": [ + { + "name": "Assessment Type", + "value": "Advanced Code Test" + }, + { + "name": "Content", + "value": "java style" + }, + { + "name": "Programming Language", + "value": "java" + } + ], + "files": [ + "javafolder/JavaClassStyleOk1.java" + ], + "opened": [] + }, + "bloomsObjectiveLevel": "6", + "learningObjectives": "learning" + }, + "taskId": "test-3188355957", + "type": "test" +} \ No newline at end of file diff --git a/.guides/assessments/test-3522709050.json b/.guides/assessments/test-3522709050.json new file mode 100644 index 00000000..ef248ed5 --- /dev/null +++ b/.guides/assessments/test-3522709050.json @@ -0,0 +1,47 @@ +{ + "source": { + "arePartialPointsAllowed": true, + "bloomsObjectiveLevel": "1", + "codeEnvConfig": "{\"type\":\"python\",\"subtype\":\"unittest\",\"files\":[\"utest_calc_ok.py\",\"utest_calc_failed.py\",\"pythonfolder/utest_calc_ok.py\",\"pythonfolder/utest_calc_failed.py\"],\"partialPoints\":true,\"maxPoints\":100,\"executable\":\"python\",\"pythonwd\":\"\"}", + "command": "python /usr/share/codio/assessments/assessments.py", + "guidance": "answer and rationale", + "instructions": "run", + "learningObjectives": "", + "metadata": { + "files": [ + "pythonfolder/__init__.py", + "pythonfolder/calc.py", + "pythonfolder/utest_calc_failed.py", + "pythonfolder/utest_calc_ok.py", + "calc.py", + "utest_calc_failed.py", + "utest_calc_ok.py" + ], + "opened": [], + "tags": [ + { + "name": "Assessment Type", + "value": "Advanced Code Test" + }, + { + "name": "Content", + "value": "python utest" + }, + { + "name": "Programming Language", + "value": "python" + } + ] + }, + "name": "python unit test four files partial", + "oneTimeTest": false, + "points": 100, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true, + "timeoutSeconds": 300 + }, + "taskId": "test-3522709050", + "type": "test" +} \ No newline at end of file diff --git a/.guides/assessments/test-3666559878.json b/.guides/assessments/test-3666559878.json new file mode 100644 index 00000000..8431f61e --- /dev/null +++ b/.guides/assessments/test-3666559878.json @@ -0,0 +1,41 @@ +{ + "source": { + "arePartialPointsAllowed": false, + "bloomsObjectiveLevel": "4", + "codeEnvConfig": "{\"type\":\"ruby\",\"subtype\":\"style\",\"files\":[\"rubyfolder/rubystyleok1.rb\"],\"partialPoints\":false,\"maxPoints\":100}", + "command": "python /usr/share/codio/assessments/assessments.py", + "guidance": "answer and rationale", + "instructions": "test", + "learningObjectives": "", + "metadata": { + "files": [ + "rubyfolder/rubystyleok1.rb" + ], + "opened": [], + "tags": [ + { + "name": "Assessment Type", + "value": "Advanced Code Test" + }, + { + "name": "Content", + "value": "ruby style" + }, + { + "name": "Programming Language", + "value": "ruby" + } + ] + }, + "name": "ruby style one case ok", + "oneTimeTest": false, + "points": 100, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true, + "timeoutSeconds": 300 + }, + "taskId": "test-3666559878", + "type": "test" +} \ No newline at end of file diff --git a/.guides/assessments/test-3999572164.json b/.guides/assessments/test-3999572164.json new file mode 100644 index 00000000..a81f26bc --- /dev/null +++ b/.guides/assessments/test-3999572164.json @@ -0,0 +1,47 @@ +{ + "source": { + "arePartialPointsAllowed": true, + "bloomsObjectiveLevel": "3", + "command": "python advanced_partial_v1.py", + "guidance": "answer and rationale", + "instructions": "run", + "learningObjectives": "", + "metadata": { + "files": [ + "file.js", + "advanced.py" + ], + "opened": [ + { + "content": "file.js", + "panelNumber": 0, + "type": "file" + } + ], + "tags": [ + { + "name": "Assessment Type", + "value": "Advanced Code Test" + }, + { + "name": "Content", + "value": "advanced partial" + }, + { + "name": "Programming Language", + "value": "python" + } + ] + }, + "name": "advanced code test partial v1", + "oneTimeTest": true, + "points": 100, + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "showName": true, + "timeoutSeconds": 40 + }, + "taskId": "test-3999572164", + "type": "test" +} \ No newline at end of file diff --git a/.guides/assessments/test-416679421.json b/.guides/assessments/test-416679421.json new file mode 100644 index 00000000..bae38a26 --- /dev/null +++ b/.guides/assessments/test-416679421.json @@ -0,0 +1,41 @@ +{ + "source": { + "arePartialPointsAllowed": false, + "bloomsObjectiveLevel": "3", + "codeEnvConfig": "{\"type\":\"python\",\"subtype\":\"style\",\"files\":[\"pythonfolder/pythonstyleok1.py\"],\"partialPoints\":false,\"maxPoints\":100}", + "command": "python /usr/share/codio/assessments/assessments.py", + "guidance": "answer and rationale", + "instructions": "run forrest run", + "learningObjectives": "", + "metadata": { + "files": [ + "pythonfolder/pythonstyleok1.py" + ], + "opened": [], + "tags": [ + { + "name": "Assessment Type", + "value": "Advanced Code Test" + }, + { + "name": "Content", + "value": "python style" + }, + { + "name": "Programming Language", + "value": "python" + } + ] + }, + "name": "python style one case ok", + "oneTimeTest": false, + "points": 100, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true, + "timeoutSeconds": 300 + }, + "taskId": "test-416679421", + "type": "test" +} \ No newline at end of file diff --git a/.guides/assessments/test-536955473.json b/.guides/assessments/test-536955473.json new file mode 100644 index 00000000..e7bc4296 --- /dev/null +++ b/.guides/assessments/test-536955473.json @@ -0,0 +1,42 @@ +{ + "source": { + "arePartialPointsAllowed": false, + "bloomsObjectiveLevel": "3", + "codeEnvConfig": "{\"type\":\"ruby\",\"subtype\":\"rspec\",\"files\":[\"spec/calculator_ok_spec1.rb\"],\"partialPoints\":false,\"maxPoints\":100}", + "command": "python /usr/share/codio/assessments/assessments.py", + "guidance": "answer and rationale", + "instructions": "test", + "learningObjectives": "", + "metadata": { + "files": [ + "spec/calculator_ok_spec1.rb", + "calculator.rb" + ], + "opened": [], + "tags": [ + { + "name": "Assessment Type", + "value": "Advanced Code Test" + }, + { + "name": "Content", + "value": "ruby rspec" + }, + { + "name": "Programming Language", + "value": "ruby" + } + ] + }, + "name": "ruby rspec one case ok", + "oneTimeTest": false, + "points": 100, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true, + "timeoutSeconds": 300 + }, + "taskId": "test-536955473", + "type": "test" +} \ No newline at end of file diff --git a/.guides/assessments/test-680934443.json b/.guides/assessments/test-680934443.json new file mode 100644 index 00000000..0e2b9818 --- /dev/null +++ b/.guides/assessments/test-680934443.json @@ -0,0 +1,45 @@ +{ + "source": { + "arePartialPointsAllowed": true, + "bloomsObjectiveLevel": "3", + "codeEnvConfig": "{\"type\":\"ruby\",\"subtype\":\"rspec\",\"files\":[\"spec/calculator_failed_spec1.rb\",\"spec/calculator_failed_spec2.rb\",\"spec/calculator_ok_spec1.rb\",\"spec/calculator_ok_spec2.rb\"],\"partialPoints\":true,\"maxPoints\":100}", + "command": "python /usr/share/codio/assessments/assessments.py", + "guidance": "answer and rationale", + "instructions": "test", + "learningObjectives": "", + "metadata": { + "files": [ + "spec/calculator_failed_spec1.rb", + "spec/calculator_failed_spec2.rb", + "spec/calculator_ok_spec1.rb", + "spec/calculator_ok_spec2.rb", + "calculator.rb" + ], + "opened": [], + "tags": [ + { + "name": "Assessment Type", + "value": "Advanced Code Test" + }, + { + "name": "Content", + "value": "ruby rspec" + }, + { + "name": "Programming Language", + "value": "ruby" + } + ] + }, + "name": "ruby rspec four files partial", + "oneTimeTest": false, + "points": 100, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true, + "timeoutSeconds": 300 + }, + "taskId": "test-680934443", + "type": "test" +} \ No newline at end of file diff --git a/.guides/assessments/test-7899135.json b/.guides/assessments/test-7899135.json new file mode 100644 index 00000000..fb2ee332 --- /dev/null +++ b/.guides/assessments/test-7899135.json @@ -0,0 +1,42 @@ +{ + "source": { + "arePartialPointsAllowed": false, + "bloomsObjectiveLevel": "2", + "codeEnvConfig": "{\"type\":\"python\",\"subtype\":\"unittest\",\"files\":[\"utest_calc_ok.py\"],\"partialPoints\":false,\"maxPoints\":100,\"executable\":\"python\",\"pythonwd\":\"\"}", + "command": "python /usr/share/codio/assessments/assessments.py", + "guidance": "answer and rationale", + "instructions": "run forrest run", + "learningObjectives": "", + "metadata": { + "files": [ + "calc.py", + "utest_calc_ok.py" + ], + "opened": [], + "tags": [ + { + "name": "Assessment Type", + "value": "Advanced Code Test" + }, + { + "name": "Content", + "value": "python unin tests" + }, + { + "name": "Programming Language", + "value": "python" + } + ] + }, + "name": "python unit test one case ok", + "oneTimeTest": false, + "points": 100, + "showGuidanceAfterResponseOption": { + "type": "Never" + }, + "showName": true, + "timeoutSeconds": 300 + }, + "taskId": "test-7899135", + "type": "test" +} \ No newline at end of file diff --git a/.guides/assessmentsAnswers.json b/.guides/assessmentsAnswers.json deleted file mode 100644 index e5c46c11..00000000 --- a/.guides/assessmentsAnswers.json +++ /dev/null @@ -1,1192 +0,0 @@ -[ - { - "taskId": "parsons-puzzle-922035714", - "points": 1, - "state": { - "trashHash": "-", - "solutionHash": "0_0-1_1-2_1-3_1-4_0", - "toggleStates": "{}" - }, - "results": [ - { - "points": 1, - "trashHash": "-", - "solutionHash": "0_0-1_1-2_1-3_1-4_0", - "toggleStates": "{}", - "studentCode": "for (int i=0;i<3;i++) {\n System.out.print(\\\"I \\\");\n System.out.print(\\\"am \\\");\n System.out.print(\\\"a Java program \\\");\n}", - "timestamp": 1562915540733, - "state": "pass" - } - ] - }, - { - "taskId": "test-2750589735", - "points": 0, - "results": [ - { - "code": 1, - "output": "It looks like NodeJs is not installed", - "timestamp": 1562915546887, - "state": "fail" - } - ] - }, - { - "taskId": "test-3188355957", - "points": 1, - "results": [ - { - "code": 0, - "output": "Starting audit...\nAudit done.\n", - "timestamp": 1568705956343, - "state": "pass" - }, - { - "code": 1, - "output": "It looks like java is not installed", - "timestamp": 1568705911680, - "state": "fail" - } - ] - }, - { - "taskId": "test-1516475134", - "points": 0, - "results": [ - { - "code": 1, - "output": "20 tests, 6 failures, 0.292s duration\n\nTestCalcManyCasesOk\ngetSumTest1, 0.011s, passed\ngetSumTest2, 0.01s, passed\ngetSumTest3, 0.01s, passed\ngetSumTest4, 0.01s, passed\ngetSumTest5, 0.011s, passed\ngetSumTest6, 0.01s, passed\ngetSumTest7, 0.01s, passed\ngetSumTest8, 0.01s, passed\ngetSumTest9, 0.01s, passed\ngetSumTest10, 0.01s, passed\n\nTestCalcManyCasesFailed\ngetSumTest1, 0.01s, passed\ngetSumTest2, 0.028s, failed\ngetSumTest3, 0.01s, passed\ngetSumTest4, 0.011s, failed\ngetSumTest5, 0.01s, failed\ngetSumTest6, 0.01s, passed\ngetSumTest7, 0.011s, failed\ngetSumTest8, 0.01s, passed\ngetSumTest9, 0.011s, failed\ngetSumTest10, 0.01s, failed\n", - "timestamp": 1568705949321, - "state": "fail" - } - ] - }, - { - "taskId": "test-1604017877", - "points": 1, - "results": [ - { - "code": 0, - "output": "1 tests, 0 failures, 0.058s duration\n\nTestCalcOneCaseOk\ngetSumTest, 0.012s, passed\n", - "timestamp": 1568705952717, - "state": "pass" - } - ] - }, - { - "taskId": "sense-network-3427070522", - "points": 75, - "results": [ - { - "points": 75, - "graded": { - "responseJson": "{\"status\":1,\"data\":{\"cluster_fdbk\":{\"feedback\":\"You're on the right path, but which elements from each index (the result of the hashing function) need to be returned with the resulting list? Is there an elegant way to put them together in one line of code when iterating the list?\",\"hint\":\"You're on the right path, but which elements from each index (the result of the hashing function) need to be returned with the resulting list?\",\"grade\":\"75\",\"next_assignment\":null,\"next_recommendation\":null,\"external_url\":null,\"ra_show_patterns\":\"1\"},\"classification\":{\"files\":[{\"name\":\"if_single_file\",\"compiled\":true,\"lineNumbers\":[331,331,331,331,332,332,333,333,333,333,333,333,333,333,333,333,333],\"sequence\":[\"90\",\"1188\",\"20\",\"20\",\"101\",\"11\",\"91\",\"20\",\"1185\",\"57\",\"20\",\"1186\",\"111\",\"20\",\"112\",\"102\",\"102\"],\"fileUrl\":\"https://app.sense.education/instant_feedback?t=sub&token=a3be9997-4f04-11e9-863b-001dd8b71c70&file_token=d09ff0e2-60de-11e9-b4ac-001dd8b71c70\",\"class_id\":\"dummy class id\"}],\"motifs\":[{\"MotifName\":0,\"ElementsList\":[20,70,20,1186,111,20,112],\"AllLinesLists\":[[20,70,20,1186,111,20,112]],\"OriginalFileName\":\"1026236.py\",\"OriginalLocation\":null}],\"filesMotifs\":[{\"fileName\":\"if_single_file\",\"motifList\":[{\"motifId\":0,\"startRow\":333,\"endRow\":333,\"compareScore\":0.997,\"startTerm\":6,\"endTerm\":16,\"factorScore\":10,\"GoldTermCount\":1,\"Index\":0,\"StudentName\":null}]}],\"CanCluster\":[false,true],\"clusterFiles\":[],\"clusters\":[[4]],\"unknowns\":null,\"paraCard\":{\"MinimumFactorSumPerMotif\":0,\"MaximumFactorSumPerMotif\":0,\"MatchScore\":0,\"MismatchScore\":0,\"GapScore\":0,\"GlocalFlexibility\":0,\"GoldTermFlexibility\":0,\"MinimumStudentPerCluster\":0,\"CanClusterCoverageRatio\":0,\"GoldTermDic\":[],\"LowTermDic\":[],\"RegularTermDic\":[],\"GoldTermFactor\":0,\"RegularTermFactor\":0,\"LowTermFactor\":0,\"MaximumTimeForLabelProcess\":0,\"MaximumRecursionForLabelProcess\":0,\"ChiSquareDic\":[],\"MaximumSegPerStudent\":0,\"MaximumSegPerStudentBySet\":0,\"MaximumMotifsPerLabel\":0,\"MaximumMotifsPerSolution\":0,\"ConstructBankFromSampleSize\":0,\"MaximumLabelsPerSolution\":0,\"NumberOfLabelsPerGroup\":0,\"SkipCheckMinimumForSegment\":false,\"ParaCardLim\":{\"MinGlocal\":0.75,\"MinGtFlex\":0.95,\"MinCanCluster\":0.3,\"NumberOfLabelsPerGroup\":200,\"MaximumMotifsPerLabel\":5,\"MatchScore\":1,\"GapScore\":-1,\"MismatchScore\":-1,\"LowTermFactor\":0.01,\"GoldTermFactor\":10,\"RegularTermFactor\":1,\"ConstructBankFromSampleSize\":350,\"MaximumSegPerStudent\":200,\"MaximumSegPerStudentBySet\":200,\"MaximumTimeForLabelProcess\":1500,\"MaximumRecursionForLabelProcess\":10000,\"MaximumMotifsPerSolution\":1000,\"MaximumLabelsPerSolution\":2000,\"MinimumStudentsPerLabel\":2,\"MultiMaxFactor\":2,\"AestheticMotifs\":true,\"SkipGtHeadCheck\":false,\"MoveRegToLow\":true,\"IndentationCheck\":1,\"ContinuousMode\":false,\"FunctionOnly\":false,\"InterchangeableCriteria\":true,\"ConditionBasedSegments\":0,\"RemoveOneMotifLabels\":true,\"CreateTwoStudentsLabels\":true,\"LabelDistancePenalty\":true,\"RenamePatternsAfterBianco\":true,\"UseAestheticLayer\":false},\"AllStudentDataDic\":[]},\"srv_runtime\":2225},\"patterns_fdbk\":[],\"cluster_id\":4}}" - }, - "timestamp": 1575637500039, - "state": "pass" - } - ] - }, - { - "taskId": "test-1798311137", - "points": 100, - "results": [ - { - "guidance": "answer and rationale", - "format": null, - "output": "test", - "timestamp": 1594384390639, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "format": null, - "output": "test", - "timestamp": 1594379510316, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "format": null, - "output": "test", - "timestamp": 1594379276193, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "format": null, - "output": "", - "timestamp": 1594379156426, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "format": null, - "output": "", - "timestamp": 1594378463397, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "format": null, - "output": "", - "timestamp": 1594376861156, - "state": "pass" - } - ] - }, - { - "taskId": "fill-in-the-blanks-3216557446", - "points": 0, - "state": { - "active": [] - }, - "results": [] - }, - { - "taskId": "fill-in-the-blanks-2420836729", - "points": 0, - "state": { - "active": [] - }, - "results": [] - }, - { - "taskId": "fill-in-the-blanks-557330530", - "points": 0, - "state": { - "active": [] - }, - "results": [] - }, - { - "taskId": "fill-in-the-blanks-2164478132", - "points": 0, - "state": { - "active": [] - }, - "results": [] - }, - { - "taskId": "test-3999572164", - "points": 43, - "results": [ - { - "guidance": "answer and rationale", - "format": null, - "output": "43", - "timestamp": 1594385504253, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "format": null, - "output": "48", - "timestamp": 1594385503040, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "format": null, - "output": "24", - "timestamp": 1594385167208, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "format": null, - "output": "42", - "timestamp": 1594385164982, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "format": null, - "output": "", - "timestamp": 1594385150488, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "format": null, - "output": "", - "timestamp": 1594385149211, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "format": null, - "output": "", - "timestamp": 1594385147886, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "format": null, - "output": "", - "timestamp": 1594385146113, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "format": null, - "output": "5", - "timestamp": 1594379508227, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "format": null, - "output": "5", - "timestamp": 1594379296459, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "format": null, - "output": "5", - "timestamp": 1594379294546, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "format": null, - "output": "", - "timestamp": 1594379154479, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "format": null, - "output": "", - "timestamp": 1594378467166, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "format": null, - "output": "", - "timestamp": 1594378461503, - "state": "pass" - } - ] - }, - { - "taskId": "test-1034057722", - "points": 45, - "results": [ - { - "guidance": null, - "feedback": "text\nnot html
\nnot markdown ### md\npoints = 45", - "format": 1, - "output": "45", - "timestamp": 1594384393684, - "state": "pass" - }, - { - "guidance": null, - "feedback": "text\nnot html
\nnot markdown ### md\npoints = 29", - "format": 1, - "output": "29", - "timestamp": 1594379512539, - "state": "pass" - }, - { - "guidance": null, - "feedback": "text\nnot
html\nnot ### markdown\npoints = 50", - "format": 1, - "output": "50", - "timestamp": 1594379440848, - "state": "pass" - }, - { - "guidance": null, - "feedback": "text\nnot
html\nnot ### markdown", - "format": 1, - "output": "23", - "timestamp": 1594379301342, - "state": "pass" - }, - { - "guidance": null, - "feedback": "text\nnot
html\nnot ### markdown", - "format": 1, - "output": "50", - "timestamp": 1594379251504, - "state": "pass" - }, - { - "guidance": null, - "feedback": "text", - "format": 1, - "output": "15", - "timestamp": 1594379158895, - "state": "pass" - } - ] - }, - { - "taskId": "test-1575987488", - "points": 12, - "results": [ - { - "guidance": null, - "feedback": "
html text
\npoints = 12", - "format": 3, - "output": "", - "timestamp": 1594384396031, - "state": "pass" - }, - { - "guidance": null, - "feedback": "
html text
\npoints = 39", - "format": 3, - "output": "", - "timestamp": 1594379516107, - "state": "pass" - }, - { - "guidance": null, - "feedback": "
html text
\npoints = 38", - "format": 3, - "output": "", - "timestamp": 1594379443519, - "state": "pass" - }, - { - "guidance": null, - "feedback": "
html text
", - "format": 3, - "output": "", - "timestamp": 1594379304090, - "state": "pass" - }, - { - "guidance": null, - "feedback": "
html text
", - "format": 3, - "output": "", - "timestamp": 1594379246943, - "state": "pass" - }, - { - "guidance": null, - "feedback": "
html text
", - "format": 3, - "output": "", - "timestamp": 1594379161082, - "state": "pass" - } - ] - }, - { - "taskId": "test-2544594776", - "points": 43, - "results": [ - { - "guidance": null, - "feedback": "### markdown\npoints = 43", - "format": 2, - "output": "hello", - "timestamp": 1594384402194, - "state": "pass" - }, - { - "guidance": null, - "feedback": "### markdown\npoints = 10", - "format": 2, - "output": "hello", - "timestamp": 1594379518543, - "state": "pass" - }, - { - "guidance": null, - "feedback": "### markdown\npoints = 16", - "format": 2, - "output": "hello", - "timestamp": 1594379451918, - "state": "pass" - }, - { - "guidance": null, - "feedback": "### markdown\npoints = 49", - "format": 2, - "output": "hello", - "timestamp": 1594379445944, - "state": "pass" - }, - { - "guidance": null, - "feedback": "### markdown", - "format": 2, - "output": "hello", - "timestamp": 1594379306450, - "state": "pass" - }, - { - "guidance": null, - "feedback": "### markdown", - "format": 2, - "output": "hello", - "timestamp": 1594379248929, - "state": "pass" - }, - { - "guidance": null, - "feedback": "### markdown", - "format": 2, - "output": "hello", - "timestamp": 1594379165604, - "state": "pass" - } - ] - }, - { - "taskId": "test-287466350", - "points": 23, - "results": [ - { - "guidance": null, - "feedback": "text\nnot html
\nnot markdown ### md\npoints = 23", - "format": 1, - "output": "", - "timestamp": 1594384407440, - "state": "pass" - }, - { - "guidance": null, - "feedback": "text\nnot html
\nnot markdown ### md\npoints = 28", - "format": 1, - "output": "", - "timestamp": 1594379521577, - "state": "pass" - }, - { - "guidance": null, - "feedback": "text\nnot html
\nnot markdown ### md\npoints = 32", - "format": 1, - "output": "", - "timestamp": 1594379480678, - "state": "pass" - }, - { - "guidance": null, - "feedback": "text\nnot
html\nnot ### markdown\npoints = 31", - "format": 1, - "output": "", - "timestamp": 1594379450065, - "state": "pass" - }, - { - "guidance": null, - "feedback": "text\nnot
html\nnot ### markdown\npoints = 14", - "format": 1, - "output": "", - "timestamp": 1594379448415, - "state": "pass" - }, - { - "guidance": null, - "feedback": "text\nnot
html\nnot ### markdown\npoints = 34", - "format": 1, - "output": "", - "timestamp": 1594379400653, - "state": "pass" - }, - { - "guidance": null, - "feedback": "text\nnot
html\nnot ### markdownpoints = 39", - "format": 1, - "output": "", - "timestamp": 1594379391820, - "state": "pass" - }, - { - "guidance": null, - "format": null, - "output": " File \"txt_partial_v2.py\", line 21\n res = send_partial_v2(int(round(grade)), feedback + 'points = ' str(grade), FORMAT_V2_TXT)\n ^\nSyntaxError: invalid syntax", - "timestamp": 1594379382917, - "state": "fail" - }, - { - "guidance": null, - "feedback": "text\nnot
html\nnot ### markdown19", - "format": 1, - "output": "", - "timestamp": 1594379364394, - "state": "pass" - }, - { - "guidance": null, - "feedback": "text\nnot
html\nnot ### markdown29", - "format": 1, - "output": "", - "timestamp": 1594379350146, - "state": "pass" - }, - { - "guidance": null, - "format": null, - "output": "Traceback (most recent call last):\n File \"txt_partial_v2.py\", line 24, in \n main()\n File \"txt_partial_v2.py\", line 21, in main\n res = send_partial_v2(int(round(grade)), feedback + grade, FORMAT_V2_TXT)\nTypeError: cannot concatenate 'str' and 'int' objects", - "timestamp": 1594379337503, - "state": "fail" - }, - { - "guidance": null, - "feedback": "text\nnot
html\nnot ### markdown", - "format": 1, - "output": "", - "timestamp": 1594379242878, - "state": "pass" - }, - { - "guidance": null, - "feedback": "text", - "format": 1, - "output": "", - "timestamp": 1594379181540, - "state": "pass" - }, - { - "guidance": null, - "feedback": "text", - "format": 1, - "output": "", - "timestamp": 1594379168401, - "state": "pass" - } - ] - }, - { - "taskId": "code-output-compare-272921492", - "points": 100, - "results": [ - { - "guidance": "answer and rationale", - "output": "{\"sequence\": [{\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}]}", - "timestamp": 1595325516440, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "output": "{\"sequence\": [{\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}]}", - "timestamp": 1594967685415, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "output": "{\"sequence\": [{\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}]}", - "timestamp": 1594380232401, - "state": "pass" - } - ] - }, - { - "taskId": "code-output-compare-1650925873", - "points": 100, - "results": [ - { - "guidance": "answer and rationale", - "output": "{\"sequence\": [{\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"\"}]}", - "timestamp": 1595325513485, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "output": "{\"sequence\": [{\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"\"}]}", - "timestamp": 1594967682391, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "output": "{\"sequence\": [{\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"\"}]}", - "timestamp": 1594380234722, - "state": "pass" - } - ] - }, - { - "taskId": "code-output-compare-135304776", - "points": 100, - "results": [ - { - "guidance": "answer and rationale", - "output": "{\"sequence\": [{\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"5\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"4\\n\"}]}", - "timestamp": 1595325520893, - "state": "pass" - } - ] - }, - { - "taskId": "code-output-compare-1532525639", - "points": 100, - "results": [ - { - "guidance": "answer and rationale", - "output": "{\"sequence\": [{\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"input1\\ninput2\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"input1\\ninput2\\n\"}]}", - "timestamp": 1595325525212, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "output": "{\"sequence\": [{\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"input1\\ninput2\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"input1\\ninput2\\n\"}]}", - "timestamp": 1594967692680, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "output": "{\"sequence\": [{\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"input1\\ninput2\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"input1\\ninput2\\n\"}]}", - "timestamp": 1594380243951, - "state": "pass" - } - ] - }, - { - "taskId": "free-text-auto-4024036708", - "points": 77, - "state": { - "text": "77" - }, - "results": [ - { - "points": 77, - "comments": "77 points", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "77", - "timestamp": 1594384068553, - "state": "pass" - }, - { - "points": 55, - "comments": "55 points", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "55", - "timestamp": 1594383944751, - "state": "pass" - }, - { - "points": 0, - "comments": "-5 points", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "-5", - "timestamp": 1594383938866, - "state": "fail" - }, - { - "points": 100, - "comments": "125 points", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "125", - "timestamp": 1594383932263, - "state": "pass" - }, - { - "points": 12, - "comments": "12 points", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "12", - "timestamp": 1594383928645, - "state": "pass" - }, - { - "points": 12, - "comments": "12 points", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "12", - "timestamp": 1594383587632, - "state": "pass" - }, - { - "points": 12, - "comments": "12 points", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "12", - "timestamp": 1594383343203, - "state": "pass" - }, - { - "points": 0, - "comments": "Traceback (most recent call last):\n File \"freetextauto_partial_v1.py\", line 32, in \n main()\n File \"freetextauto_partial_v1.py\", line 11, in main\n grade = int(text) \nValueError: invalid literal for int() with base 10: '12s'Traceback (most recent call last):\n File \"freetextauto_partial_v1.py\", line 32, in \n main()\n File \"freetextauto_partial_v1.py\", line 11, in main\n grade = int(text) \nValueError: invalid literal for int() with base 10: '12s'", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "12s", - "timestamp": 1594383333769, - "state": "fail" - }, - { - "points": 0, - "comments": "Traceback (most recent call last):\n File \"freetextauto_partial_v1.py\", line 32, in \n main()\n File \"freetextauto_partial_v1.py\", line 11, in main\n grade = int(text) \nValueError: invalid literal for int() with base 10: '12s'Traceback (most recent call last):\n File \"freetextauto_partial_v1.py\", line 32, in \n main()\n File \"freetextauto_partial_v1.py\", line 11, in main\n grade = int(text) \nValueError: invalid literal for int() with base 10: '12s'", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "12s", - "timestamp": 1594383148812, - "state": "fail" - }, - { - "points": 12, - "comments": "12 points", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "12", - "timestamp": 1594383142242, - "state": "pass" - }, - { - "points": 100, - "comments": "123 points", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "123", - "timestamp": 1594383140157, - "state": "pass" - }, - { - "points": 100, - "comments": "123 points", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "123", - "timestamp": 1594383130359, - "state": "pass" - }, - { - "points": 0, - "comments": "-1 points", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "-1", - "timestamp": 1594383125237, - "state": "fail" - }, - { - "points": 0, - "comments": "0 points", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "0", - "timestamp": 1594383120784, - "state": "fail" - }, - { - "points": 11, - "comments": "11 points", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "11", - "timestamp": 1594383114895, - "state": "pass" - }, - { - "points": 10, - "comments": "10 points", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "10", - "timestamp": 1594383111717, - "state": "pass" - }, - { - "points": 10, - "comments": "10 points", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "10", - "timestamp": 1594383004605, - "state": "pass" - }, - { - "points": 1, - "comments": "1 point", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "1", - "timestamp": 1594383000120, - "state": "pass" - }, - { - "points": 1, - "comments": "1 point", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "1", - "timestamp": 1594382957309, - "state": "pass" - } - ] - }, - { - "taskId": "free-text-auto-252956828", - "points": 100, - "state": { - "text": "yes" - }, - "results": [ - { - "points": 100, - "comments": "hello", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "yes", - "timestamp": 1594384113960, - "state": "pass" - }, - { - "points": 100, - "comments": "hello", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "yes", - "timestamp": 1594384079650, - "state": "pass" - }, - { - "points": 100, - "comments": "hello", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "yes", - "timestamp": 1594383958686, - "state": "pass" - }, - { - "points": 0, - "comments": "hello", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "yess", - "timestamp": 1594383591423, - "state": "fail" - }, - { - "points": 0, - "comments": "hello", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "yess", - "timestamp": 1594383337484, - "state": "fail" - }, - { - "points": 100, - "comments": "hello", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "yes", - "timestamp": 1594383137222, - "state": "pass" - }, - { - "points": 100, - "comments": "hello", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "yes", - "timestamp": 1594383007251, - "state": "pass" - }, - { - "points": 100, - "comments": "", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "yes", - "timestamp": 1594382964319, - "state": "pass" - } - ] - }, - { - "taskId": "free-text-auto-2980779615", - "points": 77, - "state": { - "text": "77" - }, - "results": [ - { - "points": 77, - "comments": "hello", - "feedback": "## 77 points", - "format": 2, - "guidance": null, - "status": "DONE", - "answer": "77", - "timestamp": 1594384075013, - "state": "pass" - }, - { - "points": 88, - "comments": "hello", - "feedback": "## 88 points", - "format": 2, - "guidance": null, - "status": "DONE", - "answer": "88", - "timestamp": 1594384071700, - "state": "pass" - }, - { - "points": 88, - "comments": "hello", - "feedback": "## 88 points", - "format": 2, - "guidance": null, - "status": "DONE", - "answer": "88", - "timestamp": 1594383988686, - "state": "pass" - }, - { - "points": 0, - "comments": "hello\nInvalid Grade: Grades can only be whole numbers from 0 to 100. Contact your class instructor(s) for assistance.", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "-11", - "timestamp": 1594383982046, - "state": "fail" - }, - { - "points": 11, - "comments": "hello", - "feedback": "## 11 points", - "format": 2, - "guidance": null, - "status": "DONE", - "answer": "11", - "timestamp": 1594383977479, - "state": "pass" - }, - { - "points": 0, - "comments": "hello\nInvalid Grade: Grades can only be whole numbers from 0 to 100. Contact your class instructor(s) for assistance.", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "111", - "timestamp": 1594383968501, - "state": "fail" - }, - { - "points": 11, - "comments": "hello", - "feedback": "## 11 points", - "format": 2, - "guidance": null, - "status": "DONE", - "answer": "11", - "timestamp": 1594383964718, - "state": "pass" - }, - { - "points": 1, - "comments": "hello", - "feedback": "## 1 points", - "format": 2, - "guidance": null, - "status": "DONE", - "answer": "1", - "timestamp": 1594383961224, - "state": "pass" - }, - { - "points": 1, - "comments": "hello", - "feedback": "## 1 points", - "format": 2, - "guidance": null, - "status": "DONE", - "answer": "1", - "timestamp": 1594383915877, - "state": "pass" - }, - { - "points": 1, - "comments": "hello", - "feedback": "## 1 points", - "format": 2, - "guidance": null, - "status": "DONE", - "answer": "1", - "timestamp": 1594383620371, - "state": "pass" - }, - { - "points": 1, - "comments": "hello", - "feedback": "## 01 points", - "format": 2, - "guidance": null, - "status": "DONE", - "answer": "01", - "timestamp": 1594383617344, - "state": "pass" - }, - { - "points": 0, - "comments": "hello", - "feedback": "## 0 points", - "format": 2, - "guidance": null, - "status": "DONE", - "answer": "0", - "timestamp": 1594383612865, - "state": "fail" - }, - { - "points": 0, - "comments": "hello\nInvalid Grade: Grades can only be whole numbers from 0 to 100. Contact your class instructor(s) for assistance.", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "-1", - "timestamp": 1594383606370, - "state": "fail" - }, - { - "points": 0, - "comments": "hello\nInvalid Grade: Grades can only be whole numbers from 0 to 100. Contact your class instructor(s) for assistance.", - "format": null, - "guidance": null, - "status": "DONE", - "answer": "122", - "timestamp": 1594383599650, - "state": "fail" - }, - { - "points": 11, - "comments": "hello", - "feedback": "## 11 points", - "format": 2, - "guidance": null, - "status": "DONE", - "answer": "11", - "timestamp": 1594383594815, - "state": "pass" - } - ] - }, - { - "taskId": "code-output-compare-145385884", - "points": 40, - "results": [ - { - "guidance": "answer and rationale", - "output": "{\"sequence\": [{\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"\"}]}", - "timestamp": 1595325813187, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "output": "{\"sequence\": [{\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"\"}]}", - "timestamp": 1595325533771, - "state": "fail" - }, - { - "guidance": "answer and rationale", - "output": "{\"sequence\": [{\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"\"}]}", - "timestamp": 1595325527039, - "state": "fail" - }, - { - "guidance": "answer and rationale", - "output": "{\"sequence\": [{\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"\"}]}", - "timestamp": 1595325134755, - "state": "fail" - } - ] - }, - { - "taskId": "code-output-compare-364020762", - "points": 42, - "results": [ - { - "guidance": "answer and rationale", - "output": "{\"sequence\": [{\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}]}", - "timestamp": 1595325816260, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "output": "{\"sequence\": [{\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+<>,./?|[]{};:~`\\\\\\n\"}]}", - "timestamp": 1595325137351, - "state": "fail" - } - ] - }, - { - "taskId": "code-output-compare-3793267654", - "points": 40, - "results": [ - { - "guidance": "answer and rationale", - "output": "{\"sequence\": [{\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"5\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"4\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"6\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"2\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"2\\n\"}]}", - "timestamp": 1595325820187, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "output": "{\"sequence\": [{\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"5\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"4\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"6\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"2\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"2\\n\"}]}", - "timestamp": 1595325203679, - "state": "fail" - }, - { - "guidance": "answer and rationale", - "output": "{\"sequence\": [{\"returnCode\": 2, \"stderr\": \"python: can't open file 'standard_partial_argumentscount.py': [Errno 2] No such file or directory\\n\", \"passed\": false, \"stdout\": \"\"}, {\"returnCode\": 2, \"stderr\": \"python: can't open file 'standard_partial_argumentscount.py': [Errno 2] No such file or directory\\n\", \"passed\": false, \"stdout\": \"\"}, {\"returnCode\": 2, \"stderr\": \"python: can't open file 'standard_partial_argumentscount.py': [Errno 2] No such file or directory\\n\", \"passed\": false, \"stdout\": \"\"}, {\"returnCode\": 2, \"stderr\": \"python: can't open file 'standard_partial_argumentscount.py': [Errno 2] No such file or directory\\n\", \"passed\": false, \"stdout\": \"\"}, {\"returnCode\": 2, \"stderr\": \"python: can't open file 'standard_partial_argumentscount.py': [Errno 2] No such file or directory\\n\", \"passed\": false, \"stdout\": \"\"}]}", - "timestamp": 1595325149666, - "state": "fail" - } - ] - }, - { - "taskId": "code-output-compare-3689217873", - "points": 40, - "results": [ - { - "guidance": "answer and rationale", - "output": "{\"sequence\": [{\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"input1\\ninput2\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"input1\\ninput2\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"input1\\ninput2\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"input1\\ninput2\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"input1\\ninput2\\n\"}]}", - "timestamp": 1595325824655, - "state": "pass" - }, - { - "guidance": "answer and rationale", - "output": "{\"sequence\": [{\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"input1\\ninput2\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": true, \"stdout\": \"input1\\ninput2\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"input1\\ninput2\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"input1\\ninput2\\n\"}, {\"returnCode\": 0, \"stderr\": \"\", \"passed\": false, \"stdout\": \"input1\\ninput2\\n\"}]}", - "timestamp": 1595325211788, - "state": "fail" - } - ] - } -] \ No newline at end of file diff --git a/.guides/book.json b/.guides/book.json deleted file mode 100644 index 3dc15d46..00000000 --- a/.guides/book.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "name": "rep1", - "children": [ - { - "title": "Code tests", - "id": "d101420d-8240-a7b6-fc4a-871f702fea69", - "type": "chapter", - "children": [ - { - "title": "advanced code tests", - "id": "83a97204-cf44-4e41-24fe-94a8003bc862", - "type": "page", - "pageId": "83a97204-cf44-4e41-24fe-94a8003bc862" - }, - { - "title": "standard code tests", - "id": "9c8623eb-9eeb-5235-7dd8-4c29ba6f63be", - "type": "page", - "pageId": "9c8623eb-9eeb-5235-7dd8-4c29ba6f63be" - } - ] - }, - { - "title": "Free texts", - "id": "1c3f1999-d0da-437e-ec9b-175ef08b88ff", - "type": "chapter", - "children": [ - { - "title": "free texts", - "id": "0f05153c-e032-0436-5a0d-0810ad5b9bc9", - "type": "page", - "pageId": "e06317ce-960c-7ae3-c8e4-1dd0de9fb497" - }, - { - "title": "free text auto", - "id": "8af92221-b20c-92fe-b4b3-41cc0c25f745", - "type": "page", - "pageId": "0ed1d6ab-26a3-3a03-379c-6ea3e74d37d6" - } - ] - }, - { - "title": "Others", - "id": "ab2e7879-3fa2-92c9-a98c-3d5e2c87691a", - "type": "chapter", - "children": [ - { - "title": "fibs", - "id": "97e9ce0c-6f31-3df5-78a9-f6cd2aa14fa6", - "type": "page", - "pageId": "83045c3c-57c9-c38a-269d-508eb6135622" - }, - { - "title": "multi choices", - "id": "970d3f0d-5a7e-03bb-f997-3a20f09420c0", - "type": "page", - "pageId": "1a9f2403-fb28-34cd-9597-48cfe3c0cbcc" - }, - { - "title": "other assessments", - "id": "d420ec32-97e0-75e3-be2a-0f863168f88c", - "type": "page", - "pageId": "3ac49dbd-8261-c2ae-c055-4e56646efa31" - } - ] - }, - { - "title": "simple page", - "id": "d39c18d4-e1bb-5f2d-1f1c-12003f140221", - "type": "page", - "pageId": "b81f2460-a690-88b1-ebf9-211590693e50" - }, - { - "id": "45282149-3368-3507-8d64-80bd40499150", - "title": "!@#$%^&*()_+", - "pageId": "38e0f391-9b16-6c25-5b32-272085352419", - "type": "page" - }, - { - "id": "842c990a-a2cc-2dc5-75a8-da8b60125d2e", - "title": "русская страница", - "pageId": "40d84297-fac6-5d34-90bf-140b67a13df5", - "type": "page" - }, - { - "title": "simple section", - "id": "4cfe2b2c-0054-3941-284a-6e0e245a0182", - "type": "section", - "children": [] - }, - { - "title": "simple chapter", - "id": "168cbf22-1803-e133-c5ab-bb67066c6407", - "type": "chapter", - "children": [] - } - ] -} \ No newline at end of file diff --git a/.guides/content/-----------------842c.json b/.guides/content/-----------------842c.json new file mode 100644 index 00000000..31553712 --- /dev/null +++ b/.guides/content/-----------------842c.json @@ -0,0 +1,13 @@ +{ + "chapter": false, + "closeTerminalSession": true, + "contentType": "markdown", + "files": [], + "id": "842c990a-a2cc-2dc5-75a8-da8b60125d2e", + "learningObjectives": "", + "path": [], + "reset": [], + "teacherOnly": false, + "title": "русская страница", + "type": "page" +} \ No newline at end of file diff --git a/.guides/content/-----------------40d8.md b/.guides/content/-----------------842c.md similarity index 100% rename from .guides/content/-----------------40d8.md rename to .guides/content/-----------------842c.md diff --git a/.guides/content/-------------4528.json b/.guides/content/-------------4528.json new file mode 100644 index 00000000..1d1ad489 --- /dev/null +++ b/.guides/content/-------------4528.json @@ -0,0 +1,13 @@ +{ + "chapter": false, + "closeTerminalSession": true, + "contentType": "markdown", + "files": [], + "id": "45282149-3368-3507-8d64-80bd40499150", + "learningObjectives": "", + "path": [], + "reset": [], + "teacherOnly": false, + "title": "!@#$%^\u0026*()_+", + "type": "page" +} \ No newline at end of file diff --git a/.guides/content/-------------38e0.md b/.guides/content/-------------4528.md similarity index 100% rename from .guides/content/-------------38e0.md rename to .guides/content/-------------4528.md diff --git a/.guides/content/Code-tests-d101/advanced-code-tests-83a9.json b/.guides/content/Code-tests-d101/advanced-code-tests-83a9.json new file mode 100644 index 00000000..067521b3 --- /dev/null +++ b/.guides/content/Code-tests-d101/advanced-code-tests-83a9.json @@ -0,0 +1,12 @@ +{ + "chapter": false, + "closeTerminalSession": true, + "contentType": "markdown", + "files": [], + "id": "83a97204-cf44-4e41-24fe-94a8003bc862", + "learningObjectives": "", + "path": [], + "teacherOnly": false, + "title": "advanced code tests", + "type": "page" +} \ No newline at end of file diff --git a/.guides/content/Code-tests-d101/advanced-code-tests-83a9.md b/.guides/content/Code-tests-d101/advanced-code-tests-83a9.md new file mode 100644 index 00000000..82988a3c --- /dev/null +++ b/.guides/content/Code-tests-d101/advanced-code-tests-83a9.md @@ -0,0 +1,3 @@ + + +{Check It!|assessment}(test-3188355957) diff --git a/.guides/content/Code-tests-d101/index.json b/.guides/content/Code-tests-d101/index.json new file mode 100644 index 00000000..64cce139 --- /dev/null +++ b/.guides/content/Code-tests-d101/index.json @@ -0,0 +1,9 @@ +{ + "id": "d101420d-8240-a7b6-fc4a-871f702fea69", + "order": [ + "advanced-code-tests-83a9", + "standard-code-tests-9c86" + ], + "title": "Code tests", + "type": "chapter" +} \ No newline at end of file diff --git a/.guides/content/Code-tests-d101/standard-code-tests-9c86.json b/.guides/content/Code-tests-d101/standard-code-tests-9c86.json new file mode 100644 index 00000000..889897db --- /dev/null +++ b/.guides/content/Code-tests-d101/standard-code-tests-9c86.json @@ -0,0 +1,14 @@ +{ + "chapter": false, + "closeTerminalSession": true, + "contentType": "markdown", + "files": [], + "id": "9c8623eb-9eeb-5235-7dd8-4c29ba6f63be", + "layout": "2-panels-tree", + "learningObjectives": "", + "path": [], + "reset": [], + "teacherOnly": false, + "title": "standard code tests", + "type": "page" +} \ No newline at end of file diff --git a/.guides/content/Code-tests-d101/standard-code-tests-9c86.md b/.guides/content/Code-tests-d101/standard-code-tests-9c86.md new file mode 100644 index 00000000..924df092 --- /dev/null +++ b/.guides/content/Code-tests-d101/standard-code-tests-9c86.md @@ -0,0 +1,3 @@ + + +{Check It!|assessment}(code-output-compare-3689217873) diff --git a/.guides/content/Free-texts-1c3f/free-text-auto-8af9.json b/.guides/content/Free-texts-1c3f/free-text-auto-8af9.json new file mode 100644 index 00000000..42f669c1 --- /dev/null +++ b/.guides/content/Free-texts-1c3f/free-text-auto-8af9.json @@ -0,0 +1,13 @@ +{ + "chapter": false, + "closeTerminalSession": true, + "contentType": "markdown", + "files": [], + "id": "8af92221-b20c-92fe-b4b3-41cc0c25f745", + "learningObjectives": "", + "path": [], + "reset": [], + "teacherOnly": false, + "title": "free text auto", + "type": "page" +} \ No newline at end of file diff --git a/.guides/content/Free-texts-1c3f/free-text-auto-8af9.md b/.guides/content/Free-texts-1c3f/free-text-auto-8af9.md new file mode 100644 index 00000000..d319f24c --- /dev/null +++ b/.guides/content/Free-texts-1c3f/free-text-auto-8af9.md @@ -0,0 +1,3 @@ + + +{Check It!|assessment}(free-text-auto-2980779615) diff --git a/.guides/content/Free-texts-1c3f/free-texts-0f05.json b/.guides/content/Free-texts-1c3f/free-texts-0f05.json new file mode 100644 index 00000000..55c8bd84 --- /dev/null +++ b/.guides/content/Free-texts-1c3f/free-texts-0f05.json @@ -0,0 +1,13 @@ +{ + "chapter": false, + "closeTerminalSession": true, + "contentType": "markdown", + "files": [], + "id": "0f05153c-e032-0436-5a0d-0810ad5b9bc9", + "learningObjectives": "", + "path": [], + "reset": [], + "teacherOnly": false, + "title": "free texts", + "type": "page" +} \ No newline at end of file diff --git a/.guides/content/Free-texts-1c3f/free-texts-0f05.md b/.guides/content/Free-texts-1c3f/free-texts-0f05.md new file mode 100644 index 00000000..f1f88039 --- /dev/null +++ b/.guides/content/Free-texts-1c3f/free-texts-0f05.md @@ -0,0 +1,3 @@ + + +{Submit Answer!|assessment}(free-text-573761361) diff --git a/.guides/content/Free-texts-1c3f/index.json b/.guides/content/Free-texts-1c3f/index.json new file mode 100644 index 00000000..64d27043 --- /dev/null +++ b/.guides/content/Free-texts-1c3f/index.json @@ -0,0 +1,9 @@ +{ + "id": "1c3f1999-d0da-437e-ec9b-175ef08b88ff", + "order": [ + "free-texts-0f05", + "free-text-auto-8af9" + ], + "title": "Free texts", + "type": "chapter" +} \ No newline at end of file diff --git a/.guides/content/New-0b55.json b/.guides/content/New-0b55.json new file mode 100644 index 00000000..41e67cab --- /dev/null +++ b/.guides/content/New-0b55.json @@ -0,0 +1,11 @@ +{ + "id": "0b554b29-3d8a-56ab-60c3-072baad47412", + "title": "New", + "files": [], + "path": [], + "type": "page", + "contentType": "markdown", + "teacherOnly": false, + "closeTerminalSession": true, + "learningObjectives": "" +} \ No newline at end of file diff --git a/.guides/content/simple-page-b81f.md b/.guides/content/New-0b55.md similarity index 100% rename from .guides/content/simple-page-b81f.md rename to .guides/content/New-0b55.md diff --git a/.guides/content/Others-ab2e/fibs-97e9.json b/.guides/content/Others-ab2e/fibs-97e9.json new file mode 100644 index 00000000..f90542b7 --- /dev/null +++ b/.guides/content/Others-ab2e/fibs-97e9.json @@ -0,0 +1,13 @@ +{ + "chapter": false, + "closeTerminalSession": true, + "contentType": "markdown", + "files": [], + "id": "97e9ce0c-6f31-3df5-78a9-f6cd2aa14fa6", + "learningObjectives": "", + "path": [], + "reset": [], + "teacherOnly": false, + "title": "fibs", + "type": "page" +} \ No newline at end of file diff --git a/.guides/content/Others-ab2e/fibs-97e9.md b/.guides/content/Others-ab2e/fibs-97e9.md new file mode 100644 index 00000000..e818677e --- /dev/null +++ b/.guides/content/Others-ab2e/fibs-97e9.md @@ -0,0 +1,3 @@ + + +{Check It!|assessment}(fill-in-the-blanks-1045584002) diff --git a/.guides/content/Others-ab2e/index.json b/.guides/content/Others-ab2e/index.json new file mode 100644 index 00000000..fe72c964 --- /dev/null +++ b/.guides/content/Others-ab2e/index.json @@ -0,0 +1,10 @@ +{ + "id": "ab2e7879-3fa2-92c9-a98c-3d5e2c87691a", + "order": [ + "fibs-97e9", + "multi-choices-970d", + "other-assessments-d420" + ], + "title": "Others", + "type": "chapter" +} \ No newline at end of file diff --git a/.guides/content/Others-ab2e/multi-choices-970d.json b/.guides/content/Others-ab2e/multi-choices-970d.json new file mode 100644 index 00000000..9bfadc05 --- /dev/null +++ b/.guides/content/Others-ab2e/multi-choices-970d.json @@ -0,0 +1,13 @@ +{ + "chapter": false, + "closeTerminalSession": true, + "contentType": "markdown", + "files": [], + "id": "970d3f0d-5a7e-03bb-f997-3a20f09420c0", + "learningObjectives": "", + "path": [], + "reset": [], + "teacherOnly": false, + "title": "multi choices", + "type": "page" +} \ No newline at end of file diff --git a/.guides/content/multi-choices-1a9f.md b/.guides/content/Others-ab2e/multi-choices-970d.md similarity index 50% rename from .guides/content/multi-choices-1a9f.md rename to .guides/content/Others-ab2e/multi-choices-970d.md index 316fc44d..ae157c24 100644 --- a/.guides/content/multi-choices-1a9f.md +++ b/.guides/content/Others-ab2e/multi-choices-970d.md @@ -1,3 +1,3 @@ -{Check It!|assessment}(multiple-choice-1738770040) + {Check It!|assessment}(multiple-choice-445889773) diff --git a/.guides/content/Others-ab2e/other-assessments-d420.json b/.guides/content/Others-ab2e/other-assessments-d420.json new file mode 100644 index 00000000..9375151e --- /dev/null +++ b/.guides/content/Others-ab2e/other-assessments-d420.json @@ -0,0 +1,13 @@ +{ + "chapter": false, + "closeTerminalSession": true, + "contentType": "markdown", + "files": [], + "id": "d420ec32-97e0-75e3-be2a-0f863168f88c", + "learningObjectives": "", + "path": [], + "reset": [], + "teacherOnly": false, + "title": "other assessments", + "type": "page" +} \ No newline at end of file diff --git a/.guides/content/Others-ab2e/other-assessments-d420.md b/.guides/content/Others-ab2e/other-assessments-d420.md new file mode 100644 index 00000000..07f3571f --- /dev/null +++ b/.guides/content/Others-ab2e/other-assessments-d420.md @@ -0,0 +1,5 @@ + + +{Check It!|assessment}(parsons-puzzle-124691793) + +{Check It!|assessment}(grade-book-3769268793) diff --git a/.guides/content/advanced-code-tests-83a9.md b/.guides/content/advanced-code-tests-83a9.md deleted file mode 100644 index e6c83d11..00000000 --- a/.guides/content/advanced-code-tests-83a9.md +++ /dev/null @@ -1,20 +0,0 @@ - - -{Check It!|assessment}(test-3999572164) -{Check It!|assessment}(test-1798311137) -{Check It!|assessment}(test-1034057722) -{Check It!|assessment}(test-1575987488) -{Check It!|assessment}(test-2544594776) -{Check It!|assessment}(test-287466350) - -{Check It!|assessment}(test-2750589735) -{Check It!|assessment}(test-2899876268) -{Check It!|assessment}(test-3522709050) -{Check It!|assessment}(test-7899135) -{Check It!|assessment}(test-416679421) -{Check It!|assessment}(test-680934443) -{Check It!|assessment}(test-536955473) -{Check It!|assessment}(test-3666559878) -{Check It!|assessment}(test-1516475134) -{Check It!|assessment}(test-1604017877) -{Check It!|assessment}(test-3188355957) diff --git a/.guides/content/c1-93e1/index.json b/.guides/content/c1-93e1/index.json new file mode 100644 index 00000000..032a84da --- /dev/null +++ b/.guides/content/c1-93e1/index.json @@ -0,0 +1,8 @@ +{ + "id": "93e1ac6a-10a8-bc7a-21b9-98d572e728b0", + "type": "chapter", + "title": "c1", + "order": [ + "s1-c983" + ] +} \ No newline at end of file diff --git a/.guides/content/c1-93e1/s1-c983/index.json b/.guides/content/c1-93e1/s1-c983/index.json new file mode 100644 index 00000000..0ac81185 --- /dev/null +++ b/.guides/content/c1-93e1/s1-c983/index.json @@ -0,0 +1,8 @@ +{ + "id": "c983f980-1dfe-c3a7-7941-9ca1034e5c51", + "type": "section", + "title": "s1", + "order": [ + "s1-1-3301" + ] +} \ No newline at end of file diff --git a/.guides/content/c1-93e1/s1-c983/s1-1-3301/index.json b/.guides/content/c1-93e1/s1-c983/s1-1-3301/index.json new file mode 100644 index 00000000..15aaff2f --- /dev/null +++ b/.guides/content/c1-93e1/s1-c983/s1-1-3301/index.json @@ -0,0 +1,8 @@ +{ + "id": "33017cab-eeb3-b706-2851-bfd66dc9ac1c", + "type": "section", + "title": "s1.1", + "order": [ + "s1-1-1-0668" + ] +} \ No newline at end of file diff --git a/.guides/content/c1-93e1/s1-c983/s1-1-3301/s1-1-1-0668/index.json b/.guides/content/c1-93e1/s1-c983/s1-1-3301/s1-1-1-0668/index.json new file mode 100644 index 00000000..77f817f9 --- /dev/null +++ b/.guides/content/c1-93e1/s1-c983/s1-1-3301/s1-1-1-0668/index.json @@ -0,0 +1,9 @@ +{ + "id": "0668338f-10d1-9ea3-924d-4da81d659206", + "type": "section", + "title": "s1.1.1", + "order": [ + "p1-1a19", + "p2-f99b" + ] +} \ No newline at end of file diff --git a/.guides/content/c1-93e1/s1-c983/s1-1-3301/s1-1-1-0668/p1-1a19.json b/.guides/content/c1-93e1/s1-c983/s1-1-3301/s1-1-1-0668/p1-1a19.json new file mode 100644 index 00000000..92e874ca --- /dev/null +++ b/.guides/content/c1-93e1/s1-c983/s1-1-3301/s1-1-1-0668/p1-1a19.json @@ -0,0 +1,11 @@ +{ + "id": "1a193841-6688-95ec-acef-3fb7331b0afc", + "title": "p1", + "files": [], + "path": [], + "type": "page", + "contentType": "markdown", + "teacherOnly": false, + "closeTerminalSession": true, + "learningObjectives": "" +} \ No newline at end of file diff --git a/.guides/content/c1-93e1/s1-c983/s1-1-3301/s1-1-1-0668/p1-1a19.md b/.guides/content/c1-93e1/s1-c983/s1-1-3301/s1-1-1-0668/p1-1a19.md new file mode 100644 index 00000000..67de024e --- /dev/null +++ b/.guides/content/c1-93e1/s1-c983/s1-1-3301/s1-1-1-0668/p1-1a19.md @@ -0,0 +1 @@ +# Sample content New Page \ No newline at end of file diff --git a/.guides/content/c1-93e1/s1-c983/s1-1-3301/s1-1-1-0668/p2-f99b.json b/.guides/content/c1-93e1/s1-c983/s1-1-3301/s1-1-1-0668/p2-f99b.json new file mode 100644 index 00000000..23856d8e --- /dev/null +++ b/.guides/content/c1-93e1/s1-c983/s1-1-3301/s1-1-1-0668/p2-f99b.json @@ -0,0 +1,11 @@ +{ + "id": "f99b1e35-f81e-f7af-8d05-77597cef3933", + "title": "p2", + "files": [], + "path": [], + "type": "page", + "contentType": "markdown", + "teacherOnly": false, + "closeTerminalSession": true, + "learningObjectives": "" +} \ No newline at end of file diff --git a/.guides/content/c1-93e1/s1-c983/s1-1-3301/s1-1-1-0668/p2-f99b.md b/.guides/content/c1-93e1/s1-c983/s1-1-3301/s1-1-1-0668/p2-f99b.md new file mode 100644 index 00000000..67de024e --- /dev/null +++ b/.guides/content/c1-93e1/s1-c983/s1-1-3301/s1-1-1-0668/p2-f99b.md @@ -0,0 +1 @@ +# Sample content New Page \ No newline at end of file diff --git a/.guides/content/chapter-4d8b/index.json b/.guides/content/chapter-4d8b/index.json new file mode 100644 index 00000000..1e68f732 --- /dev/null +++ b/.guides/content/chapter-4d8b/index.json @@ -0,0 +1,8 @@ +{ + "id": "4d8b4bcf-1a77-ae0c-edc4-9f591a340f66", + "type": "chapter", + "title": "chapter", + "order": [ + "section-5c80" + ] +} \ No newline at end of file diff --git a/.guides/content/chapter-4d8b/section-5c80/index.json b/.guides/content/chapter-4d8b/section-5c80/index.json new file mode 100644 index 00000000..cb82dec7 --- /dev/null +++ b/.guides/content/chapter-4d8b/section-5c80/index.json @@ -0,0 +1,8 @@ +{ + "id": "5c80d000-c497-3996-06a3-5ffbb0c1446e", + "type": "section", + "title": "section", + "order": [ + "page-02a1" + ] +} \ No newline at end of file diff --git a/.guides/content/chapter-4d8b/section-5c80/page-02a1.json b/.guides/content/chapter-4d8b/section-5c80/page-02a1.json new file mode 100644 index 00000000..dbd28017 --- /dev/null +++ b/.guides/content/chapter-4d8b/section-5c80/page-02a1.json @@ -0,0 +1,11 @@ +{ + "id": "02a1ba19-c221-4d4e-0df0-977e35f171dd", + "title": "page", + "files": [], + "path": [], + "type": "page", + "contentType": "markdown", + "teacherOnly": false, + "closeTerminalSession": true, + "learningObjectives": "" +} \ No newline at end of file diff --git a/.guides/content/chapter-4d8b/section-5c80/page-02a1.md b/.guides/content/chapter-4d8b/section-5c80/page-02a1.md new file mode 100644 index 00000000..67de024e --- /dev/null +++ b/.guides/content/chapter-4d8b/section-5c80/page-02a1.md @@ -0,0 +1 @@ +# Sample content New Page \ No newline at end of file diff --git a/.guides/content/example-page-e038.json b/.guides/content/example-page-e038.json new file mode 100644 index 00000000..878cac6e --- /dev/null +++ b/.guides/content/example-page-e038.json @@ -0,0 +1,11 @@ +{ + "id": "e038f9d5-0591-cb0c-c048-6eac4f22cec4", + "title": "example page", + "files": [], + "path": [], + "type": "page", + "contentType": "markdown", + "teacherOnly": false, + "closeTerminalSession": true, + "learningObjectives": "" +} \ No newline at end of file diff --git a/.guides/content/example-page-e038.md b/.guides/content/example-page-e038.md new file mode 100644 index 00000000..67de024e --- /dev/null +++ b/.guides/content/example-page-e038.md @@ -0,0 +1 @@ +# Sample content New Page \ No newline at end of file diff --git a/.guides/content/fibs-8304.md b/.guides/content/fibs-8304.md deleted file mode 100644 index f40638bb..00000000 --- a/.guides/content/fibs-8304.md +++ /dev/null @@ -1,6 +0,0 @@ - -{Check It!|assessment}(fill-in-the-blanks-3216557446) -{Check It!|assessment}(fill-in-the-blanks-2420836729) -{Check It!|assessment}(fill-in-the-blanks-557330530) -{Check It!|assessment}(fill-in-the-blanks-2164478132) -{Check It!|assessment}(fill-in-the-blanks-1045584002) diff --git a/.guides/content/free-text-auto-0ed1.md b/.guides/content/free-text-auto-0ed1.md deleted file mode 100644 index 5f8f0c29..00000000 --- a/.guides/content/free-text-auto-0ed1.md +++ /dev/null @@ -1,4 +0,0 @@ - -{Check It!|assessment}(free-text-auto-4024036708) -{Check It!|assessment}(free-text-auto-252956828) -{Check It!|assessment}(free-text-auto-2980779615) diff --git a/.guides/content/free-texts-e063.md b/.guides/content/free-texts-e063.md deleted file mode 100644 index a0e27a53..00000000 --- a/.guides/content/free-texts-e063.md +++ /dev/null @@ -1,4 +0,0 @@ - -{Submit Answer!|assessment}(free-text-3763572986) -{Submit Answer!|assessment}(free-text-1395913156) -{Submit Answer!|assessment}(free-text-573761361) diff --git a/.guides/content/index.json b/.guides/content/index.json new file mode 100644 index 00000000..90b34ef7 --- /dev/null +++ b/.guides/content/index.json @@ -0,0 +1,29 @@ +{ + "allowGuideClose": false, + "collapsedOnStart": false, + "hideBackToDashboard": false, + "hideMenu": false, + "hideSectionsToggle": false, + "lexikonTopic": "", + "order": [ + "Code-tests-d101", + "Free-texts-1c3f", + "Others-ab2e", + "simple-page-d39c", + "-------------4528", + "-----------------842c", + "example-page-e038", + "chapter-4d8b", + "New-0b55", + "simple-section-4cfe", + "simple-chapter-168c", + "c1-93e1" + ], + "protectLayout": false, + "scripts": [], + "suppressPageNumbering": false, + "theme": "light", + "title": "rep1", + "useMarkAsComplete": true, + "useSubmitButtons": true +} \ No newline at end of file diff --git a/.guides/content/other-assessments-3ac4.md b/.guides/content/other-assessments-3ac4.md deleted file mode 100644 index fe885465..00000000 --- a/.guides/content/other-assessments-3ac4.md +++ /dev/null @@ -1,9 +0,0 @@ - -{Check It!|assessment}(parsons-puzzle-610337841) -{Check It!|assessment}(parsons-puzzle-922035714) -{Check It!|assessment}(parsons-puzzle-2243390891) -{Check It!|assessment}(parsons-puzzle-1929622756) -{Check It!|assessment}(parsons-puzzle-124691793) -{Check It!|assessment}(grade-book-1053141) -{Check It!|assessment}(grade-book-2427660357) -{Check It!|assessment}(grade-book-3769268793) diff --git a/.guides/content/simple-chapter-168c/index.json b/.guides/content/simple-chapter-168c/index.json new file mode 100644 index 00000000..7285b3bd --- /dev/null +++ b/.guides/content/simple-chapter-168c/index.json @@ -0,0 +1,6 @@ +{ + "id": "168cbf22-1803-e133-c5ab-bb67066c6407", + "order": [], + "title": "simple chapter", + "type": "chapter" +} \ No newline at end of file diff --git a/.guides/content/simple-page-d39c.json b/.guides/content/simple-page-d39c.json new file mode 100644 index 00000000..4482b39f --- /dev/null +++ b/.guides/content/simple-page-d39c.json @@ -0,0 +1,13 @@ +{ + "chapter": false, + "closeTerminalSession": true, + "contentType": "markdown", + "files": [], + "id": "d39c18d4-e1bb-5f2d-1f1c-12003f140221", + "learningObjectives": "", + "path": [], + "reset": [], + "teacherOnly": false, + "title": "simple page", + "type": "page" +} \ No newline at end of file diff --git a/.guides/content/simple-page-d39c.md b/.guides/content/simple-page-d39c.md new file mode 100644 index 00000000..67de024e --- /dev/null +++ b/.guides/content/simple-page-d39c.md @@ -0,0 +1 @@ +# Sample content New Page \ No newline at end of file diff --git a/.guides/content/simple-section-4cfe/index.json b/.guides/content/simple-section-4cfe/index.json new file mode 100644 index 00000000..807ee673 --- /dev/null +++ b/.guides/content/simple-section-4cfe/index.json @@ -0,0 +1,6 @@ +{ + "id": "4cfe2b2c-0054-3941-284a-6e0e245a0182", + "order": [], + "title": "simple section", + "type": "section" +} \ No newline at end of file diff --git a/.guides/content/standard-code-tests-9c86.md b/.guides/content/standard-code-tests-9c86.md deleted file mode 100644 index 3289ad5e..00000000 --- a/.guides/content/standard-code-tests-9c86.md +++ /dev/null @@ -1,10 +0,0 @@ -v2 -{Check It!|assessment}(code-output-compare-1650925873) -{Check It!|assessment}(code-output-compare-272921492) -{Check It!|assessment}(code-output-compare-135304776) -{Check It!|assessment}(code-output-compare-1532525639) - -{Check It!|assessment}(code-output-compare-145385884) -{Check It!|assessment}(code-output-compare-364020762) -{Check It!|assessment}(code-output-compare-3793267654) -{Check It!|assessment}(code-output-compare-3689217873) diff --git a/.guides/metadata.json b/.guides/metadata.json deleted file mode 100644 index ddc2cceb..00000000 --- a/.guides/metadata.json +++ /dev/null @@ -1,147 +0,0 @@ -{ - "sections": [ - { - "id": "83a97204-cf44-4e41-24fe-94a8003bc862", - "title": "advanced code tests", - "files": [], - "path": [], - "type": "markdown", - "content-file": ".guides/content/advanced-code-tests-83a9.md", - "chapter": false, - "reset": [], - "teacherOnly": false, - "closeTerminalSession": true, - "learningObjectives": "" - }, - { - "id": "9c8623eb-9eeb-5235-7dd8-4c29ba6f63be", - "title": "standard code tests", - "files": [], - "layout": "2-panels-tree", - "path": [], - "type": "markdown", - "content-file": ".guides/content/standard-code-tests-9c86.md", - "chapter": false, - "reset": [], - "teacherOnly": false, - "closeTerminalSession": true, - "learningObjectives": "" - }, - { - "id": "e06317ce-960c-7ae3-c8e4-1dd0de9fb497", - "title": "free texts", - "files": [], - "path": [], - "type": "markdown", - "content-file": ".guides/content/free-texts-e063.md", - "chapter": false, - "reset": [], - "teacherOnly": false, - "closeTerminalSession": true, - "learningObjectives": "" - }, - { - "id": "0ed1d6ab-26a3-3a03-379c-6ea3e74d37d6", - "title": "free text auto", - "files": [], - "path": [], - "type": "markdown", - "content-file": ".guides/content/free-text-auto-0ed1.md", - "chapter": false, - "reset": [], - "teacherOnly": false, - "closeTerminalSession": true, - "learningObjectives": "" - }, - { - "id": "83045c3c-57c9-c38a-269d-508eb6135622", - "title": "fibs", - "files": [], - "path": [], - "type": "markdown", - "content-file": ".guides/content/fibs-8304.md", - "chapter": false, - "reset": [], - "teacherOnly": false, - "closeTerminalSession": true, - "learningObjectives": "" - }, - { - "id": "1a9f2403-fb28-34cd-9597-48cfe3c0cbcc", - "title": "multi choices", - "files": [], - "path": [], - "type": "markdown", - "content-file": ".guides/content/multi-choices-1a9f.md", - "chapter": false, - "reset": [], - "teacherOnly": false, - "closeTerminalSession": true, - "learningObjectives": "" - }, - { - "id": "3ac49dbd-8261-c2ae-c055-4e56646efa31", - "title": "other assessments", - "files": [], - "path": [], - "type": "markdown", - "content-file": ".guides/content/other-assessments-3ac4.md", - "chapter": false, - "reset": [], - "teacherOnly": false, - "closeTerminalSession": true, - "learningObjectives": "" - }, - { - "id": "b81f2460-a690-88b1-ebf9-211590693e50", - "title": "simple page", - "files": [], - "path": [], - "type": "markdown", - "content-file": ".guides/content/simple-page-b81f.md", - "chapter": false, - "reset": [], - "teacherOnly": false, - "closeTerminalSession": true, - "learningObjectives": "" - }, - { - "id": "38e0f391-9b16-6c25-5b32-272085352419", - "title": "!@#$%^&*()_+", - "files": [], - "path": [], - "type": "markdown", - "content-file": ".guides/content/-------------38e0.md", - "chapter": false, - "reset": [], - "teacherOnly": false, - "closeTerminalSession": true, - "learningObjectives": "" - }, - { - "id": "40d84297-fac6-5d34-90bf-140b67a13df5", - "title": "русская страница", - "files": [], - "path": [], - "type": "markdown", - "content-file": ".guides/content/-----------------40d8.md", - "chapter": false, - "reset": [], - "teacherOnly": false, - "closeTerminalSession": true, - "learningObjectives": "" - } - ], - "theme": "light", - "scripts": [], - "lexikonTopic": "", - "suppressPageNumbering": true, - "useSubmitButtons": true, - "useMarkAsComplete": true, - "hideMenu": false, - "allowGuideClose": false, - "collapsedOnStart": false, - "hideSectionsToggle": true, - "hideBackToDashboard": false, - "protectLayout": false -} \ No newline at end of file diff --git a/.guides/yaml_map/split1.yml b/.guides/yaml_map/split1.yml deleted file mode 100644 index 6195f0b2..00000000 --- a/.guides/yaml_map/split1.yml +++ /dev/null @@ -1,3 +0,0 @@ -- assignment: d0974ea6557b23b9c6715b50bbbc04fc - paths: ['javafolder/**', 'rubyfolder/**', 'pythonfolder/**'] - section: ['Code tests'] diff --git a/.guides/yaml_map/split2.yaml b/.guides/yaml_map/split2.yaml deleted file mode 100644 index e547e431..00000000 --- a/.guides/yaml_map/split2.yaml +++ /dev/null @@ -1,3 +0,0 @@ -- assignment: 23d796c76b72be278b8b64044dbb203d - paths: ['free/*'] - section: ['Free texts'] \ No newline at end of file diff --git a/.guides/yaml_map/split3.yml b/.guides/yaml_map/split3.yml deleted file mode 100644 index 18c22406..00000000 --- a/.guides/yaml_map/split3.yml +++ /dev/null @@ -1,6 +0,0 @@ -- assignment: a38a1410b9a5509a9697e20bf68e52d3 - paths: [] - section: ["Others"] -# - assignment: a38a1410b9a5509a9697e20bf68e52d3 -# paths: [] -# section: ["!@#$%^&*()_+"] \ No newline at end of file diff --git a/.guides_v2/advanced_partial_v1.py b/.guides_v2/advanced_partial_v1.py new file mode 100644 index 00000000..5d9d9be0 --- /dev/null +++ b/.guides_v2/advanced_partial_v1.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python + +import random +import sys +# import grade submit function +sys.path.append('/usr/share/codio/assessments') +from lib.grade import send_partial +def main(): + # Execute the test on the student's code + grade = random.randint(10, 50) + print(grade) + # Send the grade back to Codio with the penalty factor applied + res = send_partial(int(round(grade))) + exit( 0 if res else 1) + +main() \ No newline at end of file diff --git a/.guides/assessments.json b/.guides_v2/assessments.json similarity index 64% rename from .guides/assessments.json rename to .guides_v2/assessments.json index 4ca7043b..653ba045 100644 --- a/.guides/assessments.json +++ b/.guides_v2/assessments.json @@ -5,14 +5,17 @@ "source": { "name": "jslint one case ok", "showName": true, - "instructions": "run", + "instructions": "*Instructions here*", "command": "python /usr/share/codio/assessments/assessments.py", - "codeEnvConfig": "{\"type\":\"javascript\",\"subtype\":\"jslint\",\"files\":[\"js_file_jslint_ok.js\"],\"partialPoints\":false,\"maxPoints\":100}", - "arePartialPointsAllowed": false, + "codeEnvConfig": "{\"type\":\"javascript\",\"subtype\":\"jslint\",\"files\":[\"js_file_jslint_ok.js\"],\"maxPoints\":100}", "timeoutSeconds": 300, - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "points": 100, - "oneTimeTest": false, + "arePartialPointsAllowed": false, "metadata": { "tags": [ { @@ -34,10 +37,7 @@ "opened": [] }, "bloomsObjectiveLevel": "1", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Always" - } + "learningObjectives": "learning" } }, { @@ -46,14 +46,17 @@ "source": { "name": "jshint one case ok", "showName": true, - "instructions": "run", + "instructions": "*Instructions here*", "command": "python /usr/share/codio/assessments/assessments.py", - "codeEnvConfig": "{\"type\":\"javascript\",\"subtype\":\"jshint\",\"files\":[\"js_file_jshint_ok.js\"],\"partialPoints\":false,\"maxPoints\":100}", - "arePartialPointsAllowed": false, + "codeEnvConfig": "{\"type\":\"javascript\",\"subtype\":\"jshint\",\"files\":[\"js_file_jshint_ok.js\"],\"maxPoints\":100}", "timeoutSeconds": 300, - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "points": 100, - "oneTimeTest": false, + "arePartialPointsAllowed": false, "metadata": { "tags": [ { @@ -75,10 +78,7 @@ "opened": [] }, "bloomsObjectiveLevel": "3", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Never" - } + "learningObjectives": "learning" } }, { @@ -87,14 +87,17 @@ "source": { "name": "python unit test four files partial", "showName": true, - "instructions": "run", + "instructions": "*Instructions here*", "command": "python /usr/share/codio/assessments/assessments.py", - "codeEnvConfig": "{\"type\":\"python\",\"subtype\":\"unittest\",\"files\":[\"utest_calc_ok.py\",\"utest_calc_failed.py\",\"pythonfolder/utest_calc_ok.py\",\"pythonfolder/utest_calc_failed.py\"],\"partialPoints\":true,\"maxPoints\":100,\"executable\":\"python\",\"pythonwd\":\"\"}", - "arePartialPointsAllowed": true, + "codeEnvConfig": "{\"type\":\"python\",\"subtype\":\"unittest\",\"files\":[\"utest_calc_ok.py\",\"utest_calc_failed.py\",\"pythonfolder/utest_calc_ok.py\",\"pythonfolder/utest_calc_failed.py\"],\"maxPoints\":100,\"executable\":\"python\",\"pythonwd\":\"\",\"partialPoints\":true}", "timeoutSeconds": 300, - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "points": 100, - "oneTimeTest": false, + "arePartialPointsAllowed": true, "metadata": { "tags": [ { @@ -122,10 +125,7 @@ "opened": [] }, "bloomsObjectiveLevel": "1", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Never" - } + "learningObjectives": "learning" } }, { @@ -134,14 +134,17 @@ "source": { "name": "python unit test one case ok", "showName": true, - "instructions": "run forrest run", + "instructions": "*Instructions here*", "command": "python /usr/share/codio/assessments/assessments.py", - "codeEnvConfig": "{\"type\":\"python\",\"subtype\":\"unittest\",\"files\":[\"utest_calc_ok.py\"],\"partialPoints\":false,\"maxPoints\":100,\"executable\":\"python\",\"pythonwd\":\"\"}", - "arePartialPointsAllowed": false, + "codeEnvConfig": "{\"type\":\"python\",\"subtype\":\"unittest\",\"files\":[\"utest_calc_ok.py\"],\"maxPoints\":100,\"executable\":\"python\",\"pythonwd\":\"\",\"partialPoints\":false}", "timeoutSeconds": 300, - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "points": 100, - "oneTimeTest": false, + "arePartialPointsAllowed": false, "metadata": { "tags": [ { @@ -164,10 +167,7 @@ "opened": [] }, "bloomsObjectiveLevel": "2", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Never" - } + "learningObjectives": "learning" } }, { @@ -176,14 +176,17 @@ "source": { "name": "python style one case ok", "showName": true, - "instructions": "run forrest run", + "instructions": "*Instructions here*", "command": "python /usr/share/codio/assessments/assessments.py", - "codeEnvConfig": "{\"type\":\"python\",\"subtype\":\"style\",\"files\":[\"pythonfolder/pythonstyleok1.py\"],\"partialPoints\":false,\"maxPoints\":100}", - "arePartialPointsAllowed": false, + "codeEnvConfig": "{\"type\":\"python\",\"subtype\":\"style\",\"files\":[\"pythonfolder/pythonstyleok1.py\"],\"maxPoints\":100}", "timeoutSeconds": 300, - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "points": 100, - "oneTimeTest": false, + "arePartialPointsAllowed": false, "metadata": { "tags": [ { @@ -205,10 +208,7 @@ "opened": [] }, "bloomsObjectiveLevel": "3", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Never" - } + "learningObjectives": "learning" } }, { @@ -217,14 +217,17 @@ "source": { "name": "ruby rspec four files partial", "showName": true, - "instructions": "test", + "instructions": "*Instructions here*", "command": "python /usr/share/codio/assessments/assessments.py", - "codeEnvConfig": "{\"type\":\"ruby\",\"subtype\":\"rspec\",\"files\":[\"spec/calculator_failed_spec1.rb\",\"spec/calculator_failed_spec2.rb\",\"spec/calculator_ok_spec1.rb\",\"spec/calculator_ok_spec2.rb\"],\"partialPoints\":true,\"maxPoints\":100}", - "arePartialPointsAllowed": true, + "codeEnvConfig": "{\"type\":\"ruby\",\"subtype\":\"rspec\",\"files\":[\"spec/calculator_failed_spec1.rb\",\"spec/calculator_failed_spec2.rb\",\"spec/calculator_ok_spec1.rb\",\"spec/calculator_ok_spec2.rb\"],\"maxPoints\":100,\"partialPoints\":true}", "timeoutSeconds": 300, - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "points": 100, - "oneTimeTest": false, + "arePartialPointsAllowed": true, "metadata": { "tags": [ { @@ -250,10 +253,7 @@ "opened": [] }, "bloomsObjectiveLevel": "3", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Never" - } + "learningObjectives": "learning" } }, { @@ -262,14 +262,17 @@ "source": { "name": "ruby rspec one case ok", "showName": true, - "instructions": "test", + "instructions": "*Instructions here*", "command": "python /usr/share/codio/assessments/assessments.py", - "codeEnvConfig": "{\"type\":\"ruby\",\"subtype\":\"rspec\",\"files\":[\"spec/calculator_ok_spec1.rb\"],\"partialPoints\":false,\"maxPoints\":100}", - "arePartialPointsAllowed": false, + "codeEnvConfig": "{\"type\":\"ruby\",\"subtype\":\"rspec\",\"files\":[\"spec/calculator_ok_spec1.rb\"],\"maxPoints\":100,\"partialPoints\":false}", "timeoutSeconds": 300, - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "points": 100, - "oneTimeTest": false, + "arePartialPointsAllowed": false, "metadata": { "tags": [ { @@ -292,10 +295,7 @@ "opened": [] }, "bloomsObjectiveLevel": "3", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Never" - } + "learningObjectives": "learning" } }, { @@ -304,14 +304,17 @@ "source": { "name": "ruby style one case ok", "showName": true, - "instructions": "test", + "instructions": "*Instructions here*", "command": "python /usr/share/codio/assessments/assessments.py", - "codeEnvConfig": "{\"type\":\"ruby\",\"subtype\":\"style\",\"files\":[\"rubyfolder/rubystyleok1.rb\"],\"partialPoints\":false,\"maxPoints\":100}", - "arePartialPointsAllowed": false, + "codeEnvConfig": "{\"type\":\"ruby\",\"subtype\":\"style\",\"files\":[\"rubyfolder/rubystyleok1.rb\"],\"maxPoints\":100}", "timeoutSeconds": 300, - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "points": 100, - "oneTimeTest": false, + "arePartialPointsAllowed": false, "metadata": { "tags": [ { @@ -333,10 +336,7 @@ "opened": [] }, "bloomsObjectiveLevel": "4", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Never" - } + "learningObjectives": "learning" } }, { @@ -345,14 +345,17 @@ "source": { "name": "java junit partial points two classes", "showName": true, - "instructions": "test", + "instructions": "*Instructions here*", "command": "python /usr/share/codio/assessments/assessments.py", - "codeEnvConfig": "{\"type\":\"java\",\"subtype\":\"junit\",\"files\":[{\"filePath\":\"javafolder/TestCalcManyCasesOk.java\",\"className\":\"TestCalcManyCasesOk\"},{\"filePath\":\"javafolder/TestCalcManyCasesFailed.java\",\"className\":\"TestCalcManyCasesFailed\"}],\"partialPoints\":true,\"maxPoints\":100,\"wd\":\"\",\"sources\":\"\",\"libs\":\"\",\"testsources\":\"javafolder\"}", - "arePartialPointsAllowed": true, + "codeEnvConfig": "{\"type\":\"java\",\"subtype\":\"junit\",\"files\":[{\"filePath\":\"javafolder/TestCalcManyCasesOk.java\",\"className\":\"TestCalcManyCasesOk\"},{\"filePath\":\"javafolder/TestCalcManyCasesFailed.java\",\"className\":\"TestCalcManyCasesFailed\"}],\"maxPoints\":100,\"wd\":\"\",\"sources\":\"\",\"libs\":\"\",\"testsources\":\"javafolder\",\"partialPoints\":true}", "timeoutSeconds": 300, - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "points": 100, - "oneTimeTest": false, + "arePartialPointsAllowed": true, "metadata": { "tags": [ { @@ -376,10 +379,7 @@ "opened": [] }, "bloomsObjectiveLevel": "3", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Never" - } + "learningObjectives": "learning" } }, { @@ -388,14 +388,17 @@ "source": { "name": "java junit one case ok", "showName": true, - "instructions": "test", + "instructions": "*Instructions here*", "command": "python /usr/share/codio/assessments/assessments.py", - "codeEnvConfig": "{\"type\":\"java\",\"subtype\":\"junit\",\"files\":[{\"filePath\":\"javafolder/TestCalcOneCaseOk.java\",\"className\":\"TestCalcOneCaseOk\"}],\"partialPoints\":false,\"maxPoints\":100,\"wd\":\"\",\"sources\":\"\",\"libs\":\"\",\"testsources\":\"javafolder\"}", - "arePartialPointsAllowed": false, + "codeEnvConfig": "{\"type\":\"java\",\"subtype\":\"junit\",\"files\":[{\"filePath\":\"javafolder/TestCalcOneCaseOk.java\",\"className\":\"TestCalcOneCaseOk\"}],\"maxPoints\":100,\"wd\":\"\",\"sources\":\"\",\"libs\":\"\",\"testsources\":\"javafolder\",\"partialPoints\":false}", "timeoutSeconds": 300, - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "points": 100, - "oneTimeTest": false, + "arePartialPointsAllowed": false, "metadata": { "tags": [ { @@ -418,10 +421,7 @@ "opened": [] }, "bloomsObjectiveLevel": "3", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Never" - } + "learningObjectives": "learning" } }, { @@ -430,14 +430,17 @@ "source": { "name": "java style one case ok", "showName": true, - "instructions": "test", + "instructions": "*Instructions here*", "command": "python /usr/share/codio/assessments/assessments.py", - "codeEnvConfig": "{\"type\":\"java\",\"subtype\":\"style\",\"files\":[\"javafolder/JavaClassStyleOk1.java\"],\"partialPoints\":false,\"maxPoints\":100,\"configFile\":\"\"}", - "arePartialPointsAllowed": false, + "codeEnvConfig": "{\"type\":\"java\",\"subtype\":\"style\",\"files\":[\"javafolder/JavaClassStyleOk1.java\"],\"maxPoints\":100,\"configFile\":\"\"}", "timeoutSeconds": 300, - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "points": 100, - "oneTimeTest": false, + "arePartialPointsAllowed": false, "metadata": { "tags": [ { @@ -459,10 +462,7 @@ "opened": [] }, "bloomsObjectiveLevel": "4", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Never" - } + "learningObjectives": "learning" } }, { @@ -473,11 +473,14 @@ "showName": true, "instructions": "Construct a program by drag&dropping and reordering lines from the\n left to the right.\n The constructed program should draw a triangle like shown below.", "initial": "REPEAT 3 TIMES\n forward(100)\n left(120)\nENDREPEAT\n ", - "options": "{\n \n \"max_wrong_lines\": 1,\n \"turtleModelCode\": \"modelTurtle.forward(100)\\nmodelTurtle.left(120)\\nmodelTurtle.forward(100)\\nmodelTurtle.left(120)\\nmodelTurtle.forward(100)\\nmodelTurtle.left(120)\",\n \"executable_code\": \"for i in range(0,3):\\nmyTurtle.forward(100)\\nmyTurtle.left(120)\\npass\",\n \"programmingLang\": \"pseudo\"\n }", + "options": "{\"max_wrong_lines\":1,\"turtleModelCode\":\"modelTurtle.forward(100)\\nmodelTurtle.left(120)\\nmodelTurtle.forward(100)\\nmodelTurtle.left(120)\\nmodelTurtle.forward(100)\\nmodelTurtle.left(120)\",\"executable_code\":\"for i in range(0,3):\\nmyTurtle.forward(100)\\nmyTurtle.left(120)\\npass\",\"programmingLang\":\"pseudo\"}", "grader": "5", - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "points": 100, - "oneTimeTest": false, "metadata": { "tags": [ { @@ -497,10 +500,7 @@ "opened": [] }, "bloomsObjectiveLevel": "5", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Never" - } + "learningObjectives": "learning" } }, { @@ -511,11 +511,14 @@ "showName": true, "instructions": "Construct code by reordering and indenting the lines.", "initial": "for (int i=0;i<3;i++) {\nSystem.out.print(\\\"I \\\");\nSystem.out.print(\\\"am \\\");\nSystem.out.print(\\\"a Java program \\\");\n}", - "options": "{\n \n \"max_wrong_lines\": 1,\n \"vartests\": [{\"initcode\": \"output = ''\", \"code\": \"\", \"message\": \"Testing...\", \"variables\": {\"output\": \"I am a Java program I am a Java program I am a Java program \"}}\n ],\n \"executable_code\": \"for x in range(3):\\noutput += 'I '\\noutput += 'am '\\noutput += 'a Java program '\\npass\\n\",\n \"programmingLang\": \"java\"\n }", + "options": "{\"max_wrong_lines\":1,\"vartests\":[{\"initcode\":\"output = ''\",\"code\":\"\",\"message\":\"Testing...\",\"variables\":{\"output\":\"I am a Java program I am a Java program I am a Java program \"}}],\"executable_code\":\"for x in range(3):\\noutput += 'I '\\noutput += 'am '\\noutput += 'a Java program '\\npass\\n\",\"programmingLang\":\"java\"}", "grader": "4", - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "points": 100, - "oneTimeTest": false, "metadata": { "tags": [ { @@ -535,10 +538,7 @@ "opened": [] }, "bloomsObjectiveLevel": "4", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Never" - } + "learningObjectives": "learning" } }, { @@ -549,11 +549,14 @@ "showName": true, "instructions": "Construct a function which returns the largest of the three given arguments.\n You can change the value of a toggleable element () by clicking.", "initial": "def find_largest(a, b, c):\nif > :\nif > :\nreturn \nelse:\nreturn \nelif > :\nreturn \nelse:\nreturn \n ", - "options": "{\n \"sortableId\": \"sortable\", \n \"unittests\": \"import unittestparson\\nclass myTests(unittestparson.unittest):\\n def testOne(self):\\n self.assertEqual(find_largest(0, 2, 4),4,\\\"Calling function find_largest(0, 2, 4).\\\")\\n self.assertEqual(find_largest(4, 2, 4),4,\\\"Calling function find_largest(4, 2, 4).\\\")\\n self.assertEqual(find_largest(-5, -1, -4),-1,\\\"Calling function find_largest(-5, -1, -4).\\\")\\n self.assertEqual(find_largest(7, 2, 4),7,\\\"Calling function find_largest(7, 2, 4).\\\")\\n_test_result = myTests().main()\",\n \"toggleTypeHandlers\": {\"abc\": [\"a\", \"b\", \"c\"]}\n }", + "options": "{\"sortableId\":\"sortable\",\"max_wrong_lines\":10,\"exec_limit\":2500,\"can_indent\":true,\"x_indent\":50,\"lang\":\"en\",\"toggleTypeHandlers\":{\"abc\":[\"a\",\"b\",\"c\"]},\"show_feedback\":true,\"unittests\":\"import unittestparson\\nclass myTests(unittestparson.unittest):\\n def testOne(self):\\n self.assertEqual(find_largest(0, 2, 4),4,\\\"Calling function find_largest(0, 2, 4).\\\")\\n self.assertEqual(find_largest(4, 2, 4),4,\\\"Calling function find_largest(4, 2, 4).\\\")\\n self.assertEqual(find_largest(-5, -1, -4),-1,\\\"Calling function find_largest(-5, -1, -4).\\\")\\n self.assertEqual(find_largest(7, 2, 4),7,\\\"Calling function find_largest(7, 2, 4).\\\")\\n_test_result = myTests().main()\"}", "grader": "3", - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "points": 100, - "oneTimeTest": false, "metadata": { "tags": [ { @@ -573,10 +576,7 @@ "opened": [] }, "bloomsObjectiveLevel": "3", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Never" - } + "learningObjectives": "learning" } }, { @@ -587,11 +587,14 @@ "showName": true, "instructions": "Construct a program that swaps the values of variables x and y using the\n helper variable tmp. You can change the names of the variables ()\n by clicking them.", "initial": "$$toggle::x::y::tmp$$ = $$toggle::x::y::tmp$$\n$$toggle::x::y::tmp$$ = $$toggle::x::y::tmp$$\n$$toggle::x::y::tmp$$ = $$toggle::x::y::tmp$$\n ", - "options": "{\n \n \"vartests\": [{\"initcode\": \"x = 0\\ny=2\", \"code\": \"\", \"message\": \"Testing with initial variable values x = 0 and y = 2\", \"variables\": {\"x\": 2}},\n {\"initcode\": \"x = 3\\ny=4\\n\", \"code\": \"\", \"message\": \"Testing with initial variable values x = 3 and y = 4\", \"variables\": {\"x\": 4, \"y\": 3}}],\n \"lang\": \"en\"\n }", + "options": "{\"vartests\":[{\"initcode\":\"x = 0\\ny=2\",\"code\":\"\",\"message\":\"Testing with initial variable values x = 0 and y = 2\",\"variables\":{\"x\":2}},{\"initcode\":\"x = 3\\ny=4\\n\",\"code\":\"\",\"message\":\"Testing with initial variable values x = 3 and y = 4\",\"variables\":{\"x\":4,\"y\":3}}],\"lang\":\"en\"}", "grader": "2", - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "points": 100, - "oneTimeTest": false, "metadata": { "tags": [ { @@ -611,10 +614,7 @@ "opened": [] }, "bloomsObjectiveLevel": "2", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Never" - } + "learningObjectives": "learning" } }, { @@ -625,11 +625,14 @@ "showName": true, "instructions": "

Construct a function by drag&dropping and reordering lines from the\n left to the right.\n The constructed function should return True if the parameter is True and\n return False otherwise.

\n

Note: The correct solution is obviously a dumb way to do\n it. This exercise is merely trying to give an example of a Parson's\n puzzle with js-parsons, not teach you Python :)

", "initial": "def is_true(boolean_value):\n if boolean_value:\n return True\n return False\n return true #distractor\n ", - "options": "{\n \n \"trashId\": \"sortableTrash\",\n \"max_wrong_lines\": 1\n }", + "options": "{\"trashId\":\"sortableTrash\",\"max_wrong_lines\":1}", "grader": "1", - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "points": 100, - "oneTimeTest": false, "metadata": { "tags": [ { @@ -649,21 +652,18 @@ "opened": [] }, "bloomsObjectiveLevel": "1", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Never" - } + "learningObjectives": "learning" } }, { "type": "grade-book", "taskId": "grade-book-2427660357", "source": { - "name": "gradebook2", + "name": "gradebook partial", "showName": true, - "isCollapsedOnStart": false, "points": 100, "arePartialPointsAllowed": true, + "rubrics": [], "metadata": { "tags": [ { @@ -693,11 +693,11 @@ "type": "grade-book", "taskId": "grade-book-1053141", "source": { - "name": "gradebook1", + "name": "gradebook simple", "showName": true, - "isCollapsedOnStart": false, "points": 100, "arePartialPointsAllowed": false, + "rubrics": [], "metadata": { "tags": [ { @@ -729,12 +729,15 @@ "source": { "name": "free text auto partial v1", "showName": true, - "instructions": "run", - "command": "python freetextauto_partial_v1.py", + "instructions": "*Instructions here*\n", + "command": "python .guides/freetextauto_partial_v1.py", "timeoutSeconds": 40, - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "arePartialPointsAllowed": true, - "oneTimeTest": true, "previewType": "NONE", "points": 100, "metadata": { @@ -745,30 +748,21 @@ }, { "name": "Content", - "value": "partial" + "value": "free auto partial" }, { "name": "Programming Language", - "value": "bash" + "value": "python" } ], "files": [ - "file.js", - "partial.sh" + ".guides/img/MARBLES.BMP", + ".guides/freetextauto_partial_v1.py" ], - "opened": [ - { - "type": "file", - "panelNumber": 0, - "content": "file.js" - } - ] + "opened": [] }, "bloomsObjectiveLevel": "6", - "learningObjectives": "LEARNING OBJECTIVES", - "showGuidanceAfterResponseOption": { - "type": "Never" - } + "learningObjectives": "LEARNING OBJECTIVES" } }, { @@ -777,38 +771,39 @@ "source": { "name": "free text auto simple", "showName": true, - "instructions": "run", - "command": "python freetextauto_simple.py", + "instructions": "*Instructions here*", + "command": "python .folder/freetextauto_simple.py", "timeoutSeconds": 40, - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "arePartialPointsAllowed": false, - "oneTimeTest": false, - "previewType": "NONE", + "previewType": "RAW", "points": 100, "metadata": { "tags": [ { "name": "Assessment Type", "value": "Free Text Autograde" + }, + { + "name": "Content", + "value": "free auto" + }, + { + "name": "Programming Language", + "value": "python" } ], "files": [ - "file.js", - "run.sh" + "freetextauto_simple.py" ], - "opened": [ - { - "type": "file", - "panelNumber": 0, - "content": "file.js" - } - ] + "opened": [] }, "bloomsObjectiveLevel": "6", - "learningObjectives": "LEARNING OBJECTIVES", - "showGuidanceAfterResponseOption": { - "type": "Never" - } + "learningObjectives": "LEARNING OBJECTIVES" } }, { @@ -817,13 +812,16 @@ "source": { "name": "advanced code test partial v1", "showName": true, - "instructions": "run", - "command": "python advanced_partial_v1.py", - "arePartialPointsAllowed": true, + "instructions": "*Instructions here*\n", + "command": "python .guides/advanced_partial_v1.py", "timeoutSeconds": 40, - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "points": 100, - "oneTimeTest": true, + "arePartialPointsAllowed": true, "metadata": { "tags": [ { @@ -840,22 +838,13 @@ } ], "files": [ - "file.js", - "advanced.py" + ".guides/img/gagarin.jpg", + ".guides/advanced_partial_v1.py" ], - "opened": [ - { - "type": "file", - "panelNumber": 0, - "content": "file.js" - } - ] + "opened": [] }, "bloomsObjectiveLevel": "3", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Always" - } + "learningObjectives": "learning" } }, { @@ -864,20 +853,24 @@ "source": { "name": "standard code test empty output", "showName": true, - "instructions": "run", - "command": "python empty.py", + "instructions": "*Instructions here*\n", + "command": "python .guides/empty.py", "preExecuteCommand": "sleep 1", - "guidance": "answer and rationale", - "points": 100, - "oneTimeTest": true, "options": { + "timeout": 30, "ignoreCase": false, "ignoreWhitespaces": true, "ignoreNewline": true, - "matchSubstring": false, - "timeout": 30 + "matchSubstring": false }, + "guidance": "**Rationale**\n\n", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, + "points": 100, "showExpectedAnswer": true, + "arePartialPointsAllowed": false, "sequence": [ { "arguments": "", @@ -917,22 +910,13 @@ } ], "files": [ - "file.js", - "empty.py" + ".guides/img/balancing.gif", + ".guides/empty.py" ], - "opened": [ - { - "type": "file", - "panelNumber": 0, - "content": "file.js" - } - ] + "opened": [] }, "bloomsObjectiveLevel": "3", - "learningObjectives": "learning", - "showGuidanceAfterResponseOption": { - "type": "Always" - } + "learningObjectives": "learning" } }, { @@ -941,7 +925,7 @@ "source": { "name": "standard code test all symbols in output", "showName": true, - "instructions": "run", + "instructions": "*Instructions here*", "command": "python allsymbols.py", "preExecuteCommand": "sleep 1", "options": { @@ -951,11 +935,11 @@ "ignoreNewline": true, "matchSubstring": false }, - "guidance": "answer and rationale", + "guidance": "**Rationale**", "showGuidanceAfterResponseOption": { "type": "Always" }, - "maxAttemptsCount": 5, + "maxAttemptsCount": 0, "points": 100, "showExpectedAnswer": true, "arePartialPointsAllowed": false, @@ -1013,20 +997,24 @@ "source": { "name": "standard code test arguments count in output", "showName": true, - "instructions": "run", + "instructions": "*Instructions here*", "command": "python argumentscount.py", "preExecuteCommand": "sleep 1", - "guidance": "answer and rationale", - "points": 100, - "oneTimeTest": true, "options": { + "timeout": 30, "ignoreCase": false, "ignoreWhitespaces": true, "ignoreNewline": true, - "matchSubstring": false, - "timeout": 30 + "matchSubstring": false }, - "showExpectedAnswer": true, + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, + "points": 100, + "showExpectedAnswer": false, + "arePartialPointsAllowed": false, "sequence": [ { "arguments": "one two three four", @@ -1062,19 +1050,10 @@ "file.js", "argumentscount.py" ], - "opened": [ - { - "type": "file", - "panelNumber": 0, - "content": "file.js" - } - ] + "opened": [] }, "bloomsObjectiveLevel": "5", - "learningObjectives": "learning", - "showGuidanceAfterResponseOption": { - "type": "Always" - } + "learningObjectives": "learning" } }, { @@ -1083,20 +1062,24 @@ "source": { "name": "standard code test inputs in output", "showName": true, - "instructions": "run", + "instructions": "*Instructions here*", "command": "python inputcommands.py", "preExecuteCommand": "sleep 1", - "guidance": "answer and rationale", - "points": 100, - "oneTimeTest": false, "options": { + "timeout": 30, "ignoreCase": false, "ignoreWhitespaces": true, "ignoreNewline": true, - "matchSubstring": false, - "timeout": 30 + "matchSubstring": false }, - "showExpectedAnswer": true, + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, + "points": 100, + "showExpectedAnswer": false, + "arePartialPointsAllowed": false, "sequence": [ { "arguments": "", @@ -1132,19 +1115,10 @@ "file.js", "inputcommands.py" ], - "opened": [ - { - "type": "file", - "panelNumber": 0, - "content": "file.js" - } - ] + "opened": [] }, "bloomsObjectiveLevel": "2", - "learningObjectives": "learning", - "showGuidanceAfterResponseOption": { - "type": "Always" - } + "learningObjectives": "learning" } }, { @@ -1153,13 +1127,16 @@ "source": { "name": "advanced code test simple", "showName": true, - "instructions": "run", - "command": "python advanced_simple.py", - "arePartialPointsAllowed": false, + "instructions": "*Instructions here*", + "command": "python .folder/advanced_simple.py", "timeoutSeconds": 19, - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "points": 100, - "oneTimeTest": false, + "arePartialPointsAllowed": false, "metadata": { "tags": [ { @@ -1176,22 +1153,12 @@ } ], "files": [ - "file.js", - "empty.py" + "advanced_simple.py" ], - "opened": [ - { - "type": "file", - "panelNumber": 0, - "content": "file.js" - } - ] + "opened": [] }, "bloomsObjectiveLevel": "2", - "learningObjectives": "learning", - "showGuidanceAfterResponseOption": { - "type": "Always" - } + "learningObjectives": "learning" } }, { @@ -1200,12 +1167,18 @@ "source": { "name": "fib simple show possible values", "showName": true, - "instructions": "run", + "instructions": "*Instructions here*", + "showValues": true, "text": "0 <<<1>>> 2 <<<3>>> 4 <<<5>>> 6", - "guidance": "answer and rationale", + "distractors": "", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "showExpectedAnswer": true, "points": 100, - "showValues": true, + "arePartialPointsAllowed": false, "metadata": { "tags": [ { @@ -1224,13 +1197,7 @@ "files": [ "file.js" ], - "opened": [ - { - "type": "file", - "panelNumber": 0, - "content": "file.js" - } - ] + "opened": [] }, "bloomsObjectiveLevel": "5", "learningObjectives": "learning", @@ -1250,9 +1217,6 @@ " 6" ], "regexPositions": [] - }, - "showGuidanceAfterResponseOption": { - "type": "Always" } } }, @@ -1262,12 +1226,18 @@ "source": { "name": "fib simple do not show possible values", "showName": true, - "instructions": "fill in the blank", + "instructions": "*Instructions here*", + "showValues": false, "text": "0 <<<1>>> 2 <<<3>>> 4 <<<5>>> 6", - "guidance": "answer and rationale", + "distractors": "", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "showExpectedAnswer": true, "points": 100, - "showValues": false, + "arePartialPointsAllowed": false, "metadata": { "tags": [ { @@ -1286,13 +1256,7 @@ "files": [ "file.js" ], - "opened": [ - { - "type": "file", - "panelNumber": 0, - "content": "file.js" - } - ] + "opened": [] }, "bloomsObjectiveLevel": "4", "learningObjectives": "learning", @@ -1312,9 +1276,6 @@ " 6" ], "regexPositions": [] - }, - "showGuidanceAfterResponseOption": { - "type": "Always" } } }, @@ -1324,39 +1285,45 @@ "source": { "name": "multichoice one response", "showName": true, - "instructions": "run", + "instructions": "*Instructions here*", "multipleResponse": false, + "isRandomized": false, "answers": [ { "_id": "30a1ed6e-98b9-3fd0-3eb5-245cfde23158", "correct": true, - "answer": "111 111 111 111 111 111 111" + "answer": "**correct answer**" }, { "_id": "7db440f4-42da-b699-b718-7a9bfa684605", "correct": false, - "answer": "222 222 222 222 222 222 222" + "answer": "**incorrect answer 1**" }, { "_id": "4f993dd8-f738-40e4-9355-f54443886e59", "correct": false, - "answer": "333 333 333 333 333 333 333" + "answer": "**incorrect answer 2**" }, { "_id": "aa3b440b-2a35-cc19-2b4a-84639d8ac788", "correct": false, - "answer": "444 444 444 444 444 444 444" + "answer": "**incorrect answer 3**" }, { "_id": "f4671d97-118e-2f4e-9b00-4687e41e666e", "correct": false, - "answer": "555 555 555 555 555 555 555" + "answer": "**incorrect answer 4**" } ], - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "showExpectedAnswer": true, "points": 100, "incorrectPoints": 0, + "arePartialPointsAllowed": false, "metadata": { "tags": [ { @@ -1375,19 +1342,10 @@ "files": [ "file.js" ], - "opened": [ - { - "type": "file", - "panelNumber": 0, - "content": "file.js" - } - ] + "opened": [] }, "bloomsObjectiveLevel": "6", - "learningObjectives": "learning", - "showGuidanceAfterResponseOption": { - "type": "Never" - } + "learningObjectives": "learning" } }, { @@ -1396,39 +1354,45 @@ "source": { "name": "multichoice multiple response", "showName": true, - "instructions": "run", + "instructions": "*Instructions here*", "multipleResponse": true, + "isRandomized": false, "answers": [ { "_id": "6a9f87b4-a555-a8fb-772e-58b3801bf0f3", "correct": true, - "answer": "111 111 111 111 111 111 111" + "answer": "**correct answer 1**" }, { "_id": "a84e6222-046c-5a4a-3210-df40ba898684", "correct": true, - "answer": "222 222 222 222 222 222 222" + "answer": "**correct answer 2**" }, { "_id": "c6344f0b-6c63-8fe7-00b2-3e120226f67c", "correct": false, - "answer": "333 333 333 333 333 333 333" + "answer": "**incorrect answer 1**" }, { "_id": "bdadeb57-bfd6-d33c-3e77-26c355ee250b", "correct": false, - "answer": "444 444 444 444 444 444 444" + "answer": "**incorrect answer 2**" }, { "_id": "1595a358-f87b-4156-a94b-ff4c49ce3255", "correct": false, - "answer": "555 555 555 555 555 555 555" + "answer": "**incorrect answer 3**" } ], - "guidance": "answer and rationale", - "showExpectedAnswer": true, + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, + "showExpectedAnswer": false, "points": 100, "incorrectPoints": 0, + "arePartialPointsAllowed": false, "metadata": { "tags": [ { @@ -1447,33 +1411,28 @@ "files": [ "file.js" ], - "opened": [ - { - "type": "file", - "panelNumber": 0, - "content": "file.js" - } - ] + "opened": [] }, "bloomsObjectiveLevel": "4", - "learningObjectives": "learning", - "showGuidanceAfterResponseOption": { - "type": "Never" - } + "learningObjectives": "learning" } }, { "type": "free-text", "taskId": "free-text-3763572986", "source": { - "name": "free text partial", + "name": "free text partial (plain text + latex)", "showName": true, - "instructions": "run", - "guidance": "answer and rationale", + "instructions": "*Instructions here*", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "previewType": "RAW", "arePartialPointsAllowed": true, - "oneTimeTest": true, "points": 100, + "rubrics": [], "metadata": { "tags": [ { @@ -1492,33 +1451,28 @@ "files": [ "file.js" ], - "opened": [ - { - "type": "file", - "panelNumber": 0, - "content": "file.js" - } - ] + "opened": [] }, "bloomsObjectiveLevel": "4", - "learningObjectives": "learning", - "showGuidanceAfterResponseOption": { - "type": "Always" - } + "learningObjectives": "learning" } }, { "type": "free-text", "taskId": "free-text-1395913156", "source": { - "name": "free text simple", + "name": "free text simple (plain text - no preview)", "showName": true, - "instructions": "run", - "guidance": "answer and rationale1", + "instructions": "*Instructions here*", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "previewType": "NONE", "arePartialPointsAllowed": false, - "oneTimeTest": false, "points": 100, + "rubrics": [], "metadata": { "tags": [ { @@ -1537,19 +1491,10 @@ "files": [ "file.js" ], - "opened": [ - { - "type": "file", - "panelNumber": 0, - "content": "file.js" - } - ] + "opened": [] }, "bloomsObjectiveLevel": "2", - "learningObjectives": "learning", - "showGuidanceAfterResponseOption": { - "type": "Always" - } + "learningObjectives": "learning" } }, { @@ -1558,32 +1503,40 @@ "source": { "name": "fib oneOf show possible values", "showName": true, - "instructions": "run", + "instructions": "*Instructions here*", + "showValues": true, "text": "place1 or \"place1\" or place2 or \"place2\" <<<\"place1\", \"\"place1\"\", \"place2\", \"\"place2\"\">>>\nvalue1 or \"value1\" or value2 or \"value2\" <<<\"value1\", \"\"value1\"\", \"value2\", \"\"value2\"\">>>\n", - "guidance": "answer and rationale", + "distractors": "", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "showExpectedAnswer": true, "points": 100, - "showValues": true, + "arePartialPointsAllowed": false, "metadata": { "tags": [ { "name": "Assessment Type", "value": "Fill in the Blanks" + }, + { + "name": "Content", + "value": "fib" + }, + { + "name": "Programming Language", + "value": "any" } ], "files": [ "file.js" ], - "opened": [ - { - "type": "file", - "panelNumber": 0, - "content": "file.js" - } - ] + "opened": [] }, - "bloomsObjectiveLevel": "", - "learningObjectives": "", + "bloomsObjectiveLevel": "1", + "learningObjectives": "learning", "tokens": { "blank": [ { @@ -1613,9 +1566,6 @@ "\n" ], "regexPositions": [] - }, - "showGuidanceAfterResponseOption": { - "type": "Never" } } }, @@ -1625,32 +1575,40 @@ "source": { "name": "fib oneOf do not show possible values", "showName": true, - "instructions": "run", + "instructions": "*Instructions here*", + "showValues": false, "text": "place1 or \"place1\" or place2 or \"place2\" <<<\"place1\", \"\"place1\"\", \"place2\", \"\"place2\"\">>>\nvalue1 or \"value1\" or value2 or \"value2\" <<<\"value1\", \"\"value1\"\", \"value2\", \"\"value2\"\">>>", - "guidance": "answer and rationale", + "distractors": "", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "showExpectedAnswer": true, "points": 100, - "showValues": false, + "arePartialPointsAllowed": false, "metadata": { "tags": [ { "name": "Assessment Type", "value": "Fill in the Blanks" + }, + { + "name": "Content", + "value": "fib" + }, + { + "name": "Programming Language", + "value": "any" } ], "files": [ "file.js" ], - "opened": [ - { - "type": "file", - "panelNumber": 0, - "content": "file.js" - } - ] + "opened": [] }, - "bloomsObjectiveLevel": "", - "learningObjectives": "", + "bloomsObjectiveLevel": "1", + "learningObjectives": "learning", "tokens": { "blank": [ { @@ -1679,9 +1637,6 @@ 0 ], "regexPositions": [] - }, - "showGuidanceAfterResponseOption": { - "type": "Never" } } }, @@ -1691,32 +1646,40 @@ "source": { "name": "fib regex", "showName": true, - "instructions": "run", + "instructions": "*Instructions here*", + "showValues": false, "text": "color or colour - <<>>\nfrom 1 to 100 - <<>>\ngmail check - <<>>\nstart from word \"begin\" - <<>>\nends with word \"end\" - <<>> ", - "guidance": "answer and rationale", + "distractors": "", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "showExpectedAnswer": true, "points": 100, - "showValues": false, + "arePartialPointsAllowed": false, "metadata": { "tags": [ { "name": "Assessment Type", "value": "Fill in the Blanks" + }, + { + "name": "Content", + "value": "fib" + }, + { + "name": "Programming Language", + "value": "any" } ], "files": [ "file.js" ], - "opened": [ - { - "type": "file", - "panelNumber": 0, - "content": "file.js" - } - ] + "opened": [] }, - "bloomsObjectiveLevel": "", - "learningObjectives": "", + "bloomsObjectiveLevel": "1", + "learningObjectives": "learning", "tokens": { "blank": [ { @@ -1760,9 +1723,6 @@ 3, 4 ] - }, - "showGuidanceAfterResponseOption": { - "type": "Never" } } }, @@ -1772,14 +1732,14 @@ "source": { "name": "advanced code test partial v2 default format", "showName": true, - "instructions": "run", + "instructions": "*Instructions here*", "command": "python default_format_partial_v2.py", "timeoutSeconds": 40, - "guidance": "answer and rationale", + "guidance": "**Rationale**", "showGuidanceAfterResponseOption": { - "type": "Never" + "type": "Always" }, - "maxAttemptsCount": 5, + "maxAttemptsCount": 0, "points": 100, "arePartialPointsAllowed": true, "metadata": { @@ -1787,15 +1747,23 @@ { "name": "Assessment Type", "value": "Advanced Code Test" + }, + { + "name": "Content", + "value": "advanced" + }, + { + "name": "Programming Language", + "value": "python" } ], "files": [ - "file.js" + "default_format_partial_v2.py" ], "opened": [] }, "bloomsObjectiveLevel": "", - "learningObjectives": "" + "learningObjectives": "learning" } }, { @@ -1804,36 +1772,38 @@ "source": { "name": "advanced code test html partial v2", "showName": true, - "instructions": "run", + "instructions": "*Instructions here*", "command": "python html_partial_v2.py", - "arePartialPointsAllowed": true, "timeoutSeconds": 40, - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "points": 100, - "oneTimeTest": false, + "arePartialPointsAllowed": true, "metadata": { "tags": [ { "name": "Assessment Type", "value": "Advanced Code Test" + }, + { + "name": "Content", + "value": "advanced" + }, + { + "name": "Programming Language", + "value": "python" } ], "files": [ - "file.js" + "html_partial_v2.py" ], - "opened": [ - { - "type": "file", - "panelNumber": 0, - "content": "file.js" - } - ] + "opened": [] }, - "bloomsObjectiveLevel": "", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Never" - } + "bloomsObjectiveLevel": "1", + "learningObjectives": "learning" } }, { @@ -1842,36 +1812,38 @@ "source": { "name": "advanced code test md partial v2", "showName": true, - "instructions": "run", + "instructions": "*Instructions here*", "command": "python md_partial_v2.py", - "arePartialPointsAllowed": true, "timeoutSeconds": 40, - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "points": 100, - "oneTimeTest": false, + "arePartialPointsAllowed": true, "metadata": { "tags": [ { "name": "Assessment Type", "value": "Advanced Code Test" + }, + { + "name": "Content", + "value": "advanced" + }, + { + "name": "Programming Language", + "value": "python" } ], "files": [ - "file.js" + "md_partial_v2.py" ], - "opened": [ - { - "type": "file", - "panelNumber": 0, - "content": "file.js" - } - ] + "opened": [] }, - "bloomsObjectiveLevel": "", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Never" - } + "bloomsObjectiveLevel": "1", + "learningObjectives": "learning" } }, { @@ -1880,36 +1852,38 @@ "source": { "name": "advanced code test txt partial v2", "showName": true, - "instructions": "run", + "instructions": "*Instructions here*", "command": "python txt_partial_v2.py", - "arePartialPointsAllowed": true, "timeoutSeconds": 40, - "guidance": "answer and rationale", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, "points": 100, - "oneTimeTest": false, + "arePartialPointsAllowed": true, "metadata": { "tags": [ { "name": "Assessment Type", "value": "Advanced Code Test" + }, + { + "name": "Content", + "value": "advanced" + }, + { + "name": "Programming Language", + "value": "python" } ], "files": [ - "file.js" + "txt_partial_v2.py" ], - "opened": [ - { - "type": "file", - "panelNumber": 0, - "content": "file.js" - } - ] + "opened": [] }, - "bloomsObjectiveLevel": "", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Never" - } + "bloomsObjectiveLevel": "1", + "learningObjectives": "learning" } }, { @@ -1918,31 +1892,39 @@ "source": { "name": "free text auto partial v2", "showName": true, - "instructions": "run", + "instructions": "*Instructions here*", "command": "python freetextauto_partial_v2.py", "timeoutSeconds": 40, - "guidance": "answer and rationale", + "guidance": "**Rationale**", "showGuidanceAfterResponseOption": { - "type": "Never" + "type": "Always" }, - "maxAttemptsCount": 5, + "maxAttemptsCount": 0, "arePartialPointsAllowed": true, - "previewType": "NONE", + "previewType": "MARKDOWN", "points": 100, "metadata": { "tags": [ { "name": "Assessment Type", "value": "Free Text Autograde" + }, + { + "name": "Content", + "value": "free auto partial v2" + }, + { + "name": "Programming Language", + "value": "python" } ], "files": [ - "file.js" + "freetextauto_partial_v2.py" ], "opened": [] }, - "bloomsObjectiveLevel": "", - "learningObjectives": "" + "bloomsObjectiveLevel": "1", + "learningObjectives": "learning" } }, { @@ -1951,21 +1933,24 @@ "source": { "name": "standard partial empty output", "showName": true, - "instructions": "run", + "instructions": "*Instructions here*", "command": "python standard_partial_empty.py", "preExecuteCommand": "", - "arePartialPointsAllowed": true, - "guidance": "answer and rationale", - "points": 100, - "oneTimeTest": false, "options": { + "timeout": 30, "ignoreCase": false, "ignoreWhitespaces": true, "ignoreNewline": true, - "matchSubstring": false, - "timeout": 30 + "matchSubstring": false }, - "showExpectedAnswer": true, + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, + "points": 100, + "showExpectedAnswer": false, + "arePartialPointsAllowed": true, "sequence": [ { "arguments": "", @@ -2008,16 +1993,21 @@ { "name": "Assessment Type", "value": "Standard Code Test" + }, + { + "name": "Content", + "value": "code test" + }, + { + "name": "Programming Language", + "value": "python" } ], "files": [], "opened": [] }, - "bloomsObjectiveLevel": "", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Always" - } + "bloomsObjectiveLevel": "1", + "learningObjectives": "learning" } }, { @@ -2026,21 +2016,24 @@ "source": { "name": "standard partial all symbols", "showName": true, - "instructions": "run", - "command": "python standard_partial_allsymbols.py", + "instructions": "*Instructions here*", + "command": "python .folder/standard_partial_allsymbols.py", "preExecuteCommand": "", - "arePartialPointsAllowed": true, - "guidance": "answer and rationale", - "points": 100, - "oneTimeTest": false, "options": { + "timeout": 30, "ignoreCase": true, "ignoreWhitespaces": true, "ignoreNewline": true, - "matchSubstring": false, - "timeout": 30 + "matchSubstring": false }, - "showExpectedAnswer": true, + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, + "points": 100, + "showExpectedAnswer": false, + "arePartialPointsAllowed": true, "sequence": [ { "arguments": "", @@ -2097,16 +2090,21 @@ { "name": "Assessment Type", "value": "Standard Code Test" + }, + { + "name": "Content", + "value": "code test" + }, + { + "name": "Programming Language", + "value": "python" } ], "files": [], "opened": [] }, - "bloomsObjectiveLevel": "", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Always" - } + "bloomsObjectiveLevel": "1", + "learningObjectives": "learning" } }, { @@ -2115,21 +2113,24 @@ "source": { "name": "standard partial arguments count", "showName": true, - "instructions": "run", + "instructions": "*Instructions here*", "command": "python standard_partial_argumentscount.py", "preExecuteCommand": "", - "arePartialPointsAllowed": true, - "guidance": "answer and rationale", - "points": 100, - "oneTimeTest": false, "options": { + "timeout": 30, "ignoreCase": false, "ignoreWhitespaces": true, "ignoreNewline": true, - "matchSubstring": false, - "timeout": 30 + "matchSubstring": false + }, + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" }, + "maxAttemptsCount": 0, + "points": 100, "showExpectedAnswer": true, + "arePartialPointsAllowed": true, "sequence": [ { "arguments": "one two three four", @@ -2172,16 +2173,21 @@ { "name": "Assessment Type", "value": "Standard Code Test" + }, + { + "name": "Content", + "value": "code test" + }, + { + "name": "Programming Language", + "value": "python" } ], "files": [], "opened": [] }, - "bloomsObjectiveLevel": "", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Always" - } + "bloomsObjectiveLevel": "1", + "learningObjectives": "learning" } }, { @@ -2190,21 +2196,24 @@ "source": { "name": "standard partial inputs in output", "showName": true, - "instructions": "run", + "instructions": "*Instructions here*", "command": "python standard_partial_inputcommands.py", "preExecuteCommand": "", - "arePartialPointsAllowed": true, - "guidance": "answer and rationale", - "points": 100, - "oneTimeTest": false, "options": { + "timeout": 30, "ignoreCase": false, "ignoreWhitespaces": true, "ignoreNewline": true, - "matchSubstring": false, - "timeout": 30 + "matchSubstring": false + }, + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" }, + "maxAttemptsCount": 0, + "points": 100, "showExpectedAnswer": true, + "arePartialPointsAllowed": true, "sequence": [ { "arguments": "", @@ -2247,48 +2256,53 @@ { "name": "Assessment Type", "value": "Standard Code Test" + }, + { + "name": "Content", + "value": "code test" + }, + { + "name": "Programming Language", + "value": "python" } ], "files": [], "opened": [] }, - "bloomsObjectiveLevel": "", - "learningObjectives": "", - "showGuidanceAfterResponseOption": { - "type": "Always" - } + "bloomsObjectiveLevel": "1", + "learningObjectives": "learning" } }, { "type": "free-text", "taskId": "free-text-573761361", "source": { - "name": "free text with predefined rubrics", + "name": "free text with predefined rubrics (markdown + latex)", "showName": true, - "instructions": "run", - "guidance": "answer and rationale", + "instructions": "*Instructions here*", + "guidance": "**Rationale**", "showGuidanceAfterResponseOption": { - "type": "Never" + "type": "Always" }, - "maxAttemptsCount": 5, - "previewType": "NONE", + "maxAttemptsCount": 0, + "previewType": "MARKDOWN", "arePartialPointsAllowed": true, "points": 100, "rubrics": [ { "id": "16578323-24c3-9bc1-e1b4-3e92e290b3d7", "weight": 10, - "message": "-10 predefined points in free text" + "message": "### -10 predefined points in free text" }, { "id": "45f0d96e-3c02-8591-c4b6-cd58bd65471d", "weight": 20, - "message": "-20 predefined points in free text" + "message": "**-20 predefined points in free text**" }, { "id": "67f42e77-431a-6a27-92b2-636cba3e5b3f", "weight": 30, - "message": "-30 predefined points in free text" + "message": "*-30 predefined points in free text*" } ], "metadata": { @@ -2296,39 +2310,46 @@ { "name": "Assessment Type", "value": "Free Text" + }, + { + "name": "Content", + "value": "fib" + }, + { + "name": "Programming Language", + "value": "any" } ], "files": [], "opened": [] }, - "bloomsObjectiveLevel": "", - "learningObjectives": "" + "bloomsObjectiveLevel": "2", + "learningObjectives": "learning" } }, { "type": "grade-book", "taskId": "grade-book-3769268793", "source": { - "name": "gradebook3 with predefined rubrics", + "name": "gradebook with predefined rubrics", "showName": true, - "isCollapsedOnStart": false, "points": 100, "arePartialPointsAllowed": true, "rubrics": [ { "id": "fae170fa-2d0b-912e-2381-5941c9aa8c96", "weight": 5, - "message": "-5 predefined points in gradebook" + "message": "### -5 predefined points in gradebook" }, { "id": "7efcdd4a-d3e4-8f0b-2831-42e04cd1b52f", "weight": 15, - "message": "-15 predefined points in gradebook" + "message": "**-15 predefined points in gradebook**" }, { "id": "708ce97f-dcda-4f14-a72a-e403cbca14bf", "weight": 25, - "message": "-25 predefined points in gradebook" + "message": "*-25 predefined points in gradebook*" } ], "metadata": { @@ -2347,5 +2368,419 @@ "type": "Never" } } + }, + { + "type": "multiple-choice", + "taskId": "multiple-choice-1504269778", + "source": { + "name": "multichoice multiple response partial", + "showName": true, + "instructions": "*Instructions here*", + "multipleResponse": true, + "isRandomized": false, + "answers": [ + { + "_id": "db0ef4eb-14d0-e162-7a73-e1a10c516099", + "correct": true, + "answer": "**correct answer 1**" + }, + { + "_id": "79a9825b-c33e-9984-f395-c0e212b8f8b6", + "correct": false, + "answer": "**incorrect answer 1**" + }, + { + "_id": "0b33359f-b236-a329-3a0a-5c5480d56127", + "correct": true, + "answer": "**correct answer 2**" + }, + { + "_id": "434de086-f069-d818-a79c-6145c5a1f94a", + "correct": false, + "answer": "**incorrect answer 2**" + }, + { + "_id": "c3219a8d-7e3d-a5b9-c638-aa159d9bf273", + "correct": false, + "answer": "**incorrect answer 3**" + } + ], + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, + "showExpectedAnswer": true, + "points": 100, + "incorrectPoints": 0, + "arePartialPointsAllowed": true, + "metadata": { + "tags": [ + { + "name": "Assessment Type", + "value": "Multiple Choice" + }, + { + "name": "Content", + "value": "content" + }, + { + "name": "Programming Language", + "value": "language" + } + ], + "files": [], + "opened": [] + }, + "bloomsObjectiveLevel": "1", + "learningObjectives": "learning" + } + }, + { + "type": "fill-in-the-blanks", + "taskId": "fill-in-the-blanks-1382628155", + "source": { + "name": "fib partial show possible values", + "showName": true, + "instructions": "*Instructions here*", + "showValues": true, + "text": "0 <<<1>>> 2 <<<3>>> 4 <<<5>>> 6", + "distractors": "", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, + "showExpectedAnswer": true, + "points": 100, + "arePartialPointsAllowed": true, + "metadata": { + "tags": [ + { + "name": "Assessment Type", + "value": "Fill in the Blanks" + }, + { + "name": "Content", + "value": "fib" + }, + { + "name": "Programming Language", + "value": "any" + } + ], + "files": [], + "opened": [] + }, + "bloomsObjectiveLevel": "1", + "learningObjectives": "learning", + "tokens": { + "blank": [ + "1", + "3", + "5" + ], + "text": [ + "0 ", + 0, + " 2 ", + 0, + " 4 ", + 0, + " 6" + ], + "regexPositions": [] + } + } + }, + { + "type": "fill-in-the-blanks", + "taskId": "fill-in-the-blanks-1199723962", + "source": { + "name": "fib partial do not show possible values", + "showName": true, + "instructions": "*Instructions here*", + "showValues": false, + "text": "0 <<<1>>> 2 <<<3>>> 4 <<<5>>> 6", + "distractors": "", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, + "showExpectedAnswer": false, + "points": 100, + "arePartialPointsAllowed": true, + "metadata": { + "tags": [ + { + "name": "Assessment Type", + "value": "Fill in the Blanks" + }, + { + "name": "Content", + "value": "fib" + }, + { + "name": "Programming Language", + "value": "any" + } + ], + "files": [], + "opened": [] + }, + "bloomsObjectiveLevel": "2", + "learningObjectives": "learning", + "tokens": { + "blank": [ + "1", + "3", + "5" + ], + "text": [ + "0 ", + 0, + " 2 ", + 0, + " 4 ", + 0, + " 6" + ], + "regexPositions": [] + } + } + }, + { + "type": "fill-in-the-blanks", + "taskId": "fill-in-the-blanks-3697393457", + "source": { + "name": "fib distractors show possible values", + "showName": true, + "instructions": "*Instructions here*", + "showValues": true, + "text": "0 <<<1>>> 2 <<<3>>> 4 <<<5>>> 6", + "distractors": "7\n8\n9", + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, + "showExpectedAnswer": false, + "points": 100, + "arePartialPointsAllowed": false, + "metadata": { + "tags": [ + { + "name": "Assessment Type", + "value": "Fill in the Blanks" + }, + { + "name": "Content", + "value": "fib" + }, + { + "name": "Programming Language", + "value": "any" + } + ], + "files": [], + "opened": [] + }, + "bloomsObjectiveLevel": "1", + "learningObjectives": "learning", + "tokens": { + "blank": [ + "1", + "3", + "5" + ], + "text": [ + "0 ", + 0, + " 2 ", + 0, + " 4 ", + 0, + " 6" + ], + "regexPositions": [] + } + } + }, + { + "type": "code-output-compare", + "taskId": "code-output-compare-3355749517", + "source": { + "name": "standard code test empty output", + "showName": true, + "instructions": "*Instructions here*\n![.guides/img/balancing](.guides/img/balancing.gif)", + "command": "python .guides/empty.py", + "preExecuteCommand": "sleep 1", + "options": { + "timeout": 30, + "ignoreCase": false, + "ignoreWhitespaces": true, + "ignoreNewline": true, + "matchSubstring": false + }, + "guidance": "**Rationale**\n\n", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, + "points": 20, + "showExpectedAnswer": true, + "arePartialPointsAllowed": false, + "sequence": [ + { + "arguments": "", + "input": "", + "output": "test", + "showFeedback": true, + "feedback": "error feedback1" + }, + { + "arguments": "1 2 3", + "input": "", + "output": "", + "showFeedback": true, + "feedback": "error feedback2" + }, + { + "arguments": "", + "input": "1 2 3", + "output": "", + "showFeedback": true, + "feedback": "error feedback3" + } + ], + "metadata": { + "tags": [ + { + "name": "Assessment Type", + "value": "Standard Code Test" + }, + { + "name": "Content", + "value": "code test" + }, + { + "name": "Programming Language", + "value": "python" + } + ], + "files": [ + ".guides/img/balancing.gif", + ".guides/empty.py" + ], + "layout": "2-panels-tree", + "pageTitle": "Standard code tests", + "buttonText": "Check It!", + "content": "\n<<<<>>>>\n\n", + "opened": [] + }, + "bloomsObjectiveLevel": "3", + "learningObjectives": "learning" + }, + "linkedId": "f254c416-f2e6-4dae-a5fd-7b19f4c5db42", + "libraryId": "c9f48d53-055e-4bee-8d66-72d9cf9da6be", + "version": 3 + }, + { + "type": "test", + "taskId": "test-2139669923", + "source": { + "name": "advanced code test partial v1", + "showName": true, + "instructions": "*Instructions here*\n![.guides/img/gagarin](.guides/img/gagarin.jpg)", + "command": "python .guides/advanced_partial_v1.py", + "timeoutSeconds": 40, + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, + "points": 20, + "arePartialPointsAllowed": true, + "metadata": { + "tags": [ + { + "name": "Assessment Type", + "value": "Advanced Code Test" + }, + { + "name": "Content", + "value": "advanced partial" + }, + { + "name": "Programming Language", + "value": "python" + } + ], + "files": [ + ".guides/img/gagarin.jpg", + ".guides/advanced_partial_v1.py" + ], + "layout": "2-panels-tree", + "pageTitle": "Advanced code tests", + "buttonText": "Check It!", + "content": "\n<<<<>>>>\n\n", + "opened": [] + }, + "bloomsObjectiveLevel": "3", + "learningObjectives": "learning" + }, + "linkedId": "eb9c9a2c-e52e-43ca-9998-f98dc0a31554", + "libraryId": "c9f48d53-055e-4bee-8d66-72d9cf9da6be", + "version": 1 + }, + { + "type": "free-text-auto", + "taskId": "free-text-auto-3096598791", + "source": { + "name": "free text auto partial v1", + "showName": true, + "instructions": "*Instructions here*\n![.guides/img/MARBLES](.guides/img/MARBLES.BMP)", + "command": "python .guides/freetextauto_partial_v1.py", + "timeoutSeconds": 40, + "guidance": "**Rationale**", + "showGuidanceAfterResponseOption": { + "type": "Always" + }, + "maxAttemptsCount": 0, + "arePartialPointsAllowed": true, + "previewType": "NONE", + "points": 20, + "metadata": { + "tags": [ + { + "name": "Assessment Type", + "value": "Free Text Autograde" + }, + { + "name": "Content", + "value": "free auto partial" + }, + { + "name": "Programming Language", + "value": "python" + } + ], + "files": [ + ".guides/img/MARBLES.BMP", + ".guides/freetextauto_partial_v1.py" + ], + "layout": "2-panels-tree", + "pageTitle": "Free text auto", + "buttonText": "Check It!", + "content": "\n<<<<>>>>\n\n", + "opened": [] + }, + "bloomsObjectiveLevel": "6", + "learningObjectives": "LEARNING OBJECTIVES" + }, + "linkedId": "7dc20b84-9f9f-4b69-ab47-30ba34ab1a79", + "libraryId": "c9f48d53-055e-4bee-8d66-72d9cf9da6be", + "version": 1 } ] \ No newline at end of file diff --git a/.guides_v2/book.json b/.guides_v2/book.json new file mode 100644 index 00000000..cb46e5df --- /dev/null +++ b/.guides_v2/book.json @@ -0,0 +1,47 @@ +{ + "name": "example assignment", + "children": [ + { + "title": "Standard code tests", + "id": "9c8623eb-9eeb-5235-7dd8-4c29ba6f63be", + "pageId": "9c8623eb-9eeb-5235-7dd8-4c29ba6f63be", + "type": "page" + }, + { + "title": "Advanced code tests", + "id": "83a97204-cf44-4e41-24fe-94a8003bc862", + "pageId": "83a97204-cf44-4e41-24fe-94a8003bc862", + "type": "page" + }, + { + "id": "8af92221-b20c-92fe-b4b3-41cc0c25f745", + "title": "Free text auto", + "pageId": "0ed1d6ab-26a3-3a03-379c-6ea3e74d37d6", + "type": "page" + }, + { + "id": "9b6f3bf7-9d90-0ebb-390c-c44fd468f919", + "title": "New Page", + "pageId": "1af82080-3427-d10f-2fc9-3b3dc9246623", + "type": "page" + }, + { + "id": "dd4ab630-2762-cc13-8436-475f4d0552cf", + "title": "Free text auto", + "pageId": "246d396c-7cf4-693f-4d71-8cd26a758f18", + "type": "page" + }, + { + "id": "15c2c0ca-8ade-fbfa-5a86-2b94dab69f05", + "title": "Advanced code tests", + "pageId": "4c246cd9-1ed2-8f91-ab6e-9f8683efb8b1", + "type": "page" + }, + { + "id": "e3c8d70a-4c85-c7bd-cad3-78434000af0e", + "title": "Standard code tests", + "pageId": "d5348d72-71de-94f1-7a17-b196474900a8", + "type": "page" + } + ] +} \ No newline at end of file diff --git a/.guides_v2/content/Advanced-code-tests-4c24.md b/.guides_v2/content/Advanced-code-tests-4c24.md new file mode 100644 index 00000000..65c9dd96 --- /dev/null +++ b/.guides_v2/content/Advanced-code-tests-4c24.md @@ -0,0 +1,3 @@ + +{Check It!|assessment}(test-2139669923) + diff --git a/.guides_v2/content/Advanced-code-tests-83a9.md b/.guides_v2/content/Advanced-code-tests-83a9.md new file mode 100644 index 00000000..826dc195 --- /dev/null +++ b/.guides_v2/content/Advanced-code-tests-83a9.md @@ -0,0 +1,4 @@ + +{Check It!|assessment}(test-3999572164) + +{Check It!|assessment}(test-1798311137) \ No newline at end of file diff --git a/.guides_v2/content/Free-text-auto-0ed1.md b/.guides_v2/content/Free-text-auto-0ed1.md new file mode 100644 index 00000000..fd16ffd8 --- /dev/null +++ b/.guides_v2/content/Free-text-auto-0ed1.md @@ -0,0 +1,4 @@ + +{Check It!|assessment}(free-text-auto-4024036708) + +{Check It!|assessment}(free-text-auto-252956828) \ No newline at end of file diff --git a/.guides_v2/content/Free-text-auto-246d.md b/.guides_v2/content/Free-text-auto-246d.md new file mode 100644 index 00000000..8d18142a --- /dev/null +++ b/.guides_v2/content/Free-text-auto-246d.md @@ -0,0 +1,3 @@ + +{Check It!|assessment}(free-text-auto-3096598791) + diff --git a/.guides_v2/content/New-Page-1af8.md b/.guides_v2/content/New-Page-1af8.md new file mode 100644 index 00000000..67de024e --- /dev/null +++ b/.guides_v2/content/New-Page-1af8.md @@ -0,0 +1 @@ +# Sample content New Page \ No newline at end of file diff --git a/.guides_v2/content/Standard-code-tests-9c86.md b/.guides_v2/content/Standard-code-tests-9c86.md new file mode 100644 index 00000000..da5c9995 --- /dev/null +++ b/.guides_v2/content/Standard-code-tests-9c86.md @@ -0,0 +1,8 @@ + +{Check It!|assessment}(code-output-compare-1650925873) + +{Check It!|assessment}(code-output-compare-364020762) + + + + diff --git a/.guides_v2/content/Standard-code-tests-d534.md b/.guides_v2/content/Standard-code-tests-d534.md new file mode 100644 index 00000000..1fbe7bf5 --- /dev/null +++ b/.guides_v2/content/Standard-code-tests-d534.md @@ -0,0 +1,3 @@ + +{Check It!|assessment}(code-output-compare-3355749517) + diff --git a/.guides_v2/empty.py b/.guides_v2/empty.py new file mode 100644 index 00000000..dc0f1530 --- /dev/null +++ b/.guides_v2/empty.py @@ -0,0 +1,9 @@ +#!/usr/bin/env python + +import sys + +total = len(sys.argv) + +print ("%s" % "test") + + diff --git a/.guides_v2/freetextauto_partial_v1.py b/.guides_v2/freetextauto_partial_v1.py new file mode 100755 index 00000000..0bdb0142 --- /dev/null +++ b/.guides_v2/freetextauto_partial_v1.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python +import os, sys +import random +text = os.environ['CODIO_FREE_TEXT_ANSWER'] +sys.path.append('/usr/share/codio/assessments') +from lib.grade import send_partial + +def main(): + grade = int(text) + feedback = text + ' points' + print(feedback) + res = send_partial(int(round(grade))) + exit( 0 if res else 1) + +main() \ No newline at end of file diff --git a/.guides_v2/img/MARBLES.BMP b/.guides_v2/img/MARBLES.BMP new file mode 100644 index 00000000..06a1c009 Binary files /dev/null and b/.guides_v2/img/MARBLES.BMP differ diff --git a/.guides_v2/img/balancing.gif b/.guides_v2/img/balancing.gif new file mode 100644 index 00000000..e1141abb Binary files /dev/null and b/.guides_v2/img/balancing.gif differ diff --git a/.guides_v2/img/gagarin.jpg b/.guides_v2/img/gagarin.jpg new file mode 100644 index 00000000..a7917660 Binary files /dev/null and b/.guides_v2/img/gagarin.jpg differ diff --git a/.guides_v2/metadata.json b/.guides_v2/metadata.json new file mode 100644 index 00000000..abd14bc5 --- /dev/null +++ b/.guides_v2/metadata.json @@ -0,0 +1,146 @@ +{ + "sections": [ + { + "id": "9c8623eb-9eeb-5235-7dd8-4c29ba6f63be", + "title": "Standard code tests", + "files": [ + { + "path": "#tabs", + "action": "close" + } + ], + "layout": "2-panels-tree", + "path": [], + "type": "markdown", + "content-file": ".guides/content/Standard-code-tests-9c86.md", + "chapter": false, + "reset": [], + "teacherOnly": false, + "closeTerminalSession": true, + "learningObjectives": "" + }, + { + "id": "83a97204-cf44-4e41-24fe-94a8003bc862", + "title": "Advanced code tests", + "files": [ + { + "path": "#tabs", + "action": "close" + } + ], + "layout": "2-panels-tree", + "path": [], + "type": "markdown", + "content-file": ".guides/content/Advanced-code-tests-83a9.md", + "chapter": false, + "reset": [], + "teacherOnly": false, + "closeTerminalSession": true, + "learningObjectives": "" + }, + { + "id": "0ed1d6ab-26a3-3a03-379c-6ea3e74d37d6", + "title": "Free text auto", + "files": [ + { + "path": "#tabs", + "action": "close" + } + ], + "layout": "2-panels-tree", + "path": [], + "type": "markdown", + "content-file": ".guides/content/Free-text-auto-0ed1.md", + "chapter": false, + "reset": [], + "teacherOnly": false, + "closeTerminalSession": true, + "learningObjectives": "" + }, + { + "id": "1af82080-3427-d10f-2fc9-3b3dc9246623", + "title": "New Page", + "files": [], + "path": [], + "type": "markdown", + "content-file": ".guides/content/New-Page-1af8.md", + "chapter": false, + "reset": [], + "teacherOnly": false, + "closeTerminalSession": true, + "learningObjectives": "" + }, + { + "id": "246d396c-7cf4-693f-4d71-8cd26a758f18", + "title": "Free text auto", + "files": [ + { + "path": "#tabs", + "action": "close" + } + ], + "layout": "2-panels-tree", + "path": [], + "type": "markdown", + "content-file": ".guides/content/Free-text-auto-246d.md", + "chapter": false, + "reset": [], + "teacherOnly": false, + "closeTerminalSession": false, + "learningObjectives": "", + "readOnly": false + }, + { + "id": "4c246cd9-1ed2-8f91-ab6e-9f8683efb8b1", + "title": "Advanced code tests", + "files": [ + { + "path": "#tabs", + "action": "close" + } + ], + "layout": "2-panels-tree", + "path": [], + "type": "markdown", + "content-file": ".guides/content/Advanced-code-tests-4c24.md", + "chapter": false, + "reset": [], + "teacherOnly": false, + "closeTerminalSession": false, + "learningObjectives": "", + "readOnly": false + }, + { + "id": "d5348d72-71de-94f1-7a17-b196474900a8", + "title": "Standard code tests", + "files": [ + { + "path": "#tabs", + "action": "close" + } + ], + "layout": "2-panels-tree", + "path": [], + "type": "markdown", + "content-file": ".guides/content/Standard-code-tests-d534.md", + "chapter": false, + "reset": [], + "teacherOnly": false, + "closeTerminalSession": false, + "learningObjectives": "", + "readOnly": false + } + ], + "theme": "light", + "scripts": [], + "lexikonTopic": "", + "suppressPageNumbering": false, + "useSubmitButtons": true, + "useMarkAsComplete": true, + "hideMenu": false, + "allowGuideClose": false, + "collapsedOnStart": false, + "hideSectionsToggle": false, + "hideBackToDashboard": false, + "protectLayout": false +} \ No newline at end of file diff --git a/.guides_v2/scripts/example.py b/.guides_v2/scripts/example.py new file mode 100755 index 00000000..a08129ae --- /dev/null +++ b/.guides_v2/scripts/example.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python + +import os +import random +import json +import datetime + +# import grade submit function +import sys +sys.path.append('/usr/share/codio/assessments') +from lib.grade import send_grade + +#################### +# Helper functions # +#################### + + +# Get the url to send the results to +CODIO_AUTOGRADE_URL = os.environ["CODIO_AUTOGRADE_URL"] +CODIO_UNIT_DATA = os.environ["CODIO_AUTOGRADE_ENV"] + +def main(): + # Execute the test on the student's code + grade = validate_code() + # Send the grade back to Codio with the penatly factor applied + res = send_grade(int(round(grade))) + print(CODIO_UNIT_DATA) + exit( 0 if res else 1) + +########################################## +# You only need to modify the code below # +########################################## + +# Your actual test logic +# Our demo function is just generating some random score +def validate_code(): + return random.randint(10, 100) + +main() diff --git a/.guides_v2/scripts/example.sh b/.guides_v2/scripts/example.sh new file mode 100755 index 00000000..63f3d396 --- /dev/null +++ b/.guides_v2/scripts/example.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -e +# Your actual test logic +# Our demo function is just generating some random score +POINTS=$(( ( RANDOM % 100 ) + 1 )) +# Show json based passed environment +echo $CODIO_AUTOGRADE_ENV +# Send the grade back to Codio +curl --retry 3 -s "$CODIO_AUTOGRADE_URL&grade=$POINTS" \ No newline at end of file diff --git a/.guides_v2/scripts_v2/default_format_example.py b/.guides_v2/scripts_v2/default_format_example.py new file mode 100755 index 00000000..3a6ee4b6 --- /dev/null +++ b/.guides_v2/scripts_v2/default_format_example.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python +import os +import random +import json +# import grade submit function +import sys +sys.path.append('/usr/share/codio/assessments') +from lib.grade import send_grade_v2, FORMAT_V2_MD, FORMAT_V2_HTML, FORMAT_V2_TXT +CODIO_UNIT_DATA = os.environ["CODIO_AUTOGRADE_ENV"] +def main(): + # Execute the test on the student's code + grade = random.randint(10, 100) + + feedback = '## txt
' + # file_name = '/home/codio/workspace/read.txt' + # with open(file_name, 'r') as file: + # feedback = file.read() + + + # Send the grade back to Codio with the penatly factor applied + + res = send_grade_v2(int(round(grade)), feedback) + print(CODIO_UNIT_DATA) + exit( 0 if res else 1) + +main() \ No newline at end of file diff --git a/.guides_v2/scripts_v2/grade_fail_example.py b/.guides_v2/scripts_v2/grade_fail_example.py new file mode 100644 index 00000000..acf6525e --- /dev/null +++ b/.guides_v2/scripts_v2/grade_fail_example.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python +import os +import random +import json +# import grade submit function +import sys +sys.path.append('/usr/share/codio/assessments') +from lib.grade import send_grade_v2, FORMAT_V2_MD, FORMAT_V2_HTML, FORMAT_V2_TXT +CODIO_UNIT_DATA = os.environ["CODIO_AUTOGRADE_ENV"] +def main(): + # Execute the test on the student's code + grade = random.randint(10, 100) + 200 + feedback = '' + file_name = '/home/codio/workspace/read.html' + with open(file_name, 'r') as file: + feedback = file.read() + + + # Send the grade back to Codio with the penatly factor applied + + res = send_grade_v2(int(round(grade)), feedback, FORMAT_V2_HTML) + print(CODIO_UNIT_DATA) + exit( 0 if res else 1) + +main() \ No newline at end of file diff --git a/.guides_v2/scripts_v2/html_example.py b/.guides_v2/scripts_v2/html_example.py new file mode 100755 index 00000000..afae8483 --- /dev/null +++ b/.guides_v2/scripts_v2/html_example.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python +import os +import random +import json +# import grade submit function +import sys +sys.path.append('/usr/share/codio/assessments') +from lib.grade import send_grade_v2, FORMAT_V2_MD, FORMAT_V2_HTML, FORMAT_V2_TXT +CODIO_UNIT_DATA = os.environ["CODIO_AUTOGRADE_ENV"] +def main(): + # Execute the test on the student's code + grade = random.randint(10, 100) + + feedback = ' html text ' + # file_name = '/home/codio/workspace/read.html' + # with open(file_name, 'r') as file: + # feedback = file.read() + + + # Send the grade back to Codio with the penatly factor applied + + res = send_grade_v2(int(round(grade)), feedback, FORMAT_V2_HTML) + print(CODIO_UNIT_DATA) + exit( 0 if res else 1) + +main() \ No newline at end of file diff --git a/.guides_v2/scripts_v2/html_example.sh b/.guides_v2/scripts_v2/html_example.sh new file mode 100755 index 00000000..6207de70 --- /dev/null +++ b/.guides_v2/scripts_v2/html_example.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -e + +env + +POINTS=$(( ( RANDOM % 100 ) + 1 )) +curl --retry 3 -s "$CODIO_AUTOGRADE_V2_URL" -d grade=$POINTS -d format=html -d feedback='
HTML text here
' \ No newline at end of file diff --git a/.guides_v2/scripts_v2/md_example.py b/.guides_v2/scripts_v2/md_example.py new file mode 100755 index 00000000..5292621b --- /dev/null +++ b/.guides_v2/scripts_v2/md_example.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python +import os +import random +import json +# import grade submit function +import sys +sys.path.append('/usr/share/codio/assessments') +from lib.grade import send_grade_v2, FORMAT_V2_MD, FORMAT_V2_HTML, FORMAT_V2_TXT +CODIO_UNIT_DATA = os.environ["CODIO_AUTOGRADE_ENV"] +def main(): + # Execute the test on the student's code + grade = random.randint(10, 100) + + feedback = '## markdown text' + # file_name = '/home/codio/workspace/read.md' + # with open(file_name, 'r') as file: + # feedback = file.read() + + + # Send the grade back to Codio with the penatly factor applied + + res = send_grade_v2(int(round(grade)), feedback, FORMAT_V2_MD) + print(CODIO_UNIT_DATA) + exit( 0 if res else 1) + +main() \ No newline at end of file diff --git a/.guides_v2/scripts_v2/md_example.sh b/.guides_v2/scripts_v2/md_example.sh new file mode 100755 index 00000000..bf1ee022 --- /dev/null +++ b/.guides_v2/scripts_v2/md_example.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -e + +env + +POINTS=$(( ( RANDOM % 100 ) + 1 )) +curl --retry 3 -s "$CODIO_AUTOGRADE_V2_URL" -d grade=$POINTS -d format=md -d feedback='### Markdown text here' \ No newline at end of file diff --git a/.guides_v2/scripts_v2/script_fail_example.py b/.guides_v2/scripts_v2/script_fail_example.py new file mode 100644 index 00000000..a71e7be7 --- /dev/null +++ b/.guides_v2/scripts_v2/script_fail_example.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python +import os +import random +import json +# import grade submit function +import sys +sys.path.append('/usr/share/codio/assessments') +from lib.grade import send_grade_v2, FORMAT_V2_MD, FORMAT_V2_HTML, FORMAT_V2_TXT +CODIO_UNIT_DATA = os.environ["CODIO_AUTOGRADE_ENV"] +def main(): + # Execute the test on the student's code + grade = random.randint(10, 100) + + feedback = '' + file_name = '/home/codio/workspace/read.html' + with open(file_name, 'r') as file: + feedback = file.read() + + + # Send the grade back to Codio with the penatly factor applied + +# res = send_grade_v2(int(round(grade)), feedback, FORMAT_V2_HTML) + print(CODIO_UNIT_DATA) + exit( 0 if res else 1) + +main() \ No newline at end of file diff --git a/.guides_v2/scripts_v2/txt_example.py b/.guides_v2/scripts_v2/txt_example.py new file mode 100755 index 00000000..c03e3fb8 --- /dev/null +++ b/.guides_v2/scripts_v2/txt_example.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python +import os +import random +import json +# import grade submit function +import sys +sys.path.append('/usr/share/codio/assessments') +from lib.grade import send_grade_v2, FORMAT_V2_MD, FORMAT_V2_HTML, FORMAT_V2_TXT +CODIO_UNIT_DATA = os.environ["CODIO_AUTOGRADE_ENV"] +def main(): + # Execute the test on the student's code + grade = random.randint(10, 100) + + feedback = '## txt
' + # file_name = '/home/codio/workspace/read.txt' + # with open(file_name, 'r') as file: + # feedback = file.read() + + + # Send the grade back to Codio with the penatly factor applied + + res = send_grade_v2(int(round(grade)), feedback, FORMAT_V2_TXT) + print(CODIO_UNIT_DATA) + exit( 0 if res else 1) + +main() \ No newline at end of file diff --git a/.guides_v2/scripts_v2/txt_example.sh b/.guides_v2/scripts_v2/txt_example.sh new file mode 100755 index 00000000..404e6e4f --- /dev/null +++ b/.guides_v2/scripts_v2/txt_example.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -e + +env + +POINTS=$(( ( RANDOM % 100 ) + 1 )) +curl --retry 3 -s "$CODIO_AUTOGRADE_V2_URL" -d grade=$POINTS -d format=txt -d feedback='Simple text here' \ No newline at end of file diff --git a/.guides_v2/scripts_v2_credit/default_format_example.py b/.guides_v2/scripts_v2_credit/default_format_example.py new file mode 100755 index 00000000..7cdfa722 --- /dev/null +++ b/.guides_v2/scripts_v2_credit/default_format_example.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python +import os +import random +import json +# import grade submit function +import sys +sys.path.append('/usr/share/codio/assessments') +from lib.grade import send_grade_v2, FORMAT_V2_MD, FORMAT_V2_HTML, FORMAT_V2_TXT +CODIO_UNIT_DATA = os.environ["CODIO_AUTOGRADE_ENV"] +def main(): + # Execute the test on the student's code + grade = random.randint(10, 100) + + feedback = ' html text ' + # file_name = '/home/codio/workspace/read.html' + # with open(file_name, 'r') as file: + # feedback = file.read() + + + # Send the grade back to Codio with the penatly factor applied + + res = send_grade_v2(int(round(grade)), feedback, extra_credit=int(round(grade))) + print(CODIO_UNIT_DATA) + exit( 0 if res else 1) + +main() \ No newline at end of file diff --git a/.guides_v2/scripts_v2_credit/default_format_example.sh b/.guides_v2/scripts_v2_credit/default_format_example.sh new file mode 100755 index 00000000..470ecc10 --- /dev/null +++ b/.guides_v2/scripts_v2_credit/default_format_example.sh @@ -0,0 +1,6 @@ +#!/bin/bash +set -e + + +POINTS=$(( ( RANDOM % 100 ) + 1 )) +curl --retry 3 -s "$CODIO_AUTOGRADE_V2_URL" -d grade=$POINTS -d feedback='
not HTML and not # markdown
' -d extra_credit=$POINTS \ No newline at end of file diff --git a/.guides_v2/scripts_v2_credit/grade_fail_example.py b/.guides_v2/scripts_v2_credit/grade_fail_example.py new file mode 100755 index 00000000..4c8c776a --- /dev/null +++ b/.guides_v2/scripts_v2_credit/grade_fail_example.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python +import os +import random +import json +# import grade submit function +import sys +sys.path.append('/usr/share/codio/assessments') +from lib.grade import send_grade_v2, FORMAT_V2_MD, FORMAT_V2_HTML, FORMAT_V2_TXT +CODIO_UNIT_DATA = os.environ["CODIO_AUTOGRADE_ENV"] +def main(): + # Execute the test on the student's code + grade = random.randint(10, 100) + 200 + feedback = ' html text ' + # file_name = '/home/codio/workspace/read.html' + # with open(file_name, 'r') as file: + # feedback = file.read() + + + # Send the grade back to Codio with the penatly factor applied + + res = send_grade_v2(int(round(grade)), feedback, FORMAT_V2_HTML) + print(CODIO_UNIT_DATA) + exit( 0 if res else 1) + +main() \ No newline at end of file diff --git a/.guides_v2/scripts_v2_credit/html_example.py b/.guides_v2/scripts_v2_credit/html_example.py new file mode 100755 index 00000000..fc6b7e38 --- /dev/null +++ b/.guides_v2/scripts_v2_credit/html_example.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python +import os +import random +import json +# import grade submit function +import sys +sys.path.append('/usr/share/codio/assessments') +from lib.grade import send_grade_v2, FORMAT_V2_MD, FORMAT_V2_HTML, FORMAT_V2_TXT +CODIO_UNIT_DATA = os.environ["CODIO_AUTOGRADE_ENV"] +def main(): + # Execute the test on the student's code + grade = random.randint(10, 100) + + feedback = ' html text ' + # file_name = '/home/codio/workspace/read.html' + # with open(file_name, 'r') as file: + # feedback = file.read() + + + # Send the grade back to Codio with the penatly factor applied + + res = send_grade_v2(int(round(grade)), feedback, FORMAT_V2_HTML, int(round(grade))) + print(CODIO_UNIT_DATA) + exit( 0 if res else 1) + +main() \ No newline at end of file diff --git a/.guides_v2/scripts_v2_credit/html_example.sh b/.guides_v2/scripts_v2_credit/html_example.sh new file mode 100755 index 00000000..a4f460c6 --- /dev/null +++ b/.guides_v2/scripts_v2_credit/html_example.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -e + +# env + +POINTS=$(( ( RANDOM % 100 ) + 1 )) +curl --retry 3 -s "$CODIO_AUTOGRADE_V2_URL" -d grade=$POINTS -d format=html -d feedback='
HTML text here
' -d extra_credit=$POINTS \ No newline at end of file diff --git a/.guides_v2/scripts_v2_credit/md_example.py b/.guides_v2/scripts_v2_credit/md_example.py new file mode 100755 index 00000000..7af52399 --- /dev/null +++ b/.guides_v2/scripts_v2_credit/md_example.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python +import os +import random +import json +# import grade submit function +import sys +sys.path.append('/usr/share/codio/assessments') +from lib.grade import send_grade_v2, FORMAT_V2_MD, FORMAT_V2_HTML, FORMAT_V2_TXT +CODIO_UNIT_DATA = os.environ["CODIO_AUTOGRADE_ENV"] +def main(): + # Execute the test on the student's code + grade = random.randint(10, 100) + + feedback = '## markdown text' + # file_name = '/home/codio/workspace/read.md' + # with open(file_name, 'r') as file: + # feedback = file.read() + + + # Send the grade back to Codio with the penatly factor applied + + res = send_grade_v2(int(round(grade)), feedback, FORMAT_V2_MD, int(round(grade))) + print(CODIO_UNIT_DATA) + exit( 0 if res else 1) + +main() \ No newline at end of file diff --git a/.guides_v2/scripts_v2_credit/md_example.sh b/.guides_v2/scripts_v2_credit/md_example.sh new file mode 100755 index 00000000..b2ab1e23 --- /dev/null +++ b/.guides_v2/scripts_v2_credit/md_example.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -e + +# env + +POINTS=$(( ( RANDOM % 100 ) + 1 )) +curl --retry 3 -s "$CODIO_AUTOGRADE_V2_URL" -d grade=$POINTS -d format=md -d feedback='### Markdown text here' -d extra_credit=$POINTS \ No newline at end of file diff --git a/.guides_v2/scripts_v2_credit/txt_example.py b/.guides_v2/scripts_v2_credit/txt_example.py new file mode 100755 index 00000000..27c152ff --- /dev/null +++ b/.guides_v2/scripts_v2_credit/txt_example.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python +import os +import random +import json +# import grade submit function +import sys +sys.path.append('/usr/share/codio/assessments') +from lib.grade import send_grade_v2, FORMAT_V2_MD, FORMAT_V2_HTML, FORMAT_V2_TXT +CODIO_UNIT_DATA = os.environ["CODIO_AUTOGRADE_ENV"] +def main(): + # Execute the test on the student's code + grade = random.randint(10, 100) + + feedback = '## txt
' + # file_name = '/home/codio/workspace/read.txt' + # with open(file_name, 'r') as file: + # feedback = file.read() + + + # Send the grade back to Codio with the penatly factor applied + + res = send_grade_v2(int(round(grade)), feedback, FORMAT_V2_TXT, int(round(grade))) + print(CODIO_UNIT_DATA) + exit( 0 if res else 1) + +main() \ No newline at end of file diff --git a/.guides_v2/scripts_v2_credit/txt_example.sh b/.guides_v2/scripts_v2_credit/txt_example.sh new file mode 100755 index 00000000..b9adf8fe --- /dev/null +++ b/.guides_v2/scripts_v2_credit/txt_example.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -e + +# env + +POINTS=$(( ( RANDOM % 100 ) + 1 )) +curl --retry 3 -s "$CODIO_AUTOGRADE_V2_URL" -d grade=$POINTS -d format=txt -d feedback='Simple text here' -d extra_credit=$POINTS \ No newline at end of file diff --git a/.guides_v2/secure/example.py b/.guides_v2/secure/example.py new file mode 100755 index 00000000..a08129ae --- /dev/null +++ b/.guides_v2/secure/example.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python + +import os +import random +import json +import datetime + +# import grade submit function +import sys +sys.path.append('/usr/share/codio/assessments') +from lib.grade import send_grade + +#################### +# Helper functions # +#################### + + +# Get the url to send the results to +CODIO_AUTOGRADE_URL = os.environ["CODIO_AUTOGRADE_URL"] +CODIO_UNIT_DATA = os.environ["CODIO_AUTOGRADE_ENV"] + +def main(): + # Execute the test on the student's code + grade = validate_code() + # Send the grade back to Codio with the penatly factor applied + res = send_grade(int(round(grade))) + print(CODIO_UNIT_DATA) + exit( 0 if res else 1) + +########################################## +# You only need to modify the code below # +########################################## + +# Your actual test logic +# Our demo function is just generating some random score +def validate_code(): + return random.randint(10, 100) + +main() diff --git a/.guides_v2/secure/example.sh b/.guides_v2/secure/example.sh new file mode 100755 index 00000000..63f3d396 --- /dev/null +++ b/.guides_v2/secure/example.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -e +# Your actual test logic +# Our demo function is just generating some random score +POINTS=$(( ( RANDOM % 100 ) + 1 )) +# Show json based passed environment +echo $CODIO_AUTOGRADE_ENV +# Send the grade back to Codio +curl --retry 3 -s "$CODIO_AUTOGRADE_URL&grade=$POINTS" \ No newline at end of file diff --git a/.guides_v2/secure/example_v2.py b/.guides_v2/secure/example_v2.py new file mode 100755 index 00000000..3d6dc330 --- /dev/null +++ b/.guides_v2/secure/example_v2.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python +import os +import random +import json +# import grade submit function +import sys +sys.path.append('/usr/share/codio/assessments') +from lib.grade import send_grade_v2, FORMAT_V2_MD, FORMAT_V2_HTML, FORMAT_V2_TXT +CODIO_UNIT_DATA = os.environ["CODIO_AUTOGRADE_ENV"] +def main(): + # Execute the test on the student's code + grade = random.randint(10, 100) + + feedback = '## txt
' + # file_name = '/home/codio/workspace/read.txt' + # with open(file_name, 'r') as file: + # feedback = file.read() + + + # Send the grade back to Codio with the penatly factor applied + + res = send_grade_v2(int(round(grade)), feedback) + print(CODIO_UNIT_DATA) + exit( 0 if res else 1) + +main() \ No newline at end of file diff --git a/.codio-menu b/codio-menu similarity index 100% rename from .codio-menu rename to codio-menu diff --git a/guides.tar.gz b/guides.tar.gz new file mode 100644 index 00000000..d46fa56b Binary files /dev/null and b/guides.tar.gz differ diff --git a/temp.txt b/temp.txt new file mode 100644 index 00000000..2e739fbe --- /dev/null +++ b/temp.txt @@ -0,0 +1,51 @@ + +{Submit Answer!|assessment}(free-text-3763572986) +{Submit Answer!|assessment}(free-text-1395913156) + +{Check It!|assessment}(free-text-auto-4024036708) +{Check It!|assessment}(free-text-auto-252956828) + +{Check It!|assessment}(code-output-compare-1650925873) +{Check It!|assessment}(code-output-compare-272921492) +{Check It!|assessment}(code-output-compare-135304776) +{Check It!|assessment}(code-output-compare-1532525639) + +{Check It!|assessment}(code-output-compare-145385884) +{Check It!|assessment}(code-output-compare-364020762) +{Check It!|assessment}(code-output-compare-3793267654) + + +{Check It!|assessment}(test-3999572164) +{Check It!|assessment}(test-1798311137) +{Check It!|assessment}(test-1034057722) +{Check It!|assessment}(test-1575987488) +{Check It!|assessment}(test-2544594776) +{Check It!|assessment}(test-287466350) + +{Check It!|assessment}(test-2750589735) +{Check It!|assessment}(test-2899876268) +{Check It!|assessment}(test-3522709050) +{Check It!|assessment}(test-7899135) +{Check It!|assessment}(test-416679421) +{Check It!|assessment}(test-680934443) +{Check It!|assessment}(test-536955473) +{Check It!|assessment}(test-3666559878) +{Check It!|assessment}(test-1516475134) +{Check It!|assessment}(test-1604017877) + + +{Check It!|assessment}(fill-in-the-blanks-3216557446) +{Check It!|assessment}(fill-in-the-blanks-2420836729) +{Check It!|assessment}(fill-in-the-blanks-557330530) +{Check It!|assessment}(fill-in-the-blanks-2164478132) + +{Check It!|assessment}(multiple-choice-1738770040) + + +{Check It!|assessment}(parsons-puzzle-610337841) +{Check It!|assessment}(parsons-puzzle-922035714) +{Check It!|assessment}(parsons-puzzle-2243390891) +{Check It!|assessment}(parsons-puzzle-1929622756) + +{Check It!|assessment}(grade-book-1053141) +{Check It!|assessment}(grade-book-2427660357) \ No newline at end of file diff --git a/yaml_map/split1.yml b/yaml_map/split1.yml new file mode 100644 index 00000000..7b269f3b --- /dev/null +++ b/yaml_map/split1.yml @@ -0,0 +1,12 @@ +- assignmentName: assignment1 + paths: + - calc.py + - source: spec + destination: specfolder + section: ['c1', 's1', 's1.1', 's1.1.1'] + +# - assignment: d0974ea6557b23b9c6715b50bbbc04fc +- assignmentName: assignment1 + paths: ['javafolder/**', 'rubyfolder/**'] + section: ['chapter', 'section', 'page'] + diff --git a/yaml_map/split2.yaml b/yaml_map/split2.yaml new file mode 100644 index 00000000..116b6628 --- /dev/null +++ b/yaml_map/split2.yaml @@ -0,0 +1,8 @@ +# - assignment: 23d796c76b72be278b8b64044dbb203d +- assignmentName: assignment2 + paths: ['free/*'] + section: ['Free texts'] + +# - assignment: 23d796c76b72be278b8b64044dbb203d +- assignmentName: assignment2 + # section: Others \ No newline at end of file diff --git a/yaml_map/split3.yml b/yaml_map/split3.yml new file mode 100644 index 00000000..f10a1613 --- /dev/null +++ b/yaml_map/split3.yml @@ -0,0 +1,8 @@ +- assignment: a38a1410b9a5509a9697e20bf68e52d3 +# - assignmentName: assignment3 + paths: + - rubyfolder/** + section: ["Others"] +- assignment: a38a1410b9a5509a9697e20bf68e52d3 + paths: ['spec'] + section: ["!@#$%^&*()_+"] \ No newline at end of file