Using Grade Passback with Learnosity and an LMS Platform

This page offers an overview of the Learnosity grade passback feature, which sends through the results of assessments to a Learning Management System (LMS), where it can be processed. The LMS can then run additional scoring functions, such as a "grade book" or dashboard for reporting.

Grade passback is a mechanism provided by the LTI (Learning Tools Interoperability) specification whereby a Tool Provider (Learnosity in this case) can pass a student's grade back to the Tool Consumer (your LMS or another system that supports LTI).

Learnosity LTI implements grade passback in such a way that it can also be considered an acknowledgement or notification that the session has been successfully processed by Learnosity.

One limitation of grade passback is that it only permits a single value between 0.0 and 1.0. Learnosity calculates this as the student's overall percentage score. For example, if an activity has 10 questions, all worth 1 point, and a student answers 4 of them correctly, Learnosity LTI's grade passback will send a score of 0.4.

Who would need grade passback?

Clients who use a Learning Management System (LMS), such as Canvas, Blackboard or Moodle.

Why would you need grade passback?

Grade passback is useful because when you use Learnosity with an LMS, by default Learnosity runs its own scoring and reporting / analytics routines. It will not natively send grades out to be processed by the LMS system.

How is grade passback enabled?

Items API can be initialized so that it will automatically send results back to the platform using LTI grade passback.

To support grade passback, Learnosity sends XML messages to your LMS that conform to the LTI Outcomes Management 1.0 specification (LTI OM).

To prove authenticity, the message from Learnosity to the grade passback URL includes an oAuth 1.0 signature generated from the LTI credentials created in Learnosity Console.

What happens when a grade passback fails?

When a grade passback fails for the first time for one session, passback is retried five times before it is flagged as a failure.

Technical Implementation Details

Using Items API initialization options

When initializing Items API, you can pass a URL and other identifiers for LTI grade passback. When Learnosity has finished scoring a student test, the raw, single grade passback is provided directly back to the LMS. There is more information about selecting a mode of operation on this page: Embedding Learnosity within an LTI Tool Provider.

During the initialization of Items API, set the grade passback information, like the URL that will be used to pass back the grade, into the lis_data object.

{
"session_id": "...",
"activity_id": "...",
"user_id": "...",
"type": "submit_practice",
"name": "...",
"config": {
...
},
"lis_data": {
"lis_outcome_service_url": "url_for_grade_passback",
"lis_result_sourcedid": "uniq_resource_user_value"
"oauth_consumer_key": "learnosity_lti_key"
}
}

The following attributes within lis_data are required:

Attribute Description
lis_outcome_service_url The URL Learnosity will POST the grade to.
lis_result_sourcedid A unique row and column within the tool consumer grade book (where Learnosity is POSTing the grade). This identifier is unique for every combination of resource_link_id / user_id.
oauth_consumer_key An LTI key which can be generated from Console. Note, this is not the same as the consumer_key used to initialize Items API.
tool_family [optional] Only necessary if the tool consumer is Canvas, in which case, pass "canvas" as the value.

LTI Keys

LTI keys consist of a key and a secret, much like the standard Learnosity consumer keys used by Items API.

However, LTI keys are not the same as consumer keys. They are linked to a consumer key, but they can only be used to authenticate with Learnosity's grade passback. To generate an LTI key, log in to Console with the administrator User Role to access the Configuration > Consumers page. From the list of Consumers, select the consumer you're using. Look for the Authentication Keys tab. From there you will find a Create LTI key button for each consumer key that is displayed. Click the Create LTI key button to create your own or generate a new one. 

This means that you can provide an LTI keypair to a third-party LMS to deliver grade passback without exposing access to the main consumer credentials, and therefore Learnosity APIs such as the Data API or the Author API.

Sample XML

Below is sample XML that Learnosity POSTs to the Basic Outcomes service of the tool consumer. Note that the imsx_messageIdentifier is a unique value generated by Learnosity for every POST:

<?xml version = "1.0" encoding = "UTF-8"?>
<imsx_POXEnvelopeRequest xmlns="http://www.imsglobal.org/services/ltiv1p1/xsd/imsoms_v1p0">
<imsx_POXHeader>
<imsx_POXRequestHeaderInfo>
<imsx_version>V1.0</imsx_version>
<imsx_messageIdentifier>${messageId}</imsx_messageIdentifier>
</imsx_POXRequestHeaderInfo>
</imsx_POXHeader>
<imsx_POXBody>
<replaceResultRequest>
<resultRecord>
<sourcedGUID>
<sourcedId>${lisResultSourcedId}</sourcedId>
</sourcedGUID>
<result>
<resultScore>
<language>en</language>
<textString>${lisGrade}</textString>
</resultScore>
</result>
</resultRecord>
</replaceResultRequest>
</imsx_POXBody>
</imsx_POXEnvelopeRequest>

 

Was this article helpful?

Did you arrive here by accident? If so, learn more about Learnosity.