Sunday, March 13, 2011

What you don’t need to know about SCORM

by Jonathan Shoaf

The first time I heard the term SCORM was about 10 years ago.  I never paid it much attention.  I worked in the higher education industry and SCORM just wasn’t a big player there.  About 5 years ago the company I was working for had a product called Wimba Create and the term SCORM started swirling around in my head again.  Wimba Create is an add-on for Microsoft Word and can convert content to a SCORM package that can be used in a learning management system (LMS).  Anyone who uses Word can create a SCORM package.  But in higher education, not many of our customers were asking for SCORM.

It wasn’t until I started developing content for corporate training that SCORM became important.  While academic institutions have been slow to adopt self-paced learning (without a real live instructor), corporate institutions have seen the benefits of it for adult learners who have very specific job skills they need to learn.

My SCORM Story

SCORM is a standard to help promote interoperability of content between learning management systems.  I have recently benefited from developing content for this standard.  My organization was ready for online training, but was still in the process of choosing an LMS.  I was able to start developing content (to the SCORM standard) and use it with a temporary learning management solution while my organization went through the process of choosing an LMS.  When the new LMS was up and running I was able to reuse the content I developed for the temporary LMS with the new LMS.  Reusable content...that is the major benefit to SCORM.

While there are several versions of SCORM (the most common being 1.2 and 2004), there are two common aspect of all versions of SCORM that are important to understand.  These are packaging and playing.  It is important to understand some of the basics of SCORM; however, if you use a rapid development tool like Lectora or Captivate, you really don’t need to understand the technical details of SCORM.

The SCORM Package

A SCORM package is how all the content you have developed is tied together into a single file.  This is really just a compressed file with XML data that contains an organized map to the content files.  This is known as a package interchange file or PIF.  When this content is uncompressed on the LMS content server, it is considered deployed SCORM.  When this content is on a completely different content server than your LMS, it is often referred to as distributed SCORM.

A SCORM package must contain the following contents:
  • An XML manifest file called imsmanifest.xml
  • Any Schema/definition files referenced by the manifest file (i.e. .xsd and .dtd)
  • All content resource files to be used for the learning activity
Most developers who use rapid e-learning development tools don’t need to work on the details of the package itself.  You just build the project and let the tool handle the packaging.  There have been only rare occasions where I have had to manually add resource files to the zipped package.  If you are not using a rapid e-learning development tool, then you will need to know the details about how to create a SCORM package yourself.

Running SCORM on an LMS

The SCORM standard provides a run-time Application Programming Interface, or API, for making your content work with an LMS.  SCORM-based content is broken down into Shareable Content Objects, or SCOs.  As the learner progresses through each SCO, the SCORM API tells your LMS where to start in your content and the status of the learner as they progress through the content.

The LMS provides the SCORM compatible API.  For example, if you LMS supports SCORM version 1.2, that means it provides the SCORM 1.2 API.  If you create a SCORM 1.2 package, it should work with your LMS.  Behind the scenes the API is implemented though javascript, also known as EMCAScript.

There are very basic calls you can make with this API.  These calls include intializing (or starting communication with a SCO), terminating (or ending communication with a SCO), getting or setting values (like the learner name, completion status, score, bookmarks, or other content variables), and committing data to the LMS (which essentially tells the LMS to save the data).

As with SCORM packaging, if you use a rapid development tool, you really don’t need to understand all the details here.  You just build the project and let the tool provide all the SCORM communication you need.  It is rare, when using a rapid e-learning development tool, that I have had to directly access the SCORM API.  The last time I made a direct call to the SCORM API was to call the LMSCommit function which saves the current learner data to the LMS in SCORM 1.2.  This was done in the middle of a lengthy lesson so that the learner wouldn’t lose all their work if the system timed out or crashed.  If you are not using a rapid e-learning development tool, you will need to either use a javascript SCORM library from a 3rd party or create it yourself (not recommended unless you are an experienced javascript developer!)


I hope this gives you a better idea of the “magic” of SCORM.  Using a rapid e-learning development tool means you likely will never need to sweat the details.  Oh, and in case you’re wondering, SCORM stands for Shareable Content Object Reference Model. can forget that.

1 comment:

  1. "Great Bolg! SCORM defines communications between client side content and a host system called the run-time environment, which is commonly supported by a LMS.


Thank you for your comments.