|
|
@ -1637,7 +1637,7 @@ we will re-evaluate this decision.
|
|
|
|
|
|
|
|
|
|
|
|
#### Communication with the backend
|
|
|
|
#### Communication with the backend
|
|
|
|
|
|
|
|
|
|
|
|
##### Backend failiure reporting
|
|
|
|
##### Backend failure reporting
|
|
|
|
|
|
|
|
|
|
|
|
The backend is a separate component which does not communicate with the
|
|
|
|
The backend is a separate component which does not communicate with the
|
|
|
|
administrators directly. When it encounters an error it stores it in a log file.
|
|
|
|
administrators directly. When it encounters an error it stores it in a log file.
|
|
|
@ -1777,6 +1777,7 @@ Described roles are:
|
|
|
|
- Student
|
|
|
|
- Student
|
|
|
|
- Group supervisor
|
|
|
|
- Group supervisor
|
|
|
|
- Group administrator
|
|
|
|
- Group administrator
|
|
|
|
|
|
|
|
- Instance administrator
|
|
|
|
- Superadministrator
|
|
|
|
- Superadministrator
|
|
|
|
|
|
|
|
|
|
|
|
## Terminology
|
|
|
|
## Terminology
|
|
|
@ -1804,6 +1805,10 @@ They can be shared by the teachers using an exercise database in ReCodEx.
|
|
|
|
|
|
|
|
|
|
|
|
**Assignment** -- An exercise assigned to a group, possibly with modifications.
|
|
|
|
**Assignment** -- An exercise assigned to a group, possibly with modifications.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**Runtime environment** -- @todo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**Hardware group** -- @todo
|
|
|
|
|
|
|
|
|
|
|
|
## General basics
|
|
|
|
## General basics
|
|
|
|
|
|
|
|
|
|
|
|
Description of general basics which are the same for all users of ReCodEx web
|
|
|
|
Description of general basics which are the same for all users of ReCodEx web
|
|
|
@ -2040,11 +2045,80 @@ to your group.
|
|
|
|
|
|
|
|
|
|
|
|
### Assigning exercises
|
|
|
|
### Assigning exercises
|
|
|
|
|
|
|
|
|
|
|
|
@todo: Describe how to access the database of the exercises and what are
|
|
|
|
Before assigning exercise you obviously have to know what exercises are
|
|
|
|
the possibilities of assignment setup – availability, deadlines, points,
|
|
|
|
available. List of all exercises in system can be found under "Exercises" link
|
|
|
|
score configuration, limits
|
|
|
|
in sidebar. This page contains table with exercises names, difficulties and
|
|
|
|
|
|
|
|
names of the authors of exercises. Further information about exercise is
|
|
|
|
@todo: How can I assign some exercises only to some students of the group? Describe how to achieve this using subgroups
|
|
|
|
available by clicking on its name.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
On the exercise details page can be found numerous information about it. There
|
|
|
|
|
|
|
|
is box with all possible localized descriptions and also box with some
|
|
|
|
|
|
|
|
additional information. Like when was exercise created by whom, what is
|
|
|
|
|
|
|
|
difficulty of it, what version is it. There is also description for supervisors
|
|
|
|
|
|
|
|
by exercise author under "Exercise overview" option, where some important
|
|
|
|
|
|
|
|
information can be found. And most notably there is information in what
|
|
|
|
|
|
|
|
programming languages can be exercises solved, this is available under
|
|
|
|
|
|
|
|
"Supported runtime environments" row.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If you decide that exercise is suitable for some of your groups, please note
|
|
|
|
|
|
|
|
"Groups" box at the bottom of the page. There is list of all groups you
|
|
|
|
|
|
|
|
supervise with quick "Assign" button which will assign exercise to some
|
|
|
|
|
|
|
|
particular group.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
After clicking on "Assign" button you should be redirected to assignment
|
|
|
|
|
|
|
|
editation page. In there you can find two forms, one for editation of assignment
|
|
|
|
|
|
|
|
meta information and the second one for setting exercise time and memory limits.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
In meta information form you can fill these options:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- name of the assignment which will be visible in group
|
|
|
|
|
|
|
|
- visibility, if assignment is under construction then you can mark it as not
|
|
|
|
|
|
|
|
visible and students will not see it
|
|
|
|
|
|
|
|
- subform for localized descriptions (new localization can be added by clicking
|
|
|
|
|
|
|
|
on "Add language variant" button, current one deleted with "Remove this
|
|
|
|
|
|
|
|
language" button)
|
|
|
|
|
|
|
|
- language of description from dropdown field (english, czech, german)
|
|
|
|
|
|
|
|
- description in selected language
|
|
|
|
|
|
|
|
- score configuration which will be used on students solution evaluation,
|
|
|
|
|
|
|
|
description of score configuration can be found further in "Writing score
|
|
|
|
|
|
|
|
configuration" chapter
|
|
|
|
|
|
|
|
- first submission deadline
|
|
|
|
|
|
|
|
- maximum gainable points before first deadline
|
|
|
|
|
|
|
|
- second submission deadline, after that students still can submit exercises but
|
|
|
|
|
|
|
|
no points for them
|
|
|
|
|
|
|
|
- maximum gainable points after first deadline and before second deadline
|
|
|
|
|
|
|
|
- submission count limit for students' solutions, after this amount students
|
|
|
|
|
|
|
|
cannot submit any other solutions
|
|
|
|
|
|
|
|
- visibility of memory and time ratios, if true then students can see for each
|
|
|
|
|
|
|
|
test percentage of used memory and time
|
|
|
|
|
|
|
|
- minimum percentage of points which submission have to gain otherwise it will
|
|
|
|
|
|
|
|
gain no points
|
|
|
|
|
|
|
|
- assignment is bonus one and points from it are not included in students
|
|
|
|
|
|
|
|
overall score
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Form has to be submitted with "Edit settings" button otherwise changes will not
|
|
|
|
|
|
|
|
be saved.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The same editation page serves also for the purpose of assignment editation, not
|
|
|
|
|
|
|
|
only creation. That is why on the bottom of the page "Delete the assignment" box
|
|
|
|
|
|
|
|
can be found. Clearly the button "Delete" in there can be used to unassign
|
|
|
|
|
|
|
|
exercise from group.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The last unexplored area is time and memory limits form. The whole form is
|
|
|
|
|
|
|
|
situated in box with tabs which are leading to particular runtime environments.
|
|
|
|
|
|
|
|
If you wish to not use one of these, locate "Remove" button at the bottom of the
|
|
|
|
|
|
|
|
box tab which will delete this environment from assignment. Please note that
|
|
|
|
|
|
|
|
this action is irreversible.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
In general one tab in environments box contains some basic information about
|
|
|
|
|
|
|
|
runtime environment and another nested tabbed box. In there you can find all
|
|
|
|
|
|
|
|
hardware groups which are available for exercise and you can set here particular
|
|
|
|
|
|
|
|
limits for all test cases. Time and memory limits can be set to all test cases,
|
|
|
|
|
|
|
|
time limits have to be filled in seconds (float), memory limits are in bytes
|
|
|
|
|
|
|
|
(int). If you are interested in some reference values to particular test case
|
|
|
|
|
|
|
|
then you can take a peek on collapsable "Reference solutions' evaluations" item.
|
|
|
|
|
|
|
|
If you are satisfied with changes you made to limits save form with "Change
|
|
|
|
|
|
|
|
limits" button right under environments box.
|
|
|
|
|
|
|
|
|
|
|
|
### Students' solutions management
|
|
|
|
### Students' solutions management
|
|
|
|
|
|
|
|
|
|
|
@ -2113,6 +2187,13 @@ clicking on it some particular supervisor should not be supervisor of the group
|
|
|
|
anymore.
|
|
|
|
anymore.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Instance administrator
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@todo: who is this?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@todo: creating groups right in the instance
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Superadministrator
|
|
|
|
## Superadministrator
|
|
|
|
|
|
|
|
|
|
|
|
Superadmin is user with the most priviledges and as such superadmin should be
|
|
|
|
Superadmin is user with the most priviledges and as such superadmin should be
|
|
|
@ -2153,6 +2234,38 @@ Roles description:
|
|
|
|
application.
|
|
|
|
application.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Writing score configuration
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@todo: introduction to scoring, mention that there can be more implementation but for now only simple is available
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Simple score calculation
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
First implemented calculator is simple score calculator with test weights. This
|
|
|
|
|
|
|
|
calculator just looks at the score of each test and put them together according
|
|
|
|
|
|
|
|
to the test weights specified in assignment configuration. Resulting score is
|
|
|
|
|
|
|
|
calculated as a sum of products of score and weight of each test divided by the
|
|
|
|
|
|
|
|
sum of all weights. The algorithm in Python would look something like this:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
sum = 0
|
|
|
|
|
|
|
|
weightSum = 0
|
|
|
|
|
|
|
|
for t in tests:
|
|
|
|
|
|
|
|
sum += t.score * t.weight
|
|
|
|
|
|
|
|
weightSum += t.weight
|
|
|
|
|
|
|
|
score = sum / weightSum
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sample score config in YAML format:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```{.yml}
|
|
|
|
|
|
|
|
testWeights:
|
|
|
|
|
|
|
|
a: 300 # test with id 'a' has a weight of 300
|
|
|
|
|
|
|
|
b: 200
|
|
|
|
|
|
|
|
c: 100
|
|
|
|
|
|
|
|
d: 100
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Writing job configuration
|
|
|
|
## Writing job configuration
|
|
|
|
|
|
|
|
|
|
|
|
To run and evaluate an exercise the backend needs to know the steps how to do
|
|
|
|
To run and evaluate an exercise the backend needs to know the steps how to do
|
|
|
|