Getting Started
Install
You can install via Pypi:
pip install LatePenalty
Or alternatively, you can directly install from source
pip install git+https://github.com/scott-yj-yang/LatePenalty.git
How to use
View our tutorial:
FAQ
Why do LatePenalty
Exist?
This module supports both gradescope and nbgrader. Gradescope is an
interface where students can hand in their homework, programming
assignments, and even exams. Gradescope does accept late submission
after the official deadline, but it does not support well with the late
penalty of late submission, according to the course policy. In other
words, gradescope accepts late submission, but does nothing to
disincentive the late submissions. LatePenalty
applies late penalty
for the late submissions when we publish grades from gradescope to
canvas, with custom messages for students about the allowance of the
penalty.
Why not use Post Grades to Canvas
on Gradescope?
Gradescope accepts late submissions from students, but the platform
does not penalize late submissions. Post Grades to Canvas
will post
the raw score, shown on gradescope, to a specific assignment on
canvas.
- No Support for Multiple Components of a Single Assignment
Gradescope’s Post Grades to Canvas
is a one-to-one mapping from
gradescope’s assignment to canvas’ assignment. In certain cases, where
an assignment has multiple components (auto-graded notebook and
handwritten math work), gradescope cannot combine the score to a
single assignment. For example, let’s say we have an assignment called
Assignment 1
, which has two components - Assignment 1 - Autograder
and Assignment 1 - Manual Grading
on gradescope. This package will
combine two assignments into one and sync the canvas grade
Late Policy
Some courses allow students to submit their work within a certain mercy
period of time, also called slip days or slip hours. Once
In this module, we the package canvasapi
to
How to set credentials
This package uses canvas API
and its wrapper package
canvasapi to post grades and
comments to your target course’s assignment. To do that, you’ll have to
provide the canvas credentials.
In order to interact with this software, you’ll have to create a
credentials.json
file that is in the following format:
{'GitHub Token': 'token', 'Canvas Token': 'token'}
Whenever you create an object, you will need to authenticate via this
credentials.json
file through providing the file path to the object
initializer. It will test whether the credential you provided is
authenticate or not.
How to obtain credentials
- Login to Canvas
- On the left menu bar, click
Account
-> Profile
- At the profile page, click
Settings
- Scroll down, at
Approved Integrations
, click + New Access Token
- Name it, set expire date, and copy to the
credentials.json