cancel
Showing results for 
Search instead for 
Did you mean: 
kreut
Surveyor II

Changing grades at a later date with LTI 1.3

Jump to solution

Hi,

Using LTI 1.3, is it possible to programatically change grades at a later date?  Right now I have:

$launch = LTI\LTI_Message_Launch::new(new LTIDatabase())
->validate();

I then have a student work through an assignment, and then use this object  in performing the grade passback within that session.  This works great, but what if I need to change the students grade at a later date?

Potential use cases:

1) An instructor removes a poorly worded question from the assignment so that scores have to be recomputed.

2) A grader has to do some manual scoring.

Would I be able to just save the latest launch objects for each student associated with a particular assignment, then iterate over and send the scores back? In particular, I'm wondering if the launch objects might be time sensitive.  Or I'm also wondering if there's there's a better, accepted approach.

Thanks so much!

0 Kudos
1 Solution

Accepted Solutions

Thanks so much for your response!  It looks like your solution works for LTI 1.1.  And it gave me the hope that the same would work for LTI 1.3, which it does.  To those using the PHP library, all you need to do is to save the launch id and then you can use something like:

$launch = LTI\LTI_Message_Launch::from_cache($launch_id, new LTIDatabase());

 The 1.3 library will then handle the request for you and update the grade

View solution in original post

0 Kudos
2 Replies
svickers2
Surveyor

You can send a score to the platform from a tool at any time; all you need is an access token, the endpoint and the score value to be sent.  For example, when using the ceLTIc Project's LTI library for PHP you can use the doOutcomesService method of the ResourceLink object (see https://github.com/celtic-project/LTI-PHP/wiki/Outcomes-service) or the submitOutcome method of the LineItem object (see https://github.com/celtic-project/LTI-PHP/wiki/Line-Item-service).  The library obtains the required access token and retains the required endpoints automatically.

Thanks so much for your response!  It looks like your solution works for LTI 1.1.  And it gave me the hope that the same would work for LTI 1.3, which it does.  To those using the PHP library, all you need to do is to save the launch id and then you can use something like:

$launch = LTI\LTI_Message_Launch::from_cache($launch_id, new LTIDatabase());

 The 1.3 library will then handle the request for you and update the grade

View solution in original post

0 Kudos