Skip to content

A starting point for learning about Gradescope autograding, intended for UCSB CS department faculty and TAs migrating from UCSB's submit.cs

License

Notifications You must be signed in to change notification settings

project-anacapa/gradescope

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

gradescope

A starting point for learning about Gradescope autograding, intended for UCSB CS department faculty and TAs migrating from UCSB's submit.cs

What is Gradescope Autograding

Gradescope's main product offering is a web-based tool for grading pencil/paper exams and homework, but that is not what this article is about.

Recently, Gradescope also introduced an autograder option that is in the same space as UCSB's home-grown submit.cs (website, source code) but offers a more robust and flexible infrastructure for building auto-graded assignments.

How does Gradescope Autograding work (high level description)

At a high level, making an autograded assignment on Gradescope is quite simple: you create a .zip file with a certain format, and you upload it to the Gradescope website.

From there, students can access the Gradescope website to submit their code. There are also options for submitting directly from a private git repository.

Repos that may help

Repo Description
https://github.com/project-anacapa/gradescope-simple-template-draft Script to help you setup autograder.zip that connects to github
https://github.com/project-anacapa/gradescope-cpp-unit-test A template for a C++ autograded assignment

Converting a C++ assignment based on tddFuncs.h

Some CS16/24/32 assignments are based on a homegrown TDD library for C++ that consists of two files: tddFuncs.h and tddFuncs.cpp.

The repo gradescope-cpp-unit-test contains versions of those files that can typically be dropped in as replacements for the originals.

Doing so adds Gradescope support for those assignments, because the new versions generate a results.json file (or add into an existing one) as a side-effect of running the unit tests.

In general, the process to convert an existing assignment consists of:

  1. Replace tddFuncs.h and tddFuncs.cpp with the ones from gradescope-cpp-unit-test.
  2. Add -I/usr/include/jsoncpp -std=c++11 to the CXXFLAGS
  3. Add -ljsoncpp to each link step either directly, or via LDFLAGS
  4. Try make clean and make to ensure it compiles
  5. Try running the tests to see if you get a results.json file.

About

A starting point for learning about Gradescope autograding, intended for UCSB CS department faculty and TAs migrating from UCSB's submit.cs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published