Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zmievsa/autograder
Automatic assignment grading for instructor use in programming courses
https://github.com/zmievsa/autograder
c cpp education grading grading-system java python testcases utility
Last synced: 5 days ago
JSON representation
Automatic assignment grading for instructor use in programming courses
- Host: GitHub
- URL: https://github.com/zmievsa/autograder
- Owner: zmievsa
- License: gpl-3.0
- Created: 2020-01-21T18:51:36.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2024-02-08T20:10:59.000Z (9 months ago)
- Last Synced: 2024-04-13T03:02:29.822Z (7 months ago)
- Topics: c, cpp, education, grading, grading-system, java, python, testcases, utility
- Language: Python
- Homepage: https://zmievsa.github.io/autograder/
- Size: 2.46 MB
- Stars: 36
- Watchers: 1
- Forks: 6
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
A simple, secure, and versatile way to automatically grade programming assignments---
## Features
* Blazingly fast (can grade hundreads of submissions using dozens of testcases in a few minutes. Seconds if grading python)
* [Easy to grade](https://zmievsa.github.io/autograder/#/?id=usage)
* [Easy-to-write testcases](https://zmievsa.github.io/autograder/#/?id=writing-testcases)
* Testcase grade can be based on [student's stdout](https://zmievsa.github.io/autograder/#/?id=helper-functions)
* Can grade C, C++, Java, and Python code in regular mode
* Can grade any programming language in stdout-only mode
* A file with testcase grades and details can be generated for each student
* You can customize the total points for the assignment, maximum running time of student's program, file names to be considered for grading, formatters for checking student stdout, and [so much more](https://github.com/zmievsa/autograder/blob/master/autograder/default_config.toml).
* [Anti Cheating capabilities](https://zmievsa.github.io/autograder/#/?id=anti-cheating) that make it nearly impossible for students to cheat
* Grading submissions in multiple programming languages at once
* JSON result output supported if autograder needs to be integrated as a part of a larger utility
* Can check submissions for similarity (plagiarism)
* Can detect and report memory leaks in C/C++ code## Installation
* Run `pip install autograder`
* To grade various programming languages, you'd need to install:
* `gcc`/`clang` for C/C++ support
* `Java JDK` for java support
* `make` for compiled stdout-only testcase support
* Any interpreter/compiler necessary to run stdout-only testcases. For example, testcases with ruby in their shebang lines will require the ruby interpreter### Updates
`pip install -U --no-cache-dir autograder`
## Quickstart
* Run `autograder guide path/to/directory/you'd/like/to/grade`. The guide will create all of the necessary configurations and directories for grading and will explain how to grade.
* Read the [usage](https://zmievsa.github.io/autograder/#/?id=usage) section of the docs## Supported Platforms
* Linux is fully supported
* OS X is fully supported
* Windows is partially supported:
* Stdout-testcases that require shebang lines are not and cannot be supported## Supported Programming Languages
* Java
* C
* C++
* CPython (3.8-3.11)
* Any programming language if stdout-only grading is used