cm090 / gradescope-autograder Goto Github PK
View Code? Open in Web Editor NEWAutograder templates for Java JUnit tests
License: MIT License
Autograder templates for Java JUnit tests
License: MIT License
Students end up running into similar problems with the autograder every quarter. Instead of a one-off post on Piazza, we can create a document with these common issues and ways to resolve them. This can be coupled with an autograder FAQ for students.
The autograder still fails to catch certain edge cases. One way to resolve this is by ensuring a results.json
file is always generated in the correct directory. When this does not happen, use a template results file to inform the student of the error.
Right now, manual autograders check for file existence by looking at the exact filename. This does not allow for wildcards, causing problems if a student names their file different from what the instructions recommend. Students receive false negatives on the missing files check even though they submitted all the required files. For this feature, you will update both manual templates to support wildcards in the format *.java
, *.png
, and so on. You can expect each wildcard begins with a single star, followed by a dot and the file extension. When this is encountered, the autograder will search for files in the submission directory that end with the specified file extension. If at least one is found, the check passes. Otherwise, alert the student of a missing file.
This feature is partially implemented on the HWQuizQuestions autograder, which you can download here. The goal is to add support for any wildcard provided in the config.json
file list.
If you have time, have the wildcard search ignore other files from the configuration. For example, if the files list includes MyClass.java
and *.java
, the autograder will ignore MyClass.java
when searching for matches.
All of the autograder templates have a config.json
file that provides a list of options for the creator. We want to update the builder tool to dynamically read these configuration options, infer datatypes from default values, and display a list of inputs to the user. You can either expand the current JSwing project or rewrite the tool in a Java GUI library of your choice.
A few requirements:
.jar
file.test
) and the grading weights.config.json
file. We can pull the list of packages from the previous screen, so don't prompt the user for those.autograder.zip
file. A new file explorer window will open to the export directory.Right now, students must wait for the autograder to finish before receiving feedback on their submission. We want to find a way to notify them of failed builds if they leave the page early. Our idea is as follows:
output.json
includes ERROR: Grading Failed
) send an email to the student.The manual exam autograder includes a feature that tells instructors and TAs the percentage of students who completed the exam. We want to expand these statistics to include these categories:
This can be accomplished with hidden grading items, where students receive a 1/1 if the condition is met and a 0/1 otherwise. We would also like to expand this functionality to the autograded exam template, tracking the same conditions.
The autograder only looks for files in the root submission directory. This works well in most instances but causes lookups to fail if a student uploads a directory with all their files inside. We want to recursively search for files in all the autograder templates, performing the following actions based on template:
.java
files to the root of the submissions directory. Then use the existing code to move appropriate files into the test runner.Documentation already exists for creating/uploading autograders and grading submissions, but we can compile the most common questions into a single document. We can also provide links to other resources, such as videos.
Manual autograder templates currently expect a predefined list of files to be uploaded where their names match exactly. This is a problem if we expect MyClass.java
and a student uploads myclass.JAVA
, for example. We want to compare files strictly in lowercase to prevent false negatives. Your implementation should be robust enough to eventually handle converting wildcards to lowercase without much modification.
A video exists, but we don't yet have a written guide for the file tool. Walk through exporting an assignment from Gradescope and the tool itself.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.