Using LTI to provide deep integration of YouSeeU Video Assessment in MindTap.

  • What worked
  • What was missed

Claude Vervoort - Architect, MindTap team - Jeff Lewis PhD, CLO, YouSeeU

synchronous (live capture) and asynchronous speech video delivery, recording and grading

Courseware platform assembling rich content and activities in a customizable environment.

MindApps are used to actually deliver Content and Activities.

Demo!

Standards at Play

Rating on how LTI played out for main integration points:

  • Launching an Assessment
  • Adding/Editing an Activity
  • Submission and Grading
  • Master and Courses
  • Roster

Launching an Assessment

When clicking on the Learning Path, the right assessment opens in the right state for current user.

Down arrow

Basic LTI Launch


POST http://youseeu.com/lti
lti_message_type: basic-lti-launch-request
#where
context_id: 46
context_title: 'Course Name'
#who
user_id: 1234455
roles: 'Instructor'
lis_person_name_family: 'Smith'
lis_person_name_given: 'Samantha'
#what
custom_ref_id: 'asst-345'
custom_activity_enddate: 1399519279
custom_course_enddate: 1399892453
#trust
oauth_consumer_key: 'mindtap'
oauth_sign: '6mzAT1/8K9y3Bu2co417WT2g0Dc='
					

custom_activity_end_date

take 🕐 peer review

Verdict

That is what Basic Launch is for, however too much reliance on custom params

Adding an Activity

As an editor or an Instructor, I want an integrated authoring environment to add or edit YouSeeU activities in MindTap.

Down arrow

Content Item Request Launch

1: Content Item Request


POST http://youseeu.com/lti
lti_message_type: ContentItemSelectionRequest
#add flow continutation
content_item_return_url: http://mindtap.com/nb/service/lti/contentItemSelectionReturn
data: mindtap-continutation-data
#where
context_id: 46
context_title: 'Course Name'
#who
user_id: 1234455
roles: 'Instructor'
#trust
oauth_consumer_key: 'mindtap'
oauth_sign: '6mzAT1/8K9y3Bu2co417WT2g0Dc='
					

2: YouSeeU responds


POST http://mindtap.com/nb/service/lti/contentItemSelectionReturn
content-items: {
     "@context": ["http://purl.imsglobal.org/ctx/lti/v1/ContentItemPlacement", 
                  "http://mindtap.cengage.com/static/nb/jsonld/contentitem.jsonld"],
     "@graph": [{
         "@type": "ContentItemPlacement",
         "placementOf": {
             "@type": "LtiLink",
             "mediaType": "application/vnd.ims.lti.v1.launch+json",
             "title": "Subjective Assessment",
             "activityRefId": "12ad5g",
             "mtScorable": {
                 "pointsPossible": 34.53
             }
         }
     }]
 }
data: mindtap-continutation-data
					

3: Back in Mindtap,

Instructor submits

...or cancel

Limitations

  • No confirmation when truly added
  • No grading information
  • No Edit flow
  • No Delete notification

Content Item: more than LTI Links

Verdict

Fills a key gap. Will evolve!

Submission and Grading

As an Student, I need to know in MindTap the status of my activity, in progress, submitted, graded.

Down arrow

Basic Outcome Service (the POXes)


POST http://youseeu.com/lti
lti_message_type: basic-lti-launch-request
#who, where, what, trust as before
#Outcome
lis_outcome_service_url: http://local.mindtap/nb/service/ltiOutcome/saveAttempt/
lis_result_sourcedid: '3e39d9bd-77df-4cb4-8070-07ca76c75c52'
 						

POX example


  
    
      
        
          3124567
        
        
          
            en
            0.92
          
        
      
    
  
 						

States Mapping

  • In Progress: on 1st launch (attempt created)
  • Submitted: POX ReplaceResult, empty Result
  • Graded: POX ReplaceResult, 0-1 grade rescaled
  • Reset (YSU initiated): POX DeleteResult
  • Reset (MindTap initiated): Callback Proprietary

Graded by System

No information about the actor :(

Verdict

Too limited and clunky to grow into, but worked! Looking forward to Rich Outcomes.

Masters and Courses

As an Instructor, I want a course with great content and activities that I can then customize

=> Each course is a modifiable copy of a Master

Source Context


POST http://youseeu.com/lti
lti_message_type: basic-lti-launch-request
#where
context_id: 46
#on every launch, used to do Lazy copy of YouSeeU context
source_context_id: 34
					

Verdict

Proprietary semantics using LTI plumbing

Roster

As an Instructor, I need to setup group activities in advance. Late enrollment on 1st student launch is not enough.

MindTap ROSTER Service


# All Course enrollment
GET http://{mindtap}/roster/{contextId}

# Feed like Pull api for update
GET http://{mindtap}/roster/{contextId}?since={unix_timestamp}

#secured with simple HTTP Header signature using LTI Shared Secret
						

Verdict

But bot for long! Membership Service cooking...

so, final Verdict?

Awesome :)

  • Bootstrap integration (basic integration quickly up and running)
  • Lingua Franca
  • A model to grow into
  • Experience can be shared for next integrations and the community

Q & A

images from: http://www.reactiongifs.us/thumbs-down-gladiator/ http://www.dailymail.co.uk/news/article-2296269/From-guns-thumbs-Film-fans-shoot-classic-movie-moments-weapons.html http://somofos.com/wp-content/uploads/2012/04/borat-thumbs-up-1.jpeg