All Projects → oberrich → artemis_cli

oberrich / artemis_cli

Licence: MIT license
A command-line application for tutors to more productively grade programming excises on ArTEMiS

Programming Languages

python
139335 projects - #7 most used programming language
Smarty
1635 projects

Projects that are alternatives of or similar to artemis cli

odin
Data-structure definition/validation/traversal, mapping and serialisation toolkit for Python
Stars: ✭ 24 (+100%)
Mutual labels:  yaml, csv
Structured Text Tools
A list of command line tools for manipulating structured text data
Stars: ✭ 6,180 (+51400%)
Mutual labels:  yaml, csv
Choetl
ETL Framework for .NET / c# (Parser / Writer for CSV, Flat, Xml, JSON, Key-Value, Parquet, Yaml, Avro formatted files)
Stars: ✭ 372 (+3000%)
Mutual labels:  yaml, csv
Textrude
Code generation from YAML/JSON/CSV models via SCRIBAN templates
Stars: ✭ 79 (+558.33%)
Mutual labels:  yaml, csv
Just Dashboard
📊 📋 Dashboards using YAML or JSON files
Stars: ✭ 1,511 (+12491.67%)
Mutual labels:  yaml, csv
csvy
Import and Export CSV Data With a YAML Metadata Header
Stars: ✭ 52 (+333.33%)
Mutual labels:  yaml, csv
Countries
World countries in JSON, CSV, XML and Yaml. Any help is welcome!
Stars: ✭ 5,379 (+44725%)
Mutual labels:  yaml, csv
cq
Clojure Command-line Data Processor for JSON, YAML, EDN, XML and more
Stars: ✭ 111 (+825%)
Mutual labels:  yaml, csv
Jobfunnel
Scrape job websites into a single spreadsheet with no duplicates.
Stars: ✭ 1,528 (+12633.33%)
Mutual labels:  yaml, csv
Countries States Cities Database
🌍 World countries, states, regions, provinces, cities, towns in JSON, SQL, XML, PLIST, YAML, and CSV. All Countries, States, Cities with ISO2, ISO3, Country Code, Phone Code, Capital, Native Language, Timezones, Latitude, Longitude, Region, Subregion, Flag Emoji, and Currency. #countries #states #cities
Stars: ✭ 1,130 (+9316.67%)
Mutual labels:  yaml, csv
Datamodel Code Generator
Pydantic model generator for easy conversion of JSON, OpenAPI, JSON Schema, and YAML data sources.
Stars: ✭ 393 (+3175%)
Mutual labels:  yaml, csv
Python Benedict
dict subclass with keylist/keypath support, I/O shortcuts (base64, csv, json, pickle, plist, query-string, toml, xml, yaml) and many utilities. 📘
Stars: ✭ 204 (+1600%)
Mutual labels:  yaml, csv
Re Txt
converts text-formats from one to another, it is very useful if you want to re-format a json file to yaml, toml to yaml, csv to yaml, ... etc
Stars: ✭ 59 (+391.67%)
Mutual labels:  yaml, csv
Chronicle Wire
A Java Serialisation Library that supports multiple formats
Stars: ✭ 204 (+1600%)
Mutual labels:  yaml, csv
Vscode Data Preview
Data Preview 🈸 extension for importing 📤 viewing 🔎 slicing 🔪 dicing 🎲 charting 📊 & exporting 📥 large JSON array/config, YAML, Apache Arrow, Avro, Parquet & Excel data files
Stars: ✭ 245 (+1941.67%)
Mutual labels:  yaml, csv
polyglot-jekyll
Plugin-free multilanguage Jekyll websites
Stars: ✭ 46 (+283.33%)
Mutual labels:  yaml
stein
A linter for config files with a customizable rule set
Stars: ✭ 92 (+666.67%)
Mutual labels:  yaml
exenv
Exenv makes loading environment variables from external sources easy.
Stars: ✭ 35 (+191.67%)
Mutual labels:  yaml
ufw
A minimalist framework for rapid server side applications prototyping in C++ with dependency injection support.
Stars: ✭ 19 (+58.33%)
Mutual labels:  yaml
eec
A fast and lower memory excel write/read tool.一个非POI底层,支持流式处理的高效且超低内存的Excel读写工具
Stars: ✭ 93 (+675%)
Mutual labels:  csv

artemis-cli

A command-line application for tutors to more productively grade programming excises on ArTEMiS

Contribute

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.

Overview and purpose

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.

First steps

  1. 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
  2. Make the script executable: chmod +x artemis_cli
  3. Install dependencies via pip install pyyaml argparse requests unicodecsv

Run the script via ./artemis_cli <command>

IDE supported grading

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

Supported commands

  1. 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")
  2. grade Grade a student individually
  3. grades Grade all students for an assignment. A gradebook, that is generated by the repos command for all students to be graded, is used. The only format for gradebook implemented as of now is YAML (.yml)
  4. results Exports all students' results (including feedback and failed tests) to results.csv See below for a detailed overview of the available commands, generated through the respective -h/--help flag

Help / Summary of commands

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)

artemis-cli repos

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, ...)

artemis-cli grade

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"])

artemis-cli grades

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

artemis-cli results

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, ...)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].