A command-line application for tutors to more productively grade programming excises on ArTEMiS
If you want to contribute to this script, please create a Pull Request into develop
.
You can also contribute by creating an issue when you find bugs or have ideas on how to improve the life of tutors.
Used for the introductory course "Praktikum Grundlagen der Programmierung" IN0002 at TU Munich. The course teaches first-year students from a wide range of Computer Science related study programs the fundamentals of object-oriented programming.
The course is facilitated on/ supported by the interactive learning tool ArTEMiS (http://www.interactive-learning.org). ArTEMiS allows tutors to download the repositories of student's exercises in order to grade them. This script assists the relevant steps in the grading process.
- Add your ArTEMiS credentials (username and password) into
config.yml
- Remember to untrack the changes to this file before redistributing:
git update-index --assume-unchanged config.yml
- Remember to untrack the changes to this file before redistributing:
- Make the script executable:
chmod +x artemis_cli
- Install dependencies via
pip install pyyaml argparse requests unicodecsv
Run the script via ./artemis_cli <command>
Commonly, the student-assignments have to be imported into the IDE of your choice. As the command repos
adds the tests
to the student-assignment, the projects (now) need to be imported as Existing Maven Project. See below on how to
import assignments into Eclipse/IntelliJ:
- Eclipse:
File
->Import
->Maven
->Existing Maven Projects
->Root Directory
:path/to/course/assignment
- IntelliJ:
Import Project
->path/to/course/assignment
->Import project from external model
->Maven
->Tick "Search for projects recursively"
->Next
...Finish
repos
Download all student repos. The exercise tests are automatically added to the student repos (and have thus to be imported as "Existing Maven Project")grade
Grade a student individuallygrades
Grade all students for an assignment. A gradebook, that is generated by therepos
command for all students to be graded, is used. The only format for gradebook implemented as of now is YAML (.yml)results
Exports all students' results (including feedback and failed tests) toresults.csv
See below for a detailed overview of the available commands, generated through the respective-h/--help
flag
Help to all available commands can be acquired by using the help flag (-h
or --help
).
The following show those help outputs. However, the most up-to-date help can be found through said flags.
Below, for example, ./artemis_cli -h
was called:
usage: artemis_cli [-h] [-q | -v] {repos,grade,grades,results} ...
A command-line application for tutors to more productively grade programming
excises on ArTEMiS
optional arguments:
-h, --help show this help message and exit
-q, --quiet Print quiet
-v, --verbose Print verbose
commands:
List of valid commands
{repos,grade,grades,results}
Additional help
repos Downloads all student repos and adds the exercise
tests
grade Submits grade for a student assignment
grades Submits all grades of a specified gradebook file
results Exports the students' results as to results.csv
(overwrites existing files)
usage: artemis_cli repos [-h] -a assignment -s tumId [tumId ...]
optional arguments:
-h, --help show this help message and exit
-a assignment, --assignment assignment
The assignment to be processed (e.g. w01h01)
-s tumId [tumId ...], --students tumId [tumId ...]
The students' TUM ids (comma or space-separated) to be
processed (e.g. ge36feg, ba12sup, ...)
usage: artemis_cli grade [-h] -a assignment -s tum_id -score score -text
result_text [-pos text [detail_text ...]]
[-neg text [detail_text ...]]
optional arguments:
-h, --help show this help message and exit
-a assignment, --assignment assignment
The assignment to be processed (e.g. w01h01)
-s tum_id, --student tum_id
The student's TUM id to be processed (e.g. ge42abc)
-score score The score (0-100) of the assignment (e.g. 80)
-text result_text The result text of the assignment (e.g. "Gut gemacht")
-pos text [detail_text ...], --positive text [detail_text ...]
A positive feedback consisting of Text and optionally
one Detail Text (e.g. "Dokumentation" ["Gute und
akkurate Kommentare"])
-neg text [detail_text ...], --negative text [detail_text ...]
A negative feedback consisting of Text and optionally
one Detail Text (e.g."Formatierung" ["Bitte
Autoformatierung benutzen"])
usage: artemis_cli grades [-h] -f gradebook_file
optional arguments:
-h, --help show this help message and exit
-f gradebook_file, --file gradebook_file
A gradebook file as generated by `artemis-cli repos
...` with all grades that are to be uploaded to
ArTEMiS entered
usage: artemis_cli results [-h] -a assignment -s tumId [tumId ...]
optional arguments:
-h, --help show this help message and exit
-a assignment, --assignment assignment
The assignment to be processed (e.g. w01h01)
-s tumId [tumId ...], --students tumId [tumId ...]
The students' TUM ids (comma or space-separated) to be
processed (e.g. ge36feg, ba12sup, ...)