Skip to main content

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
caution

Each subfolder name must correspond to the assignment field of the Assignment structure of the configuration.

caution

All traces files must be named so that it respect the following format: *.<login/groupSlug>.xml

tip

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"