IMS LTI Outcomes 1.0
First introduced in March 2012 with LTI 1.1, Outcomes-1 has changed little over the years. It finally got its own spec in January 2015, and it’s own name: Learning Tools Interoperability Outcomes Management Service 1.0.
In a nutshell, the Tool Provider can read, write, and delete a decimal score between 0.0 and 1.0 as the result, or outcome, of an LTI launch. The Tool Provider can do this immediately, for example if the tool is a self-scoring game. Or later, for example if the teacher launches the tool later to manually grade an essay submitted in response to the original launch.
IMS LTI Outcomes 2.0
A draft version of Outcomes-2 was introduced in December 2014, but it has not been finalized yet. Outcomes-2 has a similarly long name: Learning Tools Interoperability Outcomes Management Service 2.0.
There are many differences between the specifications (see the table below), but as a product manager, I want to focus on the problems they solve. In this sense, Outcomes-2 is a superset of Outcomes-1: every problem you can solve with Outcomes-1 can also be solved by Outcomes-2. But Outcomes-2 can solve one pervasive problem much better than Outcomes-1.
Comparing Outcomes-1 to Outcomes-2
|LTI compatibility||LTI 1.x||LTI 1.x and 2.x|
(data content determines action)
|DELETE, GET, POST, and PUT
(method determines action in a RESTful way)
|Data schemas||A single result||A single resultAll the results for a single assignment
A single assignment
All the assignments for a class
|Result schema||Score earned by the learner between 0.0 and 1.0||Score earned by the learner between 0.0 and 1.0The learner that earned the score
Penalty score to be deducted
Extra credit score to be added
Score constraints to be applied
Total score on the assignment
Resulting text score to be displayed
The result status
A comment associated with this result
|Assignment schema||Not applicable||Gradebook labelThe Tool Provider’s activity that produces the associated results
Score constraints to be applied to all associated results
The associated results
What Problems do Outcomes-1 and Outcomes-2 Solve?
Not Enough Time in the Day
Both Outcomes-1 and Outcomes-2 help solve the most common problem teachers want solved: enough time to adjust their teaching to improve student learning. But manually gathering the information they need to adjust their teaching takes a lot of time…time that they are not teaching. Anything that frees up some of their time is a terrific boon. Tool Providers that automatically send information to the teacher are helping that teacher teach and his or her students learn. Even a simple score tells the teacher which students have completed an assignment and if they were able to complete it successfully.
But self-scoring activities and simple scores are not the right fit for all teaching and learning experiences, and that’s were Outcomes-2 starts to shine.
Teachers often use a style of teaching that asks students to demonstrate their understanding of a concept or their ability to synthesize multiple concepts. There are many ways of demonstrating competence, many of which don’t involve technology at all (such as giving a speech or performing a play). But technology can improve some existing techniques (turning in a document online versus a physically turning in a piece of paper removes the constraints of time and place), and make other techniques possible, such as producing an interactive timeline to demonstrate cause and effect relationships.
One characteristic shared by all demonstrations of competence is the need for an audience, and in particular the teacher. Someone to demonstrate to, and someone to get feedback from. And this is where Outcomes-2 has the advantage.
An Outcomes-2 result has two properties that enable online demonstrations of competence without wasting the teacher’s time and without the constraining either the student or teacher to time and place: the result status and comment. The result status allows the student to tell the teacher where they are in the process: “I’ve started working on assignment” and later, “I’ve completed the assignment”. The result comment can be used to provide more details such as “I’ve finished part 1 of 3”.
Once the result status is “Completed”, the teacher takes over to review the demonstration of competence. Once that review is complete, the teacher can tell the student the final grade and provide simple feedback with the comment (the Tool Provider should provide a mechanism for the teacher to provide detailed feedback if necessary).
Outcomes-2 won’t do anything if it is not built into the learning systems, tools, and content that schools use. Like LTI 2.x, it looks like we are in a stand-off until schools demand that vendors support Outcomes-2. If you are a school trying to implement any kind of online competency based learning, talk to your vendors about how their solution could improve if they implemented Outcomes-2. If you are a vendor with a cool tool that uses Outcomes-2, talk to your schools about how much better your tools would be if their other vendors also supported Outcomes-2.
I have successfully been able to use the LTILibrary.Core to establish Launch to Provider. However, without MVC, but using .Net, are there any samples on how to provide Outcome 2.0 functionality in project?
Yes there is. Please check out the SimpleLti project in https://github.com/andyfmiller/LtiSamples.
Thanks for the info on the sample project. I have successfully setup a Consumer using WebApi connected to a 3rd party provider. However, I am having some issue on the Outcomes 2.0 parse to object that occurs. The 3rd party used the full uri scheme for naming and it seems like it doesn’t parse the values correctly. If I take their post and make objects simple named, it works correctly. I am not sure what I am missing to make the parsing work correctly.
I have been successfully been able to authorize a user being sent from the LMS. However when I Attempt to post a score I recieve a 404 Error. I am using the following Method you provide.
LtiLibrary.Core.Common.BasicResult result = LtiLibrary.Core.Outcomes.v1.OutcomesClient.PostScore(Form[“lis_outcome_service_url”].ToString(), Form[“oauth_consumer_key”].ToString(), SharedSecret, Form[“lis_result_sourcedid”].ToString(), 1);
I’m not sure why there is this error when all of the parameters are sent from the LMS?
I agree with you. I guess I would try browsing to the URL in lis_outcome_service_url to see if it responds. Perhaps there is nothing there.