SCORM 1.2

The educational technology and digital learning wiki
Revision as of 16:56, 21 December 2006 by Daniel K. Schneider (talk | contribs) (using an external editor)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Definition

SCORM 1.2 is a so-called profile that defines a Web-based learning "Content Aggregation Model" and "Run-Time Environment" for learning objects

See also:

  • Learning object for a conceptual overview
  • SCORM for an overview of ADL's Sharable Content Object Reference Models (SCORM)

It used to be difficult to find mostly SCORM-conformant LMS besides the [1] list of SCORM certified products. Many open source system claim to be SCORM conformant, but DSchneider is not sure of this.

A SCORM compliant system must adopt the Content Aggregation Model (CAM) and the Run-Time Environment (RTE)

The Run-Time Environment

The API

According to Rustici (2004), a SCORM conformant LMS is required to implement an API, i.e. a ECAMAScript object named "API" accessible through the DOM and that implements eight JavaScript functions.

Functions for execution state
LMSInitialize()
LMSFinish()
Functions for data transfer
LMSGetValue()
LMSSetValue()
LMSCommit()
Functions for error handling
LMSGetLastError()
LMSGetErrorString()
LMSGetDiagnostic()

'All' communication between the content and the LMS is handled by this adapter.

For minimal SCORM conformance, the only thing that a piece of content needs to do is call LMSInitialize() when it starts and then call LMSFinish() when it exits.

The CMI Data Model

SCORM adopts the "cmi" data model from AICC. It consists of data model elements which the content can read from and write to using this interface. Here is an example from Rustici (2004):

cmi.core.lesson_location is the data element that describes the user's location in the content.

When the content begins (after it has called LMSInitialize();), it may want to make this call to find out where the user left off and return him to that point:

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

The Data Model describes several kinds of data. The following table lists some of these data types plus associated JavaScript objects and some possible system messages displayed to the user.

  • Mode (cmi.core.lesson_mode), e.g. 'normal', 'review', 'browse'.
  • Status (cmi.core.lesson_status and cmi.objectives.n.status), e.g 'completed', 'failed', 'passed', 'incomplete', 'browsed', 'not attempted'.
  • Exit (cmi.core.exit), e.g. 'time-out', 'suspend', 'logout'
  • Credit (cmi.core.credit), e.g. 'credit', 'no-credit'
  • Entry (cmi.core.entry), e.g. 'resume', 'ab-initio'
  • Interaction (cmi.interactions.n.type), e.g. 'choice', 'true-false', 'fill-in', 'matching', "performance", "likert", "sequencing", "numeric"
  • Result (cmi.interactions.n.result), e.g. 'wrong','unanticipated', 'neutral', X.X (CMIDecimal)
  • Time Limit Action (cmi.student_data.time_limit_action) 'exit,no message', 'exit,message', 'continue,message', 'continue,no message'

Here are a few more data types, this time with a short explanation of the purpose ):

cmi.core.student_id Unique alpha-numeric code / identifier that refers to a single user of the LMS system.
cmi.core.lesson_location This corresponds to the SCO exit point passed to the LMS system the last time the student experienced the SCO. This provides one mechanism to let the student return to a SCO at the same place he left it earlier. In other words, this element can identify the student's exit point and that exit point can be used by the SCO as an entry point the next time the student runs the SCO.
cmi.core.score.raw Indication of the performance of the student during his last attempt on the SCO. This score may be determined and calculated in any manner that makes sense to the SCO designer.
cmi.interactions.n.type Indication of which category of interaction is recorded. The type of interaction determines how the interaction response should be interpreted, e.g. "true-false", "choice", "fill-in", etc.

Please read the 40 pages of definitions in the The SCORM Run-Time Environment manual for real information. The examples above are here to give a feeling of CMI Data Model's expressive power.

The Content Aggregation Model and Structure

This model includes three standards:

  • IMS Content Packaging (CP) with 'extensions'.
  • IMS Meta Data (i.e. an older version of the IEEE Learning Object Metadata Standard)
  • Sharable Content Objects (SCOs). These are special kinds of resources used in an IMS content package (CP). The structure of the resource part of the CP is exactly the same as in a "simple" IMS content pack. However SCO's do communicate with the LMS, while an 'asset is a simple content that is just "played".
SCORM Content Aggregation with Assets and SCO, picture taken from a SCORM manual, reproduced without special permission.

According to the The SCORM Content Aggregation Model manual, {{quotation | The purpose of content structure is to provide the content developer with the means to author collections of learning resources into a cohesive unit of instruction, apply structure and associate specific behaviors that can be uniformly reproduced across LMS environments. The content structure can be considered the map used to sequence/navigate through the learning resources defined in the content package. The content structure contains not only the structure of the learning resources, but also all behaviors to be applied to the learning experience.

SCORM extends the simple IMS Content Pack default organisation inclusion not only with SCOs, but also with a subset of additional vocabulary to define learning sequences and that are derived from the Aviation Industry Computer-Based Training Committee (AICC) Computer Managed Instruction.

Roughly, a SCORM Manifest looks like this:

<manifest identifier=\u201dManifest" version="1.1"
  xmlns="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
  xmlns:adlcp="http://www.adlnet.org/xsd/adl_cp_rootv1p1"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.imsproject.org/xsd/imscp_rootv1p1p2
                  imscp_rootv1p1p2.xsd
                  http://www.imsproject.org/xsd/imsmd_rootv1p2
                  ims_md_rootv1p1.xsd
                  http://www.adlnet.org/xsd/adl_cp_rootv1p1
                  adl_cp_rootv1p1.xsd">
 <metadata>
   <schema>ADL SCORM</schema>
   <schemaversion>1.2</schemaversion>
   <imsmd:lom>
      <imsmd:general>
         <imsmd:title>
             <imsmd:langstring xml:lang="en-US">Example Manifest</imsmd:langstring>
         </imsmd:title>
      </imsmd:general>
  </imsmd:lom>
 </metadata>
 <organizations default="TOC1">
    <organization identifier="TOC1" structure="hierarchical">
       <title>default</title>
       <item identifier="ITEM1" identifierref="RESOURCE1" isvisible="true">
          <title>Lesson 1</title>
             <item identifier="ITEM2" identifierref="RESOURCE2" isvisible="true">
             <title>Introduction 1</title>
          </item>
       <item identifier="ITEM3" identifierref="RESOURCE3" isvisible="true">
            <title>Content 1</title>
         </item>
         <item identifier="ITEM4" identifierref="RESOURCE4" isvisible="true">
            <title>Summary 1</title>
         </item>
      </item>
    <item identifier="ITEM5" identifierref="RESOURCE5" isvisible="false">
  ....
  </organization>
 </organizations>
 <resources>
    <resource identifier="RESOURCE1"
       <file href="lesson1.htm"/>
    </resource>
    <resource identifier="RESOURCE2"
       <file href="intro1.htm"/>
    </resource>
 ...
 </resources>
</manifest>

Sequencing and navigation

Sequencing and navigation behavior refers to the rules that an LMS must follow in order to present a specific learning experience. These rules encoded in the organization section of Content Packaging. The main different form the default IMS Content Pack lies in the definition of the item element.

Prerequisite scripting

This article or section is currently under construction

In principle, someone is working on it and there should be a better version in a not so distant future.
If you want to modify this page, please discuss it with the person working on it (see the "history")

Organization items can contain SCORM extensions that define operators of a prerequisite scripting language called aicc_script. These are based on the AICC CMI001 Guidelines for Interoperability.

An example: The following means that in order to access item I3, the learner must pass items I1 and I2.

<item identifier='I0'>
  <item identifier='I1' identifierref='R_I1'>
  <item identifier='I2' identifierref='R_I2'>
  <item identifier='I3' identifierref='R_I3'>
     <adlcp:prerequisites type='aicc_script'>
        I1&I2</adlcp:prerequisites>
  </item>
</item>
Operators

(see page 2-109 of the manual)