SCORM 1.2: A developer's guide to the SCORM e-learning standard (2023)

A Technical Guide to SCORM 1.2

This article gives you, as a developer, a quick and easy understanding of the e-learning standard SCORM 1.2 and how it actually works.

This article refers to the most widely used version of SCORM-SCORM 1.2.An updated version pointing to SCORM 2004 is also available.

The Shareable Content Object Reference Model (SCORM) enables the execution of learning content from any provider on any SCORM-compliant Learning Management System (LMS).

Developed through collaboration between government, academia and industry, SCORM consolidates the work of IEEE's AICC, IMS, ARIADNE and LTSC into a unified reference model.

Basically, SCORM version 1.2 consists of two parts: the runtime environment and the content aggregation model.

(Video) What is Scorm | Introduction to Scorm | Course Authoring | E-Learning

  1. Öruntime environmentSpecifies how the content should behave after being launched from the LMS.
  2. Öcontent aggregation modelspecifies how you should package your content so that it can be imported into an LMS. This involves creating XML files that an LMS can read and learn everything it needs to know about your content.

The runtime environment in a nutshell

A SCORM compliant LMS is required to implement an API consisting of 8 functions (see section 3.3 of the SCORM runtime environment document for full specifications) that content can access to communicate with the LMS.

  • LMSInitialize()
  • LMSFinalize()
  • LMSObtenerValor()
  • LMSEstablecerValue()
  • LMSCommit()
  • LMSGetLastError()
  • LMSGetErrorString()
  • LMSGetDiagnostic()

This API is implemented by what SCORM calls the Adapter API. An API adapter must reside in a window that is either a splash window or a parent frame of the window containing the content. This means that the LMS can launch content in a new window or frameset. The API adapter must be an ECMAScript (JavaScript) object named "API" that can be accessed through the DOM. The adapter must implement the 8 functions listed above.

All communication between the content and the LMS is done through this adapter, so the content author doesn't have to worry about communicating with the server, they just need to be able to find the adapter API and use the appropriate JavaScript make calls. This separation of client and server is fundamental to SCORM as it ensures the portability of content by forcing it to run on a standard platform (the web browser). It is important to note that content can only communicate with the LMS via this JavaScript API adapter. There is no SCORM compliant method for communicating content to the LMS via other methods such as B. Web services or HTTP requests.

For minimal SCORM compliance, a piece of content only needs to call LMSInitialize() on startup and then LMSFinish() on exit. It can be so easy.

In the real world, however, we want a much richer interaction. We want to be able to report test results, track the weather, mark our last location, and more. This is where the following three features come into play. SCORM defines a data model consisting of two data model elements that can be read and recorded, facilitating this type of functionality (see Section 3.4 of the SCORM Run-Time Environment document for a full list of Dice's model elements). LMSGetValue() retrieves the value of an LMS data model item, LMSSetValue() writes a value to a data model item in the LMS, and LMSCommit() can be called after any value is set to ensure the data persists.

For example:

(Video) SCORMs in eLearning - Ask Me Anything with LearnWorlds & dominKnow

cmi.core.lesson locationis the piece of data that describes the location of the user in the content

When the content is initialized (after calling LMSInitialize();) you might want to make this call to find out where the user left off and return to this point:

strLastLocation = objAPI.LMSGetValue("cmi.core.lesson_location");

If the content switches to another zone, you can make this call to save the user's location:

blnSuccess = objAPI.LMSSetValue("cmi.core.lesson_location", "page3"); blnSuccess = objAPI.LMSCommit("");

The other three features enable content to intelligently detect and handle errors.

Implementing this API adapter in the LMS is a bit more complex than using it from the content. The API adapter must implement all API functions and support most of the SCORM data model. The tricky problem in implementing a SCORM-compliant LMS is how to handle the browser-to-server communication. Many people choose to do this with a Java applet, but others have had success with Flash, ActiveX controls, and simple JavaScript.

go back up

The content aggregation model in a nutshell

The content aggregation model is divided into three parts, the content model, the metadata, and the content package.

Öcontent modeldescribes the delivered content. If the content contains more than one module, the content model describes the relationships between those modules (called aggregations). The content model also describes the physical structure of the content (necessary files, etc.).

The content model defines a powerful model for dividing content into reusable units of any size. These units are called Shareable Content Objects (SCOs) and Assets. An asset is simply an "electronic representation of media, text, images, sound, web pages, test objects, or other data." Examples of assets are images, sound clips, Flash movies, etc. An SCO is a collection of one or more assets that represent a logical unit of learning.

The definition of an SCO is intentionally vague, it can be defined as a single web page or as a huge, complex web-based training module with hundreds of pages and hundreds of images and other resources. The definition of a SCO is left to the content author to define under the guidance that a SCO should represent the smallest unit of learning that the LMS should track. Each SCO must be reusable. To achieve reuse, a SCO must not be context-sensitive, must not reference other SCOs, and must not bind to other SCOs. These considerations should be taken into account when determining the size of your SCOs. See section 2.1 of the SCORM specification for more information; You can also find many of the important details in Section 2.3 (Content Pack).

ÖmetadataThe specification provides a mechanism for describing content using a predefined common vocabulary. This vocabulary is divided into nine categories:

  1. ÖGenerallyCategory groups general information that describes the resource as a whole.
  2. ÖlifespanThe category groups features related to the history and current status of that feature, as well as those that influenced that feature during its development.
  3. ÖMeta-MetadatenThe category groups information about the metadata record itself (rather than the resource that the record describes).
  4. ÖtechnicianThe category groups the technical requirements and the properties of the function.
  5. ÖinstructiveCategory groups the educational and pedagogical characteristics of the resource.
  6. ÖrightThe category groups the intellectual property rights and terms of use of the resource.
  7. ÖRelationshipResources in the set of categories that define the relationship between this resource and other target resources.
  8. ÖannotationThe category provides feedback on the pedagogical use of the resource and information about when and who created the feedback.
  9. ÖclassificationThe category describes where this resource falls within a particular classification system.

The metadata specification defines a very rich data model; However, only a small subset of the data items are required to achieve SCORM compliance. The complete metadata specification can be found in Section 2.2 of the SCORM Content Aggregation Model.

ÖContent of packagingThe specification defines how the content model and metadata are implemented. To facilitate seamless interoperability between systems, all content should be packaged similarly. The content packaging specification requires that all content be transferred to a folder or ZIP file named PIF. At the root of this folder should be an XML file called imsmanifest.xml that contains content model information and metadata specifications in a well-defined format. There are many good examples of content packs available on the ADL website.

(Video) SCORM The Basics and Beyond

go back up
(Video) Use iSpring to Create SCORM Compliant E-Learning Courses

SCORM 1.2 Technical Summary

You now have a general overview of the SCORM 1.2 standard. From a technical point of view, the two most important things to note

  1. All communication between content and an LMS is done via JavaScript
  2. All content must contain an XML file called imsmanifest.xml that describes its structure and other features for the LMS.

A full SCORM implementation requires a much deeper understanding of the runtime environment and the content aggregation model.

Are you ready to start SCORM?

This site has some great resources to help you implement SCORM. Or contact us if you have any questions about SCORM implementation.

(Video) SCORM Setup in Moodle


1. Importing & Uploading SCORM Course
2. How to Use a Learning Management System (LMS)
(Devlin Peck)
3. Turn Your Camtasia Video into SCORM eLearning
(Paul Wilson's eLearning Tutorials)
4. How to Create a SCORM Course in 3 Steps with iSpring Suite
5. Introduction to SCORM, Part 1
(ADL Initiative)
6. How to Create a SCORM Course in 3 Steps
Top Articles
Latest Posts
Article information

Author: Ray Christiansen

Last Updated: 03/17/2023

Views: 6203

Rating: 4.9 / 5 (69 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Ray Christiansen

Birthday: 1998-05-04

Address: Apt. 814 34339 Sauer Islands, Hirtheville, GA 02446-8771

Phone: +337636892828

Job: Lead Hospitality Designer

Hobby: Urban exploration, Tai chi, Lockpicking, Fashion, Gunsmithing, Pottery, Geocaching

Introduction: My name is Ray Christiansen, I am a fair, good, cute, gentle, vast, glamorous, excited person who loves writing and wants to share my knowledge and understanding with you.