The Magic of SCORM

SCORM logo

As e-learning developers, we tend to be learners ourselves. We often like to take things apart and figure out how they really work. Yet with all the tools, we have available for us today to make development easier it’s highly likely you have created a lot of SCORM compliant content. But you may not really understand how SCORM works. And since we like to take things apart, it’s probably bugged you in the back of your mind.

SCORM is Not Really Magical

Worry no more!

Today I want to share a (very) brief explanation of what goes on behind that curtain with an overview of the SCORM process.

There’s no wizard there working the controls. What IS there is a lot of communications and commands. And several components working together to record and report.

What SCORM Needs

What it takes to make SCORM work is first (naturally) an e-learning course. You also need a Learning Management System (LMS), a consistent Internet connection, and a web browser with support for JavaScript.

Why all of this?

The LMS provides the mechanism for collecting, storing, and retrieving the data related to the learner and the courses. Recordkeeping requires some sort of database system. The LMS has that database and the programming internally for working with records.

Since the LMS resides on a web server, that’s why we need a consistent Internet connection. We need to be able to get the data from the course to the server and the Internet makes that possible.

That also explains the web browser and JavaScript. The browser is (or at least for a long time WAS) the way to render and display web-based content on a learner’s system. The JavaScript code contains the programming to take data from the course and send to the server in a way that it understands.

So what happens?

Your SCORM-compliant e-learning course is packaged and then installed on the LMS. The course files are placed in a folder on the web server and the LMS knows where. The LMS also reads an XML file in the course package called a manifest. That file provides the details of the course. Those details may include title and identification of the Shareable Content Objects (SCOs) in the course.

What the LMS Does

When a learner selects a course from the LMS, the LMS finds and launches the selected course. The launch typically in a frameset configuration for the browser. The frameset is necessary so that one frame can display content while the other one (usually hidden) allows for the JavaScript communication.

graphic showing role of the API Adapter in SCORM communicationWhen the course launches, the first thing the JavaScript does is look for how it will communicate with the LMS. It does that through an API (Application Programming Interface) adapter. That adapter is made available by the LMS and contains a standard set of commands that the JavaScript can use to send and receive information from the server (LMS). THIS IS A CRITICAL COMPONENT OF MAKING SCORM WORK. Without the API, our chances of communication and data exchange pretty much vanish. For more on this topic see our article on API Errors.

The commands made available in the API adapter are what are called “get-value commands” and “set-value commands”. The course will use a “get-value” command to ask the LMS to retrieve data about the course and the learner, such as the learner’s completion status in the course, where they left off, and perhaps even the learner’s name. The “set-value” command allows the course to ask the LMS to store data about the learner’s progress in the course into the database. This can include bookmarking where they are in the course, whether or not they completed the course, and how they scored on the assessment.

The LMS makes this API adapter available in a known location. The JavaScript attempts to find it and then open communication with the server through the API. Once the communication channel is opened, data exchange can occur.

What the Course Does

The next thing that happens is the course, through JavaScript, checks with the LMS to find data about the learner, which might include their name and whether they have accessed the course before. The LMS finds the information, if it exists, and sends it back to the course.

As the learner goes through the course, the JavaScript will keep sending updated information to the LMS through the API adapter. Typically, it will send a bookmark as you access each page. Other data, such as course completion status and assessment score, are only sent when there is something new to report.

When the learner is exiting the course, the JavaScript will work with the API adapter to send a final bookmark and any other vital information that has changed, such as completion status. The LMS then stores that data in its database so we can report on it later or so that it can be available the next time the learner opens the course.

This is why you need a “course package” every time you create a course. You don’t just need the course content files, which is typically your HTML, image files, and sometimes Flash files. The LMS needs that XML file called imsmanifest.xml to get course information. And you also have all the JavaScript that does the work of communicating with the LMS. Finally, there are a whole bunch of supporting files with xsd extensions that provide additional rules about course structure.

Simple Communication

What SCORM really does for you is standardize all the language and processes enough so that every component knows what to do, when to do it, and how to talk to one another. That’s how proprietary third-party SCORM courses can be added to a proprietary SCORM LMS system and still work. They both speak SCORM!

So the next time you click that Publish button to create your course package, know that because of SCORM you can be fairly confident that your course will work and communication will occur.

Still want to know more about how SCORM works? Contact us a to inquire about our instructor-led and online SCORM training courses.

Share on facebook
Share on google
Share on twitter
Share on linkedin
Share on pinterest
Leave a reply

Your email address will not be published. Required fields are marked *

eLearning Learning