Quick Start
Get BatchGrade running in under five minutes.
Download the installer for your platform from the releases page.
Run the installer β no accounts, no cloud setup needed.
Point BatchGrade at your submissions folder, define your test cases, and click Run.
Installation
BatchGrade ships as a native desktop installer for all major platforms. Select your operating system below.
- Download
BatchGrade-Setup-x.x.x.exefrom the releases page. - Run the installer and follow the installation wizard.
- Launch BatchGrade from the Start Menu or the desktop shortcut.
- If Windows SmartScreen appears, click More info β Run anyway.
Note
x.x.x with the actual version number from the releases page.Defining Test Cases
Test cases are defined in a JSON configuration file that you create once per assignment. BatchGrade applies the same test suite to every submission in the batch.
Config file structure
{
"assignment": "Project 1 β Linked List",
"language": "python",
"entrypoint": "main.py",
"tests": [
{
"name": "Insert single element",
"input": "insert 5\nprint",
"expected_output": "5"
},
{
"name": "Insert and delete",
"input": "insert 1\ninsert 2\ndelete 1\nprint",
"expected_output": "2"
}
],
"rubric": {
"points_per_test": 10,
"partial_credit": true,
"feedback_enabled": true
}
}Field reference
| Field | Type | Description |
|---|---|---|
assignment | string | Display name for the assignment. |
language | string | Target language: python, java, c, cpp. |
entrypoint | string | Filename to execute within each submission folder. |
tests[].name | string | Human-readable label shown in the results view. |
tests[].input | string | Stdin passed to the student program. Use \n for newlines. |
tests[].expected_output | string | Expected stdout. Trailing whitespace is ignored. |
rubric.points_per_test | number | Points awarded for each passing test case. |
rubric.partial_credit | boolean | Award fractional points for partially correct output. |
rubric.feedback_enabled | boolean | Generate per-student explanations alongside scores. |
Tip
Running the Grader
Once your submissions folder and config file are set up, running a batch takes three clicks.
- Open BatchGrade and click New Session.
- Select the submissions folder β each sub-folder is treated as one student submission.
- Click Load Config and choose your
batchgrade.config.jsonfile. - Click Run. A progress bar shows per-submission status in real time.
- When complete, the results panel shows each studentβs score, test breakdown, and generated feedback.
Warning
john_doe/). BatchGrade uses folder names as student identifiers in the results export.Exporting Results
Grades are stored locally in a SQLite database and can be exported at any time.
CSV / Spreadsheet
Export a flat CSV compatible with Excel, Google Sheets, and most LMS grade import tools.
Results β Export β CSVCanvas LMS
Export in Canvas gradebook format for direct upload via the LMS grade import workflow.
Results β Export β CanvasFeedback Report
Generate a per-student PDF report containing their score, test results, and AI-generated feedback.
Results β Export β PDF ReportsRaw SQLite
Access the underlying database directly for custom queries or integration with other tools.
File β Show Database LocationFAQ
What programming languages does BatchGrade support?
BatchGrade currently supports Python, Java, C, and C++. Additional language support is planned for future releases.
Is any student data sent to a server or third party?
No. BatchGrade runs entirely on your local machine. No submission files, grades, or student information ever leave your computer.
Can I use a custom test runner or testing framework?
Yes. BatchGrade supports custom test runner configurations via the test config file. You can specify a custom command that BatchGrade will execute for each submission.
How do I export grades to Canvas, Blackboard, or Moodle?
BatchGrade exports a CSV file formatted for common LMS platforms. From the results screen, click Export β CSV and select your LMS format from the dropdown.
How do I update BatchGrade?
BatchGrade checks for updates on launch. You can also download the latest release manually from the GitHub releases page at any time.
Still have questions?
Open an issue on GitHub and the team will get back to you.