thinking outside the lms - taking scorm to where people learn today
DESCRIPTION
Presentation done by Mike Rustici at eLearning DevCon 2010. A look at how developers can use the SCORM Cloud API to connect learners to learning out around the web.TRANSCRIPT
Mike Rustici * Rustici Software * DevCon 2010
CC image by 1Happysnapper on flickr
These types of presentations are always a challenge. Everyone’s just enough different to make it a bit of a stretch to know that one presentation will fit everyone. Different platforms, different skillsets, different knowledge base, different end goals. Some of you will want to integrate with SC for your school or company, some of you might want to do an integration and make money selling it, some of you might want to do one for the fun, fame and glory.
-‐Let’s start a with a little bit of what SC does. -‐At it’s core, it’s a hosted SCORM player – it’s out in the cloud rather than behind a firewall or as part of a specific piece of software. -‐Which provides sweet freedom for anyone looking to take advantage of learning opportunities out on the web at large. -‐Mash-‐ups -‐We do one thing extremely well, and now we’re letting everybody use that -‐Just about any e-‐learning content is available as SCORM, so it is a broad e-‐learning delivery platform
-‐To our mind. SC is a solution of the problem of how to connect learning to learners online and track it without going back to the LMS. -‐Think of it as a platform that could be used to launch a course via WordPress widget or Facebook app and keep track of everything right there rather than going back to the LMS.
+ And Facebook and Wordpress are just starting points. When you start talking about the web, the options are almost endless.
CC image by bjornmeansbear on flickr
-‐This is where you come in. While we can do integrations for anything out there – it’s not the best use of our time. -‐We’d rather focus on keeping SC and our other SCORM products the best ones out there. -‐And continue to be the experts when it comes to SCORM. That’s our wheelhouse. We want to stay there. -‐We aren’t interested in developing learning systems, just one core piece
CC image by dmealiffe on flickr
So we opened the API and are encouraging anyone who wants to to make an app built on SC and integrating anywhere on the web. (Or, with an LMS, pretty much anywhere you want to integrate.)
CC flickr image from apdk
-‐Yes – we benefit from any work you do. -‐Any way you make it easier for people to use SC means we have more people paying for the service. -‐Any promotion you do of your integration by default helps to promote SC. -‐And if you’re doing the integration work, we can focus on other things.
-‐So what’s in it for you? Well, you’re developers. You tell me. -‐What are people getting out of developing applications for any of these? -‐In each case – we’re talking an open API or a freely available SDK as a starting point for anyone who wants to create an app. -‐An app they control, sell, give away, make open source.
CC flickr image from apdk
-‐We see the same equation working in this scenario to be a huge benefit for you. -‐We’re committed to doing all we can to make SC the best product out there, to providing a platform to let people know about your app and giving you a place for them to find it. -‐Won’t quite be the App Store, but we _want_ people to find and use what you create, so we’ll be right there helping in any way we can.
CC flickr image from Marcus Q
So what does SC do that makes it all that and a bag of chips?
Tracking�Testing�
Content Control�Invitations�
Reports And this is just where we start … . Tracking and testing – those are typical SCORM type things. Content control – it’s cool and there’s always potential that you might come up with something using that feature. Reports – certainly something you need to know about as a feature and you might consider an app that pulls reports out into other places. Invitations – immediate potential
-‐What we mean by invitations is the fact that you can actually use SC to launch training just by sending someone a link. -‐It’s the simplest way to take training outside the LMS. -‐Within the SC app, you can find this invite button in several places. *click* Clicking it launches the invite email. -‐And there are a few things on here that I’ll get into more detail with later. -‐But the invite process generates a link that when clicked, launches the course. -‐And when we talk about integrating with other services, what we’re thinking is how to get that link around the web easily.
-‐Now, we have done a few integrations ourselves – partly as proof of concept, partly to give us some additional ways to promote SC. -‐We started with open source LMSs and are wrapping up work on widgets for WordPress and Google.
Launch from anywhere! -‐In all cases – the integration allows you to launch a course using SC right in the service. -‐Using the invitation feature of SC, you can generate a link that shows right in the web service where you want it.
+ -‐I showed you this idea here earlier and you probably recognize most of those logos – Elgg, Joomla, Second Life, SharePoint, Drupal, SalesForce, LinkedIn. -‐And these are just a few of the places we’ve thought of already. And I’m sure you’re sitting there thinking of others already.
CC flickr image from Steve.Jackson
Before we dive into the API, let’s talk about some of the concepts of SC that you’ll need to have a handle on.
Course – well, OK, that probably self explanatory. -‐Here’s what one looks like launched with SC. The course is what’s in the SCORM package you’re launching. -‐Since SC can do AICC, 1.2 and 2004 courses, it really doesn’t care what’s actually in the course. -‐But if the course isn’t set up correctly, part of its feature set is to let you know that and give you everything you need to figure out the problem.
-‐App_id – every application has one. -‐Can share data across application, so a Moodle integration can access the same courses as a WordPress integration
Realms: -‐a learner is a learner, he might learn in many contexts -‐also, you might want to deliver training in many contexts -‐Cloud can unify all of these
Tracking – one of the functions of SCORM is to track the data that goes back and forth between the course and the LMS.
Registration – An instance of a user taking a course This is how we charge for SCORM Cloud, by the amount of actual usage Utility computing
CC image by Kamal H. on flickr
Let’s go play around
CC flickr image from Steve.Jackson
Back to concepts again, this time for the API
API Concepts • Secure REST-ish Web Services
Debug Service
• ping • getTime
Upload Service
• getUploadToken • uploadFile • listFiles • deleteFiles
FTP Access Service
• createUser • setUserPassword
• deleteUser • createPermissonDomain
• deletePermissionDomain
• getDomainListsetCourseDomain
• setUserDomaingetDomainInfo
• getCourseInfo • getUserInfo
API Concepts • Secure REST-ish Web Services
Course Service
• importCourse
• importCourseAsynch
• getAsyncImportResult
• versionCourse • getAssets • updateAssets • deleteCourse • getFileStructure • deleteFiles • getAttributes • updateAttributes
• getMetadata
• getCourseList
Tagging Service
• createTag • deleteTag • tagCourse • untagCourse • tagUser • untagUser
API Concepts • Secure REST-ish Web Services
Registration Service
• createRegistration • deleteRegistration • resetRegistration • getRegisrationList • getRegistrationResult • getRegistratonListResults • launch • resetGlobalObjectives
API Concepts • Secure REST-ish Web Services Debug Service
• ping • getTime
Upload Service
• getUploadToken • uploadFile • listFiles • deleteFiles
FTP Access Service
• createUser • setUserPassword • deleteUser • createPermissonDomain • deletePermissionDomain • getDomainListsetCourseDomain • setUserDomaingetDomainInfo • getCourseInfo • getUserInfo
Course Service
• importCourse • importCourseAsynch • getAsyncImportResult • versionCourse • getAssets • updateAssets • deleteCourse • getFileStructure • deleteFiles • getAttributes • updateAttributes • getMetadata • getCourseList
Tagging Service
• createTag • deleteTag • tagCourse • untagCourse • tagUser • untagUser
Registration Service
• createRegistration • deleteRegistration • resetRegistration • getRegisrationList • getRegistrationResult • getRegistratonListResults • launch • resetGlobalObjectives
Client Libraries
CC flickr image from schoschie
Geek out time -‐ Let’s go play with some code
CC flickr image from @boetter
Brainstorm So, what possibilities do you see? What is exciting?
Mike Rustici * Rustici Software Twitter * @mike_rustici
Email * [email protected] scorm.com