Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

If an edX exercise is graded, the result of a student's interaction should be passed back to the campus LMS to be stored in the gradebook. This project's scope only involves passing the score to the LMS, not how the campus system interprets or stores the result.

 

Grading in edX

Grade Generation

Grades in edX are dynamically generated on demand. The system traverses the xblock XBlock tree for a given piece of work to determine both the maximum possible score for a given student, and the actual score obtained. For more details, see the edX grading guide for developers

...

We will use the LTI Basic Outcomes Service (introduced in LTI version 1.1) to pass grades back to the campus system. In cases where the Outcomes service is not available, we will not return grades to the LMS, but we will allow edX content to be launched over LTI.

The LTI launch must contain the URL of the outcome service (in the lis_outcome_service_url field of the launch). The LTI launch must also identify the user and resource link combination using the lis_result_sourcedid field. We will have to persist both these fields indefinitely in order to return asynchronous grades or to submit regrade outcomes. 

The outcomes service provides three (optional, but recommended) endpoints for grading:

  • replaceResult
  • readResult
  • deleteResult

Of these three, we will only need to interact with replaceResult. Since there is no distinction made in the LTI spec between the initial setting of a grade and its subsequent update, we can use the same code for either case.

 

Grading Service Failure Cases

  • Outcome service URL can change.
  • Outcome service can be missing.
  • Outcome service may not provide the replaceResult endpoint.
  • LTI launch may not supply the required parameters.