Skip to main content

A helper package for setting up Gradescope autograder tests for Java projects

Project description

Java Gradescope Autograder Helper

A tool for creating, running, and packaging Java autograders for Gradescope.

PyPI license PyPI pyversions PyPI version Downloads Downloads Downloads

More easily and quickly create and test Gradescope autograders for Java assignments. By leveraging a reference solution and standard output, there is no need to hard code test cases. And, with a Python config file, you get the full benefits of writing tests in an easy-to-use coding language.

PyPi GitHub

Installation

pip install java-gradescope-autograder-helper

Quick Start

  1. Initialize the Gradescope environment locally: autograder init.
  2. Put reference solution with a main(String[] args) entry point and any other required files in autograder/source/.
  3. Edit autograder/source/tests.py.
  4. Put an example student submission in autograder/submission/.
  5. Test by navigating to /autograder and running autograder run tests.py.
  6. Check results in autograder/results/results.json.
  7. Zip the contents inside autograder/source/ by runinng autograder zip and upload to Gradescope.

The whole flow for working with this package rests on the structure Gradescope creates in the docker containers it spins up for each student submission. Having that structure locally allows you to quickly iterate without depending on uploading it to Gradescope. You can refer to the Gradescope autograder file hierarchy documentation for more information on how/why the autograder is structured this way.

More comprehensive documentation is available under the Examples section.

Commands

  • autograder: Display the help menu.
  • autograder init: Initialize the Gradescope environment in current directory.
  • autograder run <tests.py>: Run the autograder locally.
  • autograder zip: Zip the contents inside autograder/source/ when in base directory.

Features

The motivation for this package came after noticing the countless hours my professors had to spend creating Gradescope autograders for Java assignments. Additionally, I could not find packages that did exactly what I wanted online. I needed something with comprehensive documentation, that did not require much configuration. This package aims to provide a solution to these problems.

  • No need to hardcode test cases, simply provide a reference solution.
  • Independent of reference or student submission file structure, as long as it has the appropriate main(String[] args) entry point.
  • Easily test autograder locally.
  • Create custom functions for more versatility when testing student output.
  • Test student syntax with Checkstyle by providing a custom config. You can edit or extend the default config by downloading it at: GitHub/bowdoin-checks.
  • Easily package to uplaod to Gradescope.
  • Comprehensive documentation and examples.
  • Easily extensible because it uses a .py file for the configuration.
  • Individually time out test cases instead of the global-only Gradescope timeout.
  • TODO: Create custom style evaluation functions.

Examples

A comprehensive example is available on every execution of autograder init. Additionally, all generated files contain small descriptions and references to their purpose in the original Gradescope documentation.

Here is a sample of what autograder init generates: GitHub/examples.

The most important file is autograder/source/tests.py. This file contains all the configurations for the autograder and the test cases that will be run on the reference and student solutions.

Release Notes

  • 1.2.5: Added additional option to time out student submissions.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

java_gradescope_autograder_helper-1.2.5.tar.gz (17.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file java_gradescope_autograder_helper-1.2.5.tar.gz.

File metadata

File hashes

Hashes for java_gradescope_autograder_helper-1.2.5.tar.gz
Algorithm Hash digest
SHA256 adec5ecbb499e1484e8f940320e12a0738d65f321c338fcb832bf714d99a3f2a
MD5 9780208ac41d8bb3143b2640396abcf3
BLAKE2b-256 780c413a4ecd32f016eddd000fd03a33afab3418934e634ff1f5165790b716ea

See more details on using hashes here.

File details

Details for the file java_gradescope_autograder_helper-1.2.5-py3-none-any.whl.

File metadata

File hashes

Hashes for java_gradescope_autograder_helper-1.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 373f325fe811d3aad46e3be9cb54ed47fe208970edf0d8634ce30a8ee69a1127
MD5 9a2a6983e0927bd2367a05e6e7443a5d
BLAKE2b-256 a8c34d333899d3b372aa2cf96714643f3b07fce0021dca1d94f9790af3aac78b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page