We're updating the issue view to help you get more done. 

Grades Import/Export V1-alpha

Description

As an instructor, I want to override assignment grades for all enrolled learners in my course at once.

Examples:

  • Keep my Canvas grades in sync with edX grades

  • Support curving off-platform

Internal Documentation

High level ACs for V1 "alpha"

  1. Allow instructors to override assignment (i.e. graded subsection) grades via CSV file upload, per subsection

    1. Columns:

    2. Workflow (similar to SGP):

      1. Step 1: instructor exports grades CSV template for a specific subsection from Gradebook

      2. Step 2: instructor fills in assignment override grades and reason off-platform

      3. Step 3: instructor uploads the completed file to edX via Gradebook, to effect grade overrides.

  2. Feedback – Provide feedback after override

    1. e.g. "4 grades updated out of 400 learners enrolled for [subsection name]"

  3. Recovery – Provide a way for edX and course teams to recover from errors

    1. V1 manual reversion OK

    2. ensure edX staff have access to an override history table with grades, date overridden, who overrode, reason.

  4. Validation – Advertise approach chosen for file validation

    1. Instructors should know in advance how they can change CSV columns and rows

  5. Availability - only for Programs by default. V1: for courses with a Master’s track

Considerations

  • Try to keep in step with SGP grade upload behavior, so that course teams are not confused

  • Performance:

    • Product requirements for V1: Support Master's and MM course sizes

    • Eng: Sync or async file processing?

    • Eng: Store full file for reference?

    • Eng: max course size for first rollout?

  • Validation:

    • Overall file validation

      • e.g. is the file a reasonable size and format?

    • Row validation -

      • primary keys are user_id, username

      • secondary read-only columns are skipped

      • course ID matches course

      • scores are numerical

      • TBD: rows are learners enrolled in course?

  • Update behavior:

    • OK to update a subset of enrolled learners

    • Rows with blank (empty) input grade values are skipped are skipped

  • Deen's document with background info/other questions here:

Out of scope/Post V1

  • Live diff & table readout

  • Confirmation flow for Instructors ("You're about to change 400 records. Are you sure?")

Possible options for V1 "alpha" format (depending on what's easiest to build):

  • Export of all subsection grades in one file - e.g. as rows (learner-assignment)

  • Export per-subsection

Remaining Questions

  • Trevor - history table approach - Scott

  • Clarify size limits

cc

fyi

Steps to Reproduce

None

Current Behavior

None

Expected Behavior

None

Reason for Variance

None

Release Notes

None

User Impact Summary

None

Status

Assignee

Unassigned

Reporter

Olga Stroilova

Labels

None

Reach

None

Impact

None

Customer

None

Partner Manager

None

URL

None

Contributor Name

None

Groups with Read-Only Access

None

Actual Points

None

Category of Work

None

Stakeholders

None

Priority

Unset

Epic Name

Grades Import/Export V1