Trace to grade
As explained here, this tool is used to produce student grades from their assignments traces.
Dependencies
To use this tool you need to have at least one of this dependencies installed:
- Nix (Only the package name is required)
- Docker
- Java 17 / Maven (optional)
Prepare data
As mentioned earlier, you need student traces to compute the grades.
Trace-to-grade
expected the data folder to be structured as follows:
path/to/data/folder
├── exercise_1
│ ├── epita-ing-assistants-acu-exercise_1.xavier.login1.xml
│ └── epita-ing-assistants-acu-exercise_1.xavier.login2.xml
└── exercise_2
├── epita-ing-assistants-acu-exercise_2.xavier.login1.xml
└── epita-ing-assistants-acu-exercise_2.xavier.login2.xml
Each subfolder name must correspond to the assignment
field of the
Assignment structure of the configuration.
All traces files must be named so that it respect the following format:
*.<login/groupSlug>.xml
To download traces you can use Poulpy default presets. See Poulpy documentation for more information.
Usage
Trace-to-grade
jar can be used with the following options:
Usage: grades [-ds] [-l=<limit>] [-o=<output>] -r=<results> -t=<traces>
[-u=<requiredLogins>]
-d, --debug Activate debug logs
-l, --limit=<limit> Maximum number of student evaluated. For debugging.
-o, --output=<output> Output folder, defaults to output
-r, --results-file=<results>
YAML Results file to process.
-s, --summary Serialize summary file per student., defaults to
false.
-t, --traces-folder=<traces>
Folder full of traces (neatly arranged in sub-folders
matching the submission).
-u, --users=<requiredLogins>
Comma-separated list of logins to compute, defaults
to all
Then the results file(s) will be written in the output directory (named output
by default).
Run the tool using Nix
To use the tool using only Nix package manager
, you must clone the
repository then run the following commands:
cd trace-to-grade
nix-shell shell.nix
java -jar "$TRACE_TO_GRADE" -t="path/to/data/folder" -r="path/to/config.yml"
Run the tool using Docker
To use the tool using only Docker
, you must login in to the Gitlab
registry and run this:
docker run -v $PWD:/workdir \
-w /workdir
registry.cri.epita.fr/forge/tools/trace-to-grade \
-t="/workdir/traces" \
-r="/workdir/config.yml" \
-o=/workdir/output
Run the tool using Java 17
Finally you can use the jar with Java 17
directly. To do this you can either
get the JAR file by downloading it from the repository artifacts or you can
compile it yourself using Maven
.
To compile it yourself, you can run the following command:
mvn compile
Once you got the jar file, you can run the following command:
java -jar path/to/jar -t="path/to/data/folder" -r="path/to/config.yml"