SlideShare une entreprise Scribd logo
1  sur  96
In the Eye of the SCORM
 An introduction to SCORM 2004 for Content Developers

                               Claude Ostyn




     For the most recent version of this book, see www.ostyn.com/resources.htm


Update 0.9-8.8– March 2007
In the Eye of the SCORM


Abstract
This book explains SCORM 2004 to content developers. It contains an overview of SCORM, as well as
practical examples. The function and structure of a package manifest are described. Various aspects of
the behavior of a shareable content object (SCO), and in particular how a SCO communicates with a
runtime environment, are explained with working examples. A template for a manifest is provided, and
is used to explain the process of assembling a basic SCORM package. An introduction to sequencing
and navigation is also included.

Copyright
Copyright © 2005, 2006, 2007 Ostyn Consulting. All rights reserved.

License
Unless otherwise expressly stated, all original material of whatever nature created by Claude Ostyn and
included in this document and associated software samples is licensed under the Creative Commons
Attribution-NonCommercial-ShareAlike 2.5 License. To view a copy of this license, visit
http://creativecommons.org/licenses/by-nc-sa/2.5/ or send a letter to Creative Commons, 559 Nathan
Abbott Way, Stanford, California 94305, USA.
Commercial licensing terms are available for implementers who cannot abide by the Attribution or
ShareAlike provisions of the Creative Common License. For additional information or questions
regarding copyright, commercial use, distribution and reproduction, contact:
Ostyn Consulting, PO Box 2362, Kirkland, WA 98083-2362, USA

Representations, Warranties and Disclaimer
OSTYN CONSULTING OFFERS THIS WORK AS-IS AND MAKES NO REPRESENTATIONS OR
WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY
OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE,
MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR
THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF
ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE.

Limitation on Liability
EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL OSTYN
CONSULTING OR CLAUDE OSTYN BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY
SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES
ARISING OUT OF THE USE OF THIS WORK, EVEN IF OSTYN CONSULTING OR CLAUDE
OSTYN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

Trademarks
Any trademarks or service marks used in this document are the property of their respective owners.




                                                   ii
Table of Content
     Abstract.............................................................................................................................................. ii
     Copyright ........................................................................................................................................... ii
     License............................................................................................................................................... ii
     Representations, Warranties and Disclaimer ..................................................................................... ii
     Limitation on Liability....................................................................................................................... ii
     Trademarks ........................................................................................................................................ ii
Chapter 1 - Introduction..............................................................................................................................1
  Who should read this book .....................................................................................................................1
  How to use this book ..............................................................................................................................1
  Acknowledgements ................................................................................................................................1
Chapter 2 - A short history of the SCORM ................................................................................................3
     Precursors of the SCORM ..................................................................................................................3
     Enter the ADL ....................................................................................................................................4
Chapter 3 - Overview of the SCORM ........................................................................................................6
  What SCORM means .............................................................................................................................6
  What the SCORM specifies....................................................................................................................7
     Aggregations of content objects for portability ..................................................................................7
     Launching and tracking of content objects in a package ....................................................................7
     Content aggregation package vs. content resource package ...............................................................8
     Adaptive sequencing behaviors for activities .....................................................................................8
  What the SCORM does not specify........................................................................................................9
     How to design learning content ..........................................................................................................9
     Look and feel ......................................................................................................................................9
     What to do with tracking data.............................................................................................................9
     Granularity of SCOs and other content objects ..................................................................................9
  You do not have to learn all of SCORM to use SCORM .....................................................................10
  SCORM content and objective tracking ...............................................................................................10
Chapter 4 - Anatomy of a SCORM package ............................................................................................11
  Overview ..............................................................................................................................................11
  Directory structure................................................................................................................................11
  Manifest ................................................................................................................................................11
  Metadata ...............................................................................................................................................11
  Organizations........................................................................................................................................12
  Resources..............................................................................................................................................12
  Sequencing rules...................................................................................................................................13
  Sub-manifests .......................................................................................................................................13
  Shared resources ...................................................................................................................................15
  Summary of SCORM package dos and don'ts......................................................................................16
Chapter 5 - Understanding SCOs .............................................................................................................17
  What is a SCO?.....................................................................................................................................17
  What a SCO does..................................................................................................................................18
  Communicating with the runtime environment ....................................................................................19
     The IEEE communication API .........................................................................................................19
     Managing the communication session..............................................................................................19
  The communication data models ..........................................................................................................21
     The CMI data model.........................................................................................................................21
     The ADL navigation data model ......................................................................................................22
     Working with the SCORM data models ...........................................................................................22
  SCO dos and don'ts...............................................................................................................................24
Chapter 6 - SCORM Sequencing..............................................................................................................25
  Introduction to sequencing ...................................................................................................................25


                                                                             iii
In the Eye of the SCORM

    Sequencing is optional......................................................................................................................25
    How do you specify sequencing? .....................................................................................................25
  What you can do with sequencing........................................................................................................26
    Mapping objectives and competencies .............................................................................................27
    Mixing strategies in the activity hierarchy .......................................................................................27
  Cautions and warnings..........................................................................................................................27
  Simple sequencing templates................................................................................................................28
Chapter 7 - The Navigation data model....................................................................................................29
  History of the navigation data model....................................................................................................29
  How the data model works with sequencing ........................................................................................29
Chapter 8 - Practical SCO construction....................................................................................................30
  A minimal generic, reusable SCO script ..............................................................................................31
  A very simple SCO using the generic script.........................................................................................32
    Scripting for the unexpected.............................................................................................................32
  Sending data to the runtime environment .............................................................................................33
  Getting data from the runtime environment .........................................................................................34
  A more complete reusable SCO script..................................................................................................35
  Sending basic tracking data to the runtime environment......................................................................38
  Relating score and success status .........................................................................................................40
  Maintaining state across multiple pages ...............................................................................................41
  Multi-page SCO using the generic script..............................................................................................42
  When to use Commit ............................................................................................................................44
  Using suspend and resume data............................................................................................................45
  Reporting interaction data.....................................................................................................................47
    Walking the array of interaction records ..........................................................................................47
  Working with objective data.................................................................................................................52
    Walking the array of objective records.............................................................................................52
  Turning a passive asset into a SCO ......................................................................................................56
  Closing the window when the SCO finishes ........................................................................................57
  Using Flash to make a SCO..................................................................................................................59
Chapter 9 - Practical package assembly ...................................................................................................60
  Workflow..............................................................................................................................................60
  Some manifest elements are optional ...................................................................................................61
  Sample manifest ...................................................................................................................................62
  A reusable manifest template................................................................................................................65
  Validating your package .......................................................................................................................68
  Adding metadata...................................................................................................................................68
  Sample metadata file ............................................................................................................................70
  Special SCORM packaging issues........................................................................................................71
    Shareable resources ..........................................................................................................................71
    Server-dependent content .................................................................................................................73
    The cross-server delivery issue.........................................................................................................73
  Overview of the generic SCO script.....................................................................................................77
  Generic SCO script features and functions...........................................................................................77
    Automatic API session initialization and termination ......................................................................77
    Automatic calls to your custom initialization and cleanup functions ...............................................78
    Helper functions in the reusable script .............................................................................................79
    Controllable automated features in the reusable script .....................................................................86
Index .........................................................................................................................................................92




                                                                               iv
Chapter 1 - Introduction

Who should read this book
This book is intended for content developers, for    provide a complete reference or to replace the
developers of authoring tools for SCORM              SCORM specifications.
content, and for anyone who has to manage or
                                                     If your interest is not technical, you can stop
deal with SCORM content. It assumes no prior
                                                     reading before reaching the final chapters, which
knowledge of SCORM, but it assumes that the
                                                     include some detailed technical examples to
reader has some basic understanding of things
                                                     illustrate various SCORM concepts.
like file and directory structures, and of how web
                                                     Specialized terms and acronyms are unavoidable.
content is delivered.
                                                     The glossary on page 91 may be useful if you
This book is intended to provide conceptual
                                                     encounter a mysterious term or acronym.
overviews and examples. It is not intended to

How to use this book
This book contains both conceptual overviews          SCORM 2004 documents or otherwise keep
and technical overviews. The technical                them available for reference when reading this
examples are, by their very nature, written           book. Each SCORM book begins with a useful
using programming languages that are not              conceptual introduction. In various places, this
really fit for normal human beings, but I tried to    book will paraphrase what is in the ADL
make them understandable even for people with         documents. This is by design. Often, viewing
only a passing acquaintance with JavaScript           the same dense information from different
and XML.                                              angles can make it easier to understand.
If you want to use this book for a SCORM              If you want to try the provided examples, you
project, or if it seems hard to understand,           do not need an authoring tool. All you need is a
recommend that you print out the ADL                  text editor like Notepad.

Acknowledgements
This document would not exist without the             technology. Special thanks to Steve Alessi,
relentless truth seekers, implementers, critics       Corrie Bergeron, Bill Blackmon, Jennifer
and the quot;usual suspectsquot; who have been raising        Brooks, Judy Brown, Andrew Chemey, Philip
all kinds of questions about learning objects,        Dodds, Erik Duval, Dexter Fletcher, Jason
interoperability, content packaging, metadata         Haag, Wayne Hodgins, Peter Hope, Jack Hyde,
and related matters over the last few years. It       Tom King, John Kleeman, M. David Merrill,
would also not exist without the diligence of the     Boyd Nielsen, Angelo Panar, Nina Deibler,
ADL and the SCORM technical team and                  Frank Polster, Tom Reeves, Daniel Rehak, Jeff
technical working group for providing a               Rhodes, Tyde Richards, Eric Roberts, Robby
workable specification that finally allows            Robson, Eric Rosen, Harvey Singh, Roger St-
content to interoperate reliably so we can all        Pierre, Schawn Thropp, Stanley Trollip, Jeff
focus on more interesting things, like                Webb, Eamonn Webster, Ian Wright.
performance and the human side of learning
                                                          ...as becomes the ignorant, I must learn
processes. Humble thanks also to all those who
                                                          from the wise...
generously shared their research and wisdom
                                                                               Plato, The Republic
about why and how we learn, with or without
In the Eye of the SCORM




                          2
Chapter 2 - A short history of the SCORM
                                                     various content libraries. Enterprises and
The basic problem
                                                     agencies using the learning management systems
For many years, one of the major problems with       and the content win because instead of wasting
e-learning has been the creation and deployment      money and time on integration of different
of quality e-learning content. E-learning content    libraries of content, they can easily mix off the
is actually software. Its development has            shelf content with their own custom content
typically been subject to the same issues as other   using the same delivery environment.
software projects. In other words, e-learning
content is expensive and time-consuming to
                                                     Precursors of the SCORM
develop.
To deliver and especially track results from the     AICC
use of the content, it typically had to be custom    A long time ago, when the delivery
programmed to work in a specific delivery            environments were still mostly DOS machines
environment. Different learning management           and Windows was still vaporware, the Aviation
systems had very different delivery                  Industry Computer-Based Training Committee
environments. If an enterprise wanted to upgrade     (AICC) published guidelines and
a learning management system or change               recommendations for interoperable content. The
vendors, often that meant abandoning very            AICC has since been updating these
expensive content and starting over. If a content    specifications to work in a web based
vendor wanted to distribute content widely, it       environment, sometimes with mixed results
was very expensive. A completely different           because of an ongoing concern for legacy
version was often required to accommodate each       content and systems. The AICC specifications
different learning management system. Big            did not provide a way to guarantee cataloguing
content vendors, on the other hand, specified        metadata, or a robust way to package the content
their own delivery environment and forced each       to make it portable. However, good lessons were
learning management system to implement              learned from those early efforts and
different delivery modules for each large content    contributions.
vendor.
                                                     IMS Global Learning Consortium
As learning requirements changed and
                                                     New useful specifications have emerged from
overlapped within enterprises and government
                                                     other communities of practice, such as the
agencies, the importance of reusable content
                                                     Content Packaging specification and Content
modules became apparent. In education as well,
                                                     object Metadata profile from the IMS Global
the usefulness of content objects or quot;content
                                                     Learning Consortium.
nuggetsquot; to support all kinds of learning
activities was demonstrated by various projects.
                                                     IEEE
There has thus been a strong market incentive for
                                                     An accredited international standards
content that is durable, portable between systems
                                                     organization, the IEEE has been busy turning
and reusable in a modular fashion. In other
                                                     specifications into high quality standards. The
words, content that is interoperable.
                                                     standards initiatives often cooperate. For
With interoperable content, content developers       example, the IMS metadata specification was
                                                     based on an early draft of the IEEE metadata
win because the same content can work in more
different systems without modification. LMS          standard, and other IEEE standards incorporate
                                                     some of the functionality first contributed by the
vendors win because they can focus on the
management aspects of learning, without having       AICC.
to constantly adapt the delivery environment to
In the Eye of the SCORM

                                                          SCORM 1.2 proved that content can be made
Enter the ADL
                                                          portable and interoperable. For example, one
Several years ago, the White House Office of
                                                          leading LMS vendor has seen the cost and time
Technology, the Department of Defense and the
                                                          of new content integration with their SCORM
Department of Labor launched the Advanced
                                                          conformant drop to almost nothing when the
Distributed Learning Initiative (ADL) in the
                                                          content was verifiably SCORM conformant. Any
United States. Industry and education partners,
                                                          remaining issue was a result of not conforming
as well as various entities in other countries also
                                                          to SCORM, or the result of a misinterpretation of
joined the effort. One of the first ADL projects
                                                          a SCORM feature that was still not quite pinned
was for a practical profile of existing
                                                          down completely.
specifications and standards for content. A
profile is a document that specifies a particular         The current version: SCORM 2004
interpretation of a standard or specification. In
                                                          SCORM 2004 improves significantly on
the process, some gaps had to be filled in, and
                                                          SCORM 1.2, by eliminating even more
the end result was a set of quot;booksquot;, each
                                                          ambiguities in the specification, and by making
describing a different aspect of the solution. The
                                                          SCORM conformant with robust IEEE
result was called the Shareable Content Object
                                                          standards. The API now supports the wide range
Reference Model, or SCORM.
                                                          of human languages supported by ECMAScript.
The SCORM was born to take the best from the              Besides improving on SCORM 1.2, SCORM
early efforts, specifications and standards, and          2004 also adds optional features for sequencing
achieve the goals of durability, portability,             and navigation.
reusability, interoperability and accessibility for
                                                          The addition of sequencing is a major functional
content.
                                                          milestone. SCORM 1.2 was all about making
Many people from the e-learning industry were             content portable, but left it to the learner to
involved in the genesis of the SCORM, along               choose which part of the content to run. SCORM
with the technical team funded by ADL. Each               2004 adds the ability to deliver activity-centered
release of the SCORM has been tested in                   content packages that support guided or adaptive
quot;Plugfestquot; events. A Plugfest is a meeting where          sequencing behavior.
competing vendors and developers get together
                                                          Compatibility between versions
to verify that their content and implementations
interoperate as expected, and to iron out                 Many content Learning Management System
problems in a cooperative atmosphere. Plugfest            vendors will probably continue to support
events have attracted a very wide international           SCORM 1.2 content for a long time, along with
participation, which is a clear indication of the         SCORM 2004.
impact and adoption of the SCORM well beyond
                                                          Tools are available or can be built relatively
its North American origins.
                                                          easily to convert SCORM 1.2 content packages
                                                          to SCORM 2004.
SCORM 1.1
The first release of the SCORM was a trial                It is possible to launch unmodified SCORM 1.2
balloon, intended to discover unresolved issues.          content objects in a SCORM 2004 environment
Test bed implementations revealed that SCORM              by using a quot;wrapperquot; provided by the ADL.
1.1 was less than fully functional, and
                                                          It is also possible to launch SCORM 2004
interoperability was still mostly hit and miss.
                                                          content objects in a SCORM 1.2 environment
The lessons from SCORM 1.1 were put to good
                                                          through such a quot;wrapperquot;. However, in that case,
use in the subsequent releases.
                                                          and depending on the content, some tracking or
                                                          session data may be lost because SCORM 1.2
SCORM 1.2
                                                          does not support the full IEEE data model used
The first quot;realquot; release of the SCORM was                 by SCORM 2004. Obviously, SCORM 1.2
SCORM 1.2. This was the first version for which           environments do not support SCORM 2004
a test suite was available, and thus the first
                                                          sequencing.
version for which conformance could be verified.


                                                      4
Chapter 2 - A short history of the SCORM

Another approach is to create content objects that       Although AICC has a long term plan to conform
can work in either SCORM 1.2 or SCORM                    to the same IEEE standards as SCORM, most
2004, with graceful degradation if the                   current AICC content is not SCORM
environment is SCORM 1.2. This approach is of            conformant. For one thing, the AICC Guidelines
course more expensive.                                   and Recommendations do not include a
                                                         packaging specification that supports the
This book focuses on SCORM 2004 because this
                                                         inventory of all components of a package, as
is the current version. There is little point in
                                                         provided by the IMS content packaging
fighting the old battles of SCORM 1.2 in new
                                                         manifest. Also, most AICC compliant content
implementations.
                                                         uses an older, non-standard AICC defined
                                                         communication protocol (called HACP by
Compatibility with other specifications
                                                         AICC), which is not compatible with the IEEE
Since SCORM is defines profile of IEEE                   standard used by SCORM. Unlike SCORM, the
standards and IMS specifications, SCORM                  AICC's HACP protocol is not compatible with
content packages conform to those standards or           offline delivery of content, because it requires an
specifications. However, packages that comply            active web server component. However, some
with those standards or specifications are not           newer AICC content that uses the so-called
necessarily SCORM compliant. For example, an             quot;JavaScriptquot; protocol can often be adapted and
IMS compliant package that does not include the          repackaged to work in a SCORM delivery
SCORM extension elements in its manifest is not          environment.
SCORM conformant.




                                                     5
Chapter 3 - Overview of the SCORM

What SCORM means
SCORM is an acronym for Shareable Content             some standard cataloguing data be associated
Object Reference Model.                               with the content.
                                                    The SCORM also defines minimum
The SCORM specifies a framework for content
                                                    conformance requirements for systems that can
that meets the following requirements for e-
                                                    deliver such content to a learner.
learning content:
                                                    The SCORM consists of several quot;booksquot;, each
• Durability – Content should last long enough
                                                    of which specifies some technical aspects of
  to amortize its cost, and be usable as long as
                                                    shareable content. Some software is provided
  it is relevant.
                                                    along with the books to verify conformance and
• Portability – It should be possible to move the   to allow demonstrations of some of the
  content easily from one delivery environment      SCORM functionality.
  to another. The same content should work
                                                    SCORM conformance does not automatically
  without modification in different delivery
                                                    mean you have a usable system. It would be
  environments, as long as the delivery
                                                    like saying that fuel makes a transportation
  environment includes a web browser.
                                                    system. But SCORM conformance is a
• Reusability – It should be possible to build
                                                    powerful enabler. It was designed to work
  the content in small, reusable modules that
                                                    behind the scenes, unseen by users. The real
  can be recombined in different ways.
                                                    payoff of SCORM is in the applications it
  Different communities of practice should be
                                                    enables, and removing some of the major cost
  able to share reusable content.
                                                    and time barriers to content integration in
• Interoperability – The same content should        learning management systems or performance
  work the same way when it is deployed in          support systems.
  different environments.
• Accessibility – It must be possible to find the
  content in a repository. This requires that
Chapter 2 - A short history of the SCORM


What the SCORM specifies
                                                        through a standard web browser with JavaScript
Aggregations of content objects                         enabled.
for portability
                                                        The runtime environment is completely
                                                        independent of the content. However, some
                                                        parts of it must be constructed in a particular
                                                        way so that some of the content objects will be
                                                        able to exchange data with the runtime
                                                        environment. Typically, the runtime
                                                        environment is split across a network
                                                        connection, with parts of it on a server and part
                                                        of it running in the user's browser.

                                                          LMS
                                                                                         Package
           Figure 1 - SCORM Package                                                     repository
                                                                Runtime                   and/or
The SCORM specifies how reusable web-based                    environment                package
content objects can be aggregated into a                      Server side               generator
portable package that includes a manifest to
form a larger self-contained content object.
                                                                              Network
A SCORM manifest provides a detailed
description of the content of the SCORM
package, as well as some prescriptions for the                                Browser
use of the package. The prescription typically           Runtime environment - Client side
specifies activities and sub-activities that use
                                                                Frameset provided by RTE
the content objects in the package. The manifest
                                                               RTE User interface, navigation UI
also includes descriptive metadata. It is
conceptually similar to the shipping manifest                                       Stage frame
                                                            Launch, session
used when one ships physical goods in one or                 management,
                                                              cache, etc.
more boxes.                                                                     R
                                                                                        SCO
A SCORM package can exist as a persistent                        API
package, which is never modified after                          object
publication, or it can be assembled and
customized on the fly by an automated system
for a particular individual. The SCORM does
not specify the process by which a package is              Figure 2 – SCORM Runtime environment
aggregated, but it specifies the result of such a
                                                        The content objects that can exchange data with
process.
                                                        a SCORM conformant runtime environment are
                                                        called Shareable Content Objects (SCOs). The
Launching and tracking of                               runtime environment launches the SCOs one at
content objects in a package                            a time, according to a particular activity
                                                        prescription included in the package. Unless the
A runtime environment (RTE) must be used to
                                                        activity prescription forbids it, the user can also
launch the individual content objects in a
                                                        navigate from SCO to SCO through controls
SCORM conformant package. The runtime
                                                        provided in the runtime environment's user
environment is typically provided by a LMS, a
                                                        interface.
performance support system, or a competency
management system. The learner interacts with
                                                        The SCORM specifies in detail how a SCO
the runtime environment and the web content             must behave within the runtime environment:

                                                    7
In the Eye of the SCORM

                                                       Content aggregation package
The SCO must establish a communication
session with the runtime environment, and there        The most common kind of package is intended
is a standard set of data elements that the SCO        for delivery to a learner. In this kind of
can use during the communication session. This         package, a special section of the manifest
includes tracking data that allows the SCO to          describes how the content objects are organized
report success and progress, as well as other          for delivery. This prescription takes the form of
information about the status of content                a manifest element named organization. An
objectives, results of interactions, and so on.        organization element defines a tree of activities
                                                       and sub-activities that use the content objects.
Offline content delivery
The SCORM does not specify that a web server           This is the kind of package this book will focus
is required. It only specifies that the runtime        on.
environment must be able to launch the SCOs            Content resource package
in a web browser, and that a SCO must be able
                                                       Another kind of SCORM package does not
to find an API object in another browser
                                                       include any organization information. It is not
window that is related to the launch window in
                                                       intended for delivery to a learner. Rather, it is
a particular way. The SCO may actually come
                                                       used to move amorphous collections of content
from a remote server, from a local server or
                                                       objects from one system to another, or to
from the local file system. For example, it is
                                                       archive a collection of content objects.
possible to deliver the same SCORM
conformant content on a CD-ROM or through a            This book does not describe that kind of
web based learning management system. Of               package, because no interesting behavior can be
course, offline delivery through a CD-ROM              associated with it.
would require the installation of an appropriate
player on the delivery system if it is necessary       Adaptive sequencing behaviors
to track SCORM data in a persistent way. For
                                                       for activities
example, an offline SCORM player might be a
                                                       By default, there is no sequencing information
native Windows application that uses the
                                                       associated with the activity tree. In that case, a
Internet Explorer object built into Windows to
                                                       runtime environment must show all the
display the SCOs, and that can synchronize data
                                                       activities and let the learner choose what to do.
with a LMS when a connection is available.
                                                       However, the creator of a package may add
Content aggregation package vs.                        sequencing rules to the activity tree to prescribe
                                                       guided flows through the content, adaptive
content resource package
                                                       sequencing and other navigation options. The
The SCORM defines two kinds of packages.
                                                       SCORM specifies how to add and implement
                                                       those rules. It also specifies how the tracking
                                                       data reported by content objects when they are
                                                       used can affect adaptive sequencing.



   Figure 3 - Two kinds of SCORM packages




                                                   8
Chapter 2 - A short history of the SCORM


What the SCORM does not specify

                                                        Granularity of SCOs and other
How to design learning content
                                                        content objects
The SCORM is neutral when it comes to
                                                        The SCORM does not specify a particular
pedagogy. Many of the readily available
                                                        granularity, size or duration for SCOs and other
SCORM examples have been based on very
                                                        content objects. One SCO can be arbitrarily
traditional programmed instruction models.
                                                        large and take several days to get through,
This is due more to a failure of imagination
                                                        while another SCO could be a single item in a
than to intrinsic constraints or prescriptions of
                                                        test.
the SCORM.
                                                        Some communities of practice are fixated on
Look and feel                                           specific levels of granularity. Others allow total
                                                        flexibility. For example, a policy might specify
The SCORM does not specify what content
                                                        that each SCO should correspond to an enabling
should look like, what a runtime environment
                                                        content objective in a particular training model.
looks like, and in particular what the user
                                                        However, the SCORM makes no such
interface for navigation between SCOs looks
                                                        assumption. Interoperability with content from
like. It does however assume that certain
                                                        different sources may be compromised if the
navigation facilities will be available.
                                                        granularity policies are too rigid.
What to do with tracking data
The SCORM does not specify how a LMS uses
and reports tracking data collected while
running SCORM content.




                                                    9
In the Eye of the SCORM


You do not have to learn all of SCORM to use SCORM
A SCORM content developer should not be                    make the content lightweight and delegate the
concerned about how the runtime environment                heavy lifting to the shared environments.
is built. The LMS vendor or developer will
                                                           For example, the runtime environment must
provide the runtime environment. The SCORM
                                                           exchange data with the LMS across the network
was designed to put most of the complexity
                                                           or the Internet, which requires complicated
burden on the runtime environment. This means
                                                           protocols, careful timing, and advanced error
that there are few requirements on the content.
                                                           management. On the other hand, all a SCO has
The assumption is that there will be many more
                                                           to do is make simple JavaScript calls to the
pieces of content than there will be runtime
                                                           runtime environment to get or send data.
environments. Therefore it makes sense to


SCORM content and objective tracking
SCORM 2004 enables tracking of status for                  The identifiers for objectives specified in
learning objectives associated with the content,           SCORM compliant content could match the
using globally unique identifiers. A LMS may               identifiers of such competency definitions. This
use this data according to policies that are               would in turn allow the LMS to record the
outside the scope of the SCORM. For example,               success of a particular learner in mastering the
this data could be used for various learning               objective described by a particular reusable
management purposes, possibly in connection                competency definition. This information could
with reusable competency definitions. The IMS              then be used again later if the learner attempts
RDCEO (Reusable Definition of Competency                   another learning activity that involves the same
or Educational Objective) specification                    objective, to provide a personalized learning
describes how to create reusable competency                experience.
definitions. This specification is the base for the
                                                           SCORM 2004 sequencing can also use the
IEEE P1484.20 Reusable Competency
                                                           objective status information to control
Definitions standard project.
                                                           sequencing rules. This means that a LMS could
Basically, a reusable competency definition                preset the status information for objectives
describes the part of competency data that can             referenced in SCORM sequencing rules, based
be reused for more than one learner and more               on prior experience of the learner, to
than one context. This can just be a summary               personalize the sequencing. For example, a
title, for example, quot;knows how to tie a                    learner might be allowed to skip topics already
shoelacequot;, or it may be a very detailed                    mastered in a completely different course. Note
specification for a skill, knowledge or ability, or        that the setting and use of objective status
for a learning objective that corresponds to a             information is not currently defined in the
skill or specific knowledge. Whatever the                  SCORM beyond the scope of what happens
content of a reusable definition is, its unique            during the delivery of SCORM packages.
identifier can be used to reference it. For                Therefore whether and how it is implemented
example, metadata for a learning object can                will vary from LMS to LMS. This is however
include the identifier of a reusable competency            an exciting potential opportunity that leverages
definition that describes the intended learning            the standard features of the SCORM.
outcome for the learning object.




                                                      10
Chapter 4 - Anatomy of a SCORM package

Overview
A SCORM package is basically a collection of         Where in the SCORM?
files, with a manifest that describes how the
                                                     The SCORM Content Aggregation Model (CAM)
files fit together and how to deliver them, and      document defines the components of a SCORM
with metadata that can be used to describe the       package. The SCORM Conformance Requirements
package in a catalog.                                document specifies in detail how to verify that a
                                                     package is conformant.


Directory structure
The files in a SCORM packages must all be in a       the directory structure of the original package.
directory structure under a single root directory.   However, the root may be anywhere within a
Nothing prevents a content developer from            physical or virtual file system. This means, of
putting all the files in the same directory.         course, that any links to other files within the
Otherwise, the directory structure may be            package must be relative. For example, a link
arbitrarily deep, and it can be constructed in any   like <img src=quot;/pictures/img1.gifquot;> in
way a content developer desires.                     a web page will not work, because the root
                                                     directory for the package will almost certainly
When the content is deployed for delivery on a
                                                     not be the root of the web site's virtual path
web site, the files are placed in a physical or
                                                     structure.
virtual directory structure that exactly mirrors

Manifest
The manifest is a file that resides in the root      The name of the manifest file is always
directory of the package's directory structure.      “imsmanifest.xml”.
The manifest is an XML file that contains
metadata about the package, organization
structures that describe the structure of the
content, and an inventory of the content
resources in the package.
To allow verification that the manifest file is
valid according to the schemas defined by
SCORM, copies of the standard XML schema
files must also be included in the root directory
of the package. These copies may not be
modified.

Metadata
The first element inside a SCORM manifest is         The manifest metadata element includes
named quot;metadataquot;. Metadata means quot;data about         metadata that identify the manifest as a content
dataquot; – in this case data about the manifest         packaging manifest built to conform for
itself and about the package.                        SCORM 2004. It should also include
In the Eye of the SCORM

descriptive and administrative metadata                    In order to enable systematic cataloguing and
according that conform to the IEEE Standard                discovery of SCORM packages, the SCORM
1484.12.1 for Content object Metadata.                     requires that some specific metadata elements
                                                           be provided, such as title, rights, and so on.
For convenience, the SCORM allows the IEEE
                                                           These elements are specified and described in
conformant metadata to be provided as a
                                                           detail the SCORM Content Aggregation Model
separate XML file rather than included in the
                                                           book.
manifest itself. In that case, the metadata
element contains a reference to that other file            Sometimes, it is desirable to document some
rather than the actual metadata.                           aspects of various components of the package.
                                                           To allow this, metadata can also be included
When a package is imported into a LMS or
                                                           with many of the other elements in an XML
other repository, some cataloguing information
                                                           manifest. This is however strictly optional, and
must be provided to find the package in the
                                                           one should weigh the advantages of fully
repository. This can be automated for a
                                                           documenting every part of the manifest with
SCORM compliant package. The importing
                                                           metadata against the resulting file size.
system can inspect the manifest and mine the
metadata for the needed cataloguing
information.

Organizations
The manifest in a package intended for delivery            table of content. The title may also be used in
must contain some prescriptive information as              other places, like reports that show the status of
to how to deliver the content of the package for           the activity.
active use by a user. At a minimum, a user must
                                                           Each activity in the tree is either the quot;parent
be able to browse the content, and this normally
                                                           activityquot; in a cluster of sub-activities, or a leaf
requires some information about how the
                                                           activity with no children.
content objects in the package are organized.
                                                           Leaf activities reference a content object which
The manifest must contain at least one
                                                           is used when the activity is started. When the
organization element. The organization contains
                                                           package is delivered to a user and the user
one or more activities that can be nested to any
                                                           chooses to quot;runquot; a leaf activity, the
depth as sub-activities. This tree of activities
                                                           corresponding content object is launched. A
represents the structure of the content, as the
                                                           leaf activity may reference only a single content
package author intends it to be delivered.
                                                           object. Some parameters to be passed to the
Each activity has a title. The title will typically        content object can also be specified for the
be used if the package structure is shown in a             activity.

Resources
A manifest contains a list of resource elements.           The URL specifies which one to launch, and
Each resource element describes a content                  may also contain some launch parameters.
object. Typically, a resource element contains a
                                                           A quot;non-launchablequot; resource is just a container
list of one or more files required to deliver the
                                                           for a list of shared files used by one or more
resource. A SCO is always represented by such
                                                           other resources. Since it will never be launched,
a resource element.
                                                           it has no URL attribute. The leaf activities in an
Resources are either quot;launchablequot; or not. A                organization may only reference launchable
launchable resource has an attribute named                 resources.
quot;hrefquot; whose value is a URL. This URL is
                                                           The SCORM defines are two types of
used to launch the content object. For example,
                                                           launchable resources: SCO or asset. A SCO is
a resource may contain several HTML files.
                                                           a content object that will use the SCORM API


                                                      12
Chapter 4 - Anatomy of a SCORM package

to interact with the runtime environment when              Different activities that reference the same SCO
it is launched and while it is running. An asset           may have different parameters that will be
is a content object that will not use the SCORM            passed to the SCO when it is launched on
API but that can still be used for an activity. For        behalf of those items. For example, one activity
example, it might be a text document or an                 might use a SCO, telling it to use one level of
image.                                                     difficulty, while another activity might use the
                                                           same SCO, but specify a different level of
A resource is launched when an activity that
                                                           difficulty.
references that resource is started. Multiple
activities can reference the same resource.

Sequencing rules
The author of a package may add sequencing                 by a check on learning. These different
rules to the activity organization. This is                behaviors within the same lesson can be
entirely optional. If no rules are specified, there        implemented as sub-activities within the lesson,
is a default sequencing behavior, which is that            and each of those sub-activities may in turn
the user gets to choose any activity at will.              specify whether and how to sequence its sub-
                                                           activities. Sequencing will be described in more
If sequencing rules are defined, the package
                                                           detail in a later chapter.
should only be delivered in a runtime
environment that supports SCORM sequencing                 Where in the SCORM?
and navigation. If no sequencing rules are
                                                           The SCORM Content Aggregation Model (CAM)
defined, the package can be delivered as                   document only specifies how the resources are
intended in any runtime environment that does              aggregated with one or more activity trees.
not implement SCORM sequencing and
                                                           The SCORM Runtime Environment (RTE)
navigation, but that allows the user to choose
                                                           document defines how a content object is launched,
any activity at will.
                                                           and how it can communicate tracking data to the
                                                           runtime environment.
When a SCO is launched, it typically provides
tracking data. The tracking data can in turn               The SCORM Sequencing and Navigation (SN)
influence the result of sequencing rules. For              document defines which sequencing rules can be
example, a passing score for a SCO may result              added, and the behaviors that should occur at
in skipping some other activity.                           runtime when sequencing rules exist in the package.
The rules are associated with individual                   The SCORM Conformance Requirements document
                                                           spells out in detail how to conform to the
activities, at any level of the activity tree.
                                                           specifications defined in the other documents.
Sometimes, a quot;cluster activityquot; is created just
for the purpose of defining sequencing rules for           Errata documents are published occasionally
a part of the content. For example, a lesson may           between updates of the main SCORM documents.
contain a fixed sequence, followed by an
exploration phase in which the learner may
choose between a variety of activities, followed

Sub-manifests
                                                           Sometimes a package can become so complex
There are currently some serious open issues
                                                           that it is useful to break the manifest into
regarding sub-manifests, and the ADL
                                                           smaller parts. Or sometimes it is necessary to
Technical Working Group decided in August
                                                           aggregate several packages into a larger
2005 that use of sub-manifests should be
                                                           package, but it is not practical to analyze all the
avoided until those issues are resolved by the
                                                           components of each package to create the
ADL technical team. In the meantime, this brief
                                                           optimal manifest. In other cases, a chunk of
introduction may be helpful since you will
                                                           activity tree may be reused in more than one
encounter the topic of sub-manifests when you
read the specification documents.

                                                      13
In the Eye of the SCORM

place in a larger activity tree. This is where sub-        has its own metadata, at least one organization,
manifests come in handy.                                   and a collection of resources.
A sub manifest is basically a manifest included            Instead of referencing a resource, an activity
in another package manifest. It describes a                may reference a sub-manifest. The activity tree
quot;package within a packagequot;. Each sub-manifest              is then extended into the activity tree defined by
                                                           the default organization in the sub-manifest.




                                                      14
Chapter 4 - Anatomy of a SCORM package


Shared resources
Sharing resources within a package                      directory structure. The SCORM also does not
                                                        address the unavoidable security and version
The content package manifest model provides
                                                        control issues that may arise with content assets
an efficient way to share content resources
                                                        shared between packages that may be installed
within the same package. For example, the
                                                        at different times and come from different
same script or graphic may be used by several
                                                        sources. For example, a change to a shared
content objects described by manifest
                                                        script may break some dependent packages
resources.
                                                        unless validation and testing processes and
                                                        policies are in place; this is far beyond the
Sharing resources between packages
                                                        scope of SCORM at this time.
However, at present the SCORM does not
support sharing of resources between packages.          A first step in the direction of addressing this
For example, it is sometimes desirable to use           issue is the ADL CORDRA project, which
the same script file or company logo file by            defines an architecture that uses a system of
reference in all the packages produced by a             abstract handles to identify objects registered in
particular publisher. There is at present no            repositories. A side benefit of this project is that
interoperable way to share such a file between          it will allow the use of handles instead of URLs
packages, because the SCORM does not specify            in content asset references. When a resolution
how repositories should function. In particular,        mechanism is provided, the handle can be
the SCORM does not specify where the files for          dynamically translated to the URL to use to
a content package should be installed in a              access the asset. For example, in an offline or
repository. For example, a repository may               firewall protection scenario the handle might be
typically use a physical or virtual directory           translated to a URL into a local repository,
structure and security policies that make it            while in other scenario the handle is translated
illegal for content in a package to access              to the URL for the closest Internet location of
anything outside the scope of the package's own         the content asset, wherever this may be.




                                                   15
In the Eye of the SCORM


Summary of SCORM package dos and don'ts
What a SCORM package must contain                         What a content package manifest may not
                                                          contain
• A manifest that inventories the content of the
                                                          • References to anything in a directory quot;abovequot;
  package and specifies how the content is
                                                            the root directory structure of the content of
  organized.
                                                            the package.
• Metadata, if not included inline in the
  manifest.
                                                          What the files in a content package are not
• All the files required to launch the content of         allowed to contain
  the package.                                            • References to anything in a directory quot;abovequot;
                                                            the root directory structure of the content of
What a content package manifest must
                                                            the package.
contain
                                                          • Downloadable runtime components for which
• Metadata describing the package.
                                                            an installation that requires administrative
• At least one organization element that                    rights is required.
  specified an activity tree for the use of the
  content of the package.                                 What a content package manifest should not
                                                          contain
• A collection of one or more resource
  elements that specify launchable content                • References to a file or other asset identified
  objects. Each resource contains an inventory              by a fully qualified URL (domain + path),
  of the files in the package that are required to          since there is no guarantee that such a file or
  launch and run the resource.                              resource will be available at the time of
                                                            package delivery.
What a content package manifest may also
                                                          • References to a file or resource that requires
contain
                                                            an active web server component, such as .asp,
• Resource elements that specify additional                 .jsp or .php web pages, since there is no
  resources files shared by one or more other               guarantee that the corresponding active server
  resource elements                                         component will be available on the web
• Additional metadata for any component that                server or file system used to deliver the
  is intended to be extracted from the package              content package.
  for use separately from this package or
                                                          What the files in content package manifest
  inclusion in another package.
                                                          should not contain
• Sub-manifests representing sub-packages
                                                          • References to a file or resource identified by
  embedded in the package
                                                            a fully qualified URL (domain + path).
• Sequencing rules and information specified
                                                          • References to a file or resource that requires
  for the activity tree represented by an
                                                            an active web server component, such as .asp,
  organization element.
                                                            .jsp or .php web pages.
What a content package manifest may not                   Packages that depend on external content or an
contain                                                   external server are, by definition, brittle. They will
                                                          not work in an offline environment or behind some
• References to anything in a directory quot;abovequot;
                                                          strictly configured firewalls. See also the note about
  the root directory structure of the content of
                                                          server-dependent SCOs on the next page.
  the package.
                                                          .




                                                     16
Chapter 5 - Understanding SCOs

What is a SCO?
A Shareable Content Object, or SCO, is a               that environment, like help or collaboration
special kind of content object that knows how          features.
to communicate with the runtime environment
                                                       Context is king, the SCO is only content
in which it is launched.
                                                       In the SCORM, the context rules and SCOs are
A SCO is web content, meaning that it can be
                                                       used at will. In other words, the runtime
launched in a web browser by using a URL. It
                                                       environment decides whether and how to
may consist of a single HTML page, or it may
                                                       launch a SCO, and SCOs have no say in the
be a large collection of web pages and include
                                                       matter. What drives the learning environment is
simulations, Flash assets, or other media rich
                                                       typically a larger instructional or performance
content. A SCO is basically a small portable
                                                       support context. This may require some
web site that can be copied from place to place
                                                       conceptual adjustment for some content
by gathering all its files and capturing them in a
                                                       designers who are not used to build highly
SCORM package. To be portable, a SCO must
                                                       modular content that is driven by a single
be compatible with any generic web server. In
                                                       unified design. The SCORM was designed to
other words, it cannot depend on special
                                                       favor the requirements of the new paradigms
services that might exist on one web server but
                                                       for advanced learning, in which the context is
not on another.
                                                       what matters, and content is only a tool used in
There has been some talk about SCOs that would         learning activities.
not be fully portable. For example, some forms of
learning experience, dynamic content or simulations    How reusable are SCOs?
may require specific advanced server functionality
                                                       In practice, SCOs are more or less reusable,
that goes beyond what a generic web server
                                                       depending on the design of the SCO. Some
provides. However, there is currently no standard
                                                       SCOs are designed to be usable in any context.
that specifies how to package, transport and install
                                                       Others make sense only in a particular context.
such content across servers or technology platforms.
                                                       Not all SCOs can be aggregated into arbitrary
Therefore, such server-dependent SCOs are not
                                                       packages, and some SCOs separated from a
SCORM conformant today. SCORM content should
                                                       package that provides their context may not be
be compatible with any web server, and also run in
                                                       useful. In any case, however, all SCOs use the
an offline environment without requiring the
                                                       same interface and launch method and can thus
installation and configuration of a web server.
                                                       be shared without modification among learning
The SCO must be designed so that it can be             management systems regardless of the learning
launched in a standalone web window, or in a           management system implementation.
frame in a HTML frameset. Many SCORM
runtime environments launch SCOs in a                  The quot;ransom letterquot; controversy
frameset, with other frames containing user            Many instructional designers and other
interface elements of the runtime environment.         SCORM stakeholders have expressed concern
Typically, if there is more than one content           about what they perceive as a problem of visual
object available through the activity tree, the        continuity. The argument goes like this: If
learning environment will show the activity tree       SCOs are assembled from various sources, they
in the form of an outline. The runtime                 may have vastly different look and feel, like a
environment may also display user interface            ransom letter, and that does not look good.
elements for value-added features specific to
In the Eye of the SCORM

It is indeed possible to achieve this visually             As of now, however, the SCORM contains no
jarring effect. However it may not be as serious           provision to enforce such a policy. There is also
as it seems. For one thing, one should not                 no provision to allow content to control the
confuse functional continuity and visual                   look and feel across SCOs or between SCOs
continuity. It is important to provide consistent          and the runtime environment.
or at least predictable user interfaces, but that
                                                           SCORM 2004 does however specify some
does not mean they have to look the same. For
                                                           means for SCOs to display their own navigation
another, most people today are successfully
                                                           controls and request that the runtime
extracting information and learning from vastly
                                                           environment turn off the corresponding
different content they gather with Google or
                                                           controls. This is specified in the Navigation
other search engines. In fact, many younger
                                                           section of the Sequencing and Navigation
learners, raised on MTV and the short attention
                                                           document. In the end, though, those are only
span culture of television, are probably more
                                                           requests and the runtime environment will
turned off and bored by visual continuity than
                                                           decide what to show and how.
by interesting clashes of look and feel.
In the end, what really matters is that the active
process of learning takes place, not which color
or font is used. The time may have come to do
away with the confusion between good
instructional design and good graphic design.
This being said, there are cases where visual
continuity is important, for reasons of enterprise
politics, or because of specific characteristics of
the audience. Nothing prevents a content
developer or a community of practice from
agreeing on design policies, style sheets and
templates to ensure that all the SCOs they will
deploy have a consistent look and feel.



What a SCO does
As far as the SCORM is concerned, a SCO is                 See below for a more detailed list of dos and
not required to do much. At a minimum,                     don'ts.
though, it must communicate with the runtime
                                                           The more advanced authoring tools for
environment once it has been launched.
                                                           SCORM content hide the underlying code a
Except for this basic communication                        SCO use for communication completely, so that
requirement, the SCO developer can do                      an author never needs to see any of it. Other
anything he or she likes as long as it the                 tools may include templates that encapsulate
behavior is self-contained in the SCO. For                 the necessary code.
example, links to other SCOs are not allowed.




                                                      18
Chapter 5 - Understanding SCOs


Communicating with the runtime environment

The IEEE communication API
SCORM communication between a SCO and                   and return values must be strings or represented
the runtime environment is an implementation            as strings, because otherwise there may be
of an international standard, IEEE 1484.11.2:           compatibility issues with the binary
ECMAScript API for Content to Runtime                   representations for data types. The SCORM
Services.                                               documents refer to this API object as an API
                                                        instance, to reinforce the idea that this object
The runtime environment must make an
                                                        must be instantiated as a DOM element in the
ECMAScript-compatible API object available
                                                        context of the browser. Once a SCO discovers
in the DOM (Document Object Model) context
                                                        the API instance through the DOM, it must use
of the browser before it launches the SCO. The
                                                        the same instance for any subsequent API calls
SCO must then look for an instance of this API
                                                        within the same session.
object, by searching frames and windows in a
very specific order defined by the IEEE                 ECMAScript is the ISO standard born from
standard. Once the SCO has found the object, it         earlier versions of Netscape's JavaScript and
calls functions of the object to start a                Microsoft's JScript. Many people still use the
communication session with that object.                 term quot;JavaScriptquot; to mean ECMAScript as
                                                        implemented in the current mainstream
Neither the standard nor SCORM specify that
                                                        browsers, such as the Mozilla based browsers
any particular technology, such as JavaScript,
                                                        and Microsoft's Internet Explorer.
Java, etc. must be used to implement the API
object. The only requirement is that the object
must be compatible with any ECMAScript
implementation. For this reason, all parameters

Managing the communication session
The SCO must initialize a communication                 the SCO, or the learner might close the browser
session by calling the corresponding function of        window.
the API instance to open a communication
                                                        It is still the responsibility of the SCO to
session. Once the session has been successfully
                                                        manage the communication session properly in
initialized, the SCO can get and set data
                                                        this case. Typically, a SCO developer defines a
through corresponding functions of the API
                                                        handler for the onunload browser event to do
instance. Finally, the SCO must terminate the
                                                        this. When the SCO is running in Internet
communication session by calling the
                                                        Explorer (IE) or Mozilla FireFox, a more robust
corresponding function.
                                                        way to handle an unexpected unloading can be
Only one communication session is allowed for           to define a handler for the onbeforeunload
every launch of the SCO by the runtime                  browser event. Both Internet Explorer and
environment. If a SCO tries to initialize a new         Mozilla FireFox trigger onbeforeunload
communication session after terminating the             before it actually begins to unload the web page
session, this will cause an error.                      and its associated resources and scripts.
                                                        Unfortunately some other features of the SCO
Managing unexpected unloading                           such as may trigger onbeforeunload
Frequently, a SCO is unloaded before running            prematurely and therefore onbeforeunload
its course to a point where it would normally           must be used with caution.
terminate the communication session. For
                                                        The handler for the unexpected unloading must
example, the learner might choose another
                                                        attempt to send any unsaved tracking data to the
activity, which causes premature termination of
                                                        runtime environment by using the SetValue


                                                   19
In the Eye of the SCORM

function of the API instance, and then call the           Terminating the communication session
Terminate function of the API instance.                   implicitly invokes Commit. Some SCO
                                                          developers wait until the end of the
Being ready for unexpected unloading has
                                                          communication session to send and commit all
another implication for SCOs. For example, if a
                                                          their data. However, this may result in a lot of
SCO is made of a series of linked web pages,
                                                          data being transmitted while the page is being
and the SCO may be unloaded at any time,
                                                          unloaded. Worse, if this happens while the
every page must be ready to be abnormally
                                                          browser window is closing, the browser may
unloaded at any time and terminate the
                                                          never finish the operation. It is better to spread
communication session. This really requires
                                                          out the data communication over the duration of
some form of state management for the entire
                                                          the session. For example, it is a good idea to
SCO, rather than on a page per page basis. For
                                                          call Commit after a quot;batchquot; of individual data
this reason, a frameset that can maintain state is
                                                          has been sent to the runtime environment, or if
often used to implement SCOs that use multiple
                                                          some significant data has been sent and it may
web pages.
                                                          be a while before there will be more data.
Optimizing bandwidth and reliability with
                                                          Mitigating catastrophic failure
Commit
                                                          Running an application in a browser is always a
The SCORM profile for the IEEE API uses a
                                                          quot;best effortquot; proposition, because the content
lot of function calls to get and set values
                                                          does not control the browser. For example, the
through the API instance, one data element at a
                                                          user might just shut down the browser. If the
time. This works very well in the local
                                                          SCO design allows it, information necessary to
communication between the SCO and the API
                                                          recover in case of catastrophic failure can also
instance, but it is not practical for
                                                          be sent and committed early in the session and
communication across the Internet. For this
                                                          then after every significant event. For example,
reason, the IEEE API also provides a Commit
                                                          tentative status information may be sent early,
function. When the API function is called, it is
                                                          and updated as the learner progresses through
a signal to the runtime environment that the
                                                          the SCO. Suspend data to allow resumption of
data sent by the SCO should be committed to
                                                          the SCO in a later learner session can also be
persistent storage. Many SCORM runtime
                                                          updated at regular intervals throughout the
environments use Commit as a signal to transfer
                                                          session.
a batch of data to the LMS across the Internet.




                                                     20
Chapter 5 - Understanding SCOs


The communication data models
The API standard does not specify any                     prefix, and the second is identified in the
particular data model for the data exchanged              SCORM dot notation by the quot;adl.nav.quot;
during a communication session. It can be used            prefix.
with any data model, and more than one data
                                                          The standard data model is defined by the IEEE
model may be used in the same communication
                                                          standard 1484.11.1: Data Model for Content to
session.
                                                          Learning Management System Communication.
The SCORM specifies both an IEEE standard                 The SCORM calls this data model the quot;CMIquot;
communication data model and a custom data                data model because the standard is mostly
model for navigation data. The first is identified        compatible with the older AICC CMI data
in the SCORM dot notation by the quot;cmi.quot;                   model used in SCORM 1.2.

The CMI data model
The IEEE standard for the CMI communication               communication session. Or, it may get existing
data model specifies data that a content object           status information about a content objective for
may query from the runtime environment as                 this particular learner, update the information,
well as data that the SCO may send to the                 and send that to the runtime environment.
runtime environment.
                                                          The CMI data model contains several
The SCORM profile of the IEEE standard adds               categories of data:
some specific requirements. For each data
                                                          • Status data, about the status of the SCO,
element, it specifies whether a SCO may get the
                                                            including completion and success status.
data from the runtime environment by using a
                                                          • Score data.
GetValue API function, send the data to the
runtime environment by using a SetValue                   • Thresholds for passing score, and for how
function, or both get and set data.                         much progress is required for completion
                                                          • Data about content objectives and their status.
One-way data from the runtime environment
                                                          • Data about various types of interactions and
This includes data that a SCO may request
                                                            their status and learner responses. This can be
about how it is being launched, other
                                                            used for traditional test items as well as for
initialization data, and some data about the
                                                            more complex interactions, such as
learner, such as the learner's name.
                                                            simulations.
                                                          • Comments
One way data from the SCO
This includes data used to signal various things          • Limited learner information
to the runtime environment, such as the time              • Some common learner preference items
elapsed in the SCO, or whether the SCO
                                                          • Suspend data and location, which can be used
requests to have some data preserved so that it
                                                            to resume an interrupted session.
can resume from a suspended state in a later
                                                          • Entry and exit status, used to determine how
session.
                                                            the SCO was launched and how the SCO
Two-way data                                                believes it is being terminated.
This includes most of the data elements defined           Note that a SCO is under no obligation to use
in the data model. For example, a SCO may                 every one of those data elements. However, a
send a score to the runtime environment, and              runtime environment must implement all of
get the score back later in the same                      them, in case a SCO needs to use any of them.




                                                     21
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft
Eye Of The Scorm Draft

Contenu connexe

Tendances

Native Plant Revegetation Guide For Colorado
Native Plant Revegetation Guide For ColoradoNative Plant Revegetation Guide For Colorado
Native Plant Revegetation Guide For ColoradoFiona9864
 
Shivprasad Koirala
Shivprasad KoiralaShivprasad Koirala
Shivprasad KoiralaSubhadip Pal
 
Ppdg Robust File Replication
Ppdg Robust File ReplicationPpdg Robust File Replication
Ppdg Robust File Replicationguest0dc8a2
 
Statutory Demand Law in Australia
Statutory Demand Law in AustraliaStatutory Demand Law in Australia
Statutory Demand Law in AustraliaWayne Davis
 
Serbia judicial functional review (full report) - Izveštaj o funkcionalnosti ...
Serbia judicial functional review (full report) - Izveštaj o funkcionalnosti ...Serbia judicial functional review (full report) - Izveštaj o funkcionalnosti ...
Serbia judicial functional review (full report) - Izveštaj o funkcionalnosti ...gordana comic
 
Management by competencies tulay bozkurt
Management by competencies tulay bozkurtManagement by competencies tulay bozkurt
Management by competencies tulay bozkurtTulay Bozkurt
 
Proxy Statement for July 2007 Annual Meeting
Proxy Statement for July 2007 Annual Meeting Proxy Statement for July 2007 Annual Meeting
Proxy Statement for July 2007 Annual Meeting finance2
 
Yahoo Web Analytics API Reference Guide
Yahoo Web Analytics API Reference GuideYahoo Web Analytics API Reference Guide
Yahoo Web Analytics API Reference GuideAndrew Talcott
 
Ana stiglic
Ana stiglic   Ana stiglic
Ana stiglic afzallkr
 
Ralph Stuyver (2006) Interactive Brand Identity Design
Ralph Stuyver (2006) Interactive Brand Identity DesignRalph Stuyver (2006) Interactive Brand Identity Design
Ralph Stuyver (2006) Interactive Brand Identity Designrealaudience
 
C120 entering practice, your choices do it right, once
C120 entering practice, your choices do it right, onceC120 entering practice, your choices do it right, once
C120 entering practice, your choices do it right, onceAxex Dental
 
sun proxy statement 07
sun proxy statement 07sun proxy statement 07
sun proxy statement 07finance19
 
Vita Industry Survey 2010
Vita Industry Survey 2010Vita Industry Survey 2010
Vita Industry Survey 2010Neil Peterson
 
Deller rpl thesis
Deller rpl thesisDeller rpl thesis
Deller rpl thesisLinda Meyer
 

Tendances (18)

Native Plant Revegetation Guide For Colorado
Native Plant Revegetation Guide For ColoradoNative Plant Revegetation Guide For Colorado
Native Plant Revegetation Guide For Colorado
 
Shivprasad Koirala
Shivprasad KoiralaShivprasad Koirala
Shivprasad Koirala
 
Ppdg Robust File Replication
Ppdg Robust File ReplicationPpdg Robust File Replication
Ppdg Robust File Replication
 
Statutory Demand Law in Australia
Statutory Demand Law in AustraliaStatutory Demand Law in Australia
Statutory Demand Law in Australia
 
Serbia judicial functional review (full report) - Izveštaj o funkcionalnosti ...
Serbia judicial functional review (full report) - Izveštaj o funkcionalnosti ...Serbia judicial functional review (full report) - Izveštaj o funkcionalnosti ...
Serbia judicial functional review (full report) - Izveštaj o funkcionalnosti ...
 
Web Search 101
Web Search 101Web Search 101
Web Search 101
 
Management by competencies tulay bozkurt
Management by competencies tulay bozkurtManagement by competencies tulay bozkurt
Management by competencies tulay bozkurt
 
Proxy Statement for July 2007 Annual Meeting
Proxy Statement for July 2007 Annual Meeting Proxy Statement for July 2007 Annual Meeting
Proxy Statement for July 2007 Annual Meeting
 
Yahoo Web Analytics API Reference Guide
Yahoo Web Analytics API Reference GuideYahoo Web Analytics API Reference Guide
Yahoo Web Analytics API Reference Guide
 
Ana stiglic
Ana stiglic   Ana stiglic
Ana stiglic
 
Ralph Stuyver (2006) Interactive Brand Identity Design
Ralph Stuyver (2006) Interactive Brand Identity DesignRalph Stuyver (2006) Interactive Brand Identity Design
Ralph Stuyver (2006) Interactive Brand Identity Design
 
C120 entering practice, your choices do it right, once
C120 entering practice, your choices do it right, onceC120 entering practice, your choices do it right, once
C120 entering practice, your choices do it right, once
 
Keyword Research for Professionals - SMX Stockholm 2012
Keyword Research for Professionals - SMX Stockholm 2012Keyword Research for Professionals - SMX Stockholm 2012
Keyword Research for Professionals - SMX Stockholm 2012
 
sun proxy statement 07
sun proxy statement 07sun proxy statement 07
sun proxy statement 07
 
DTE_q206sup
DTE_q206supDTE_q206sup
DTE_q206sup
 
Styleguide
StyleguideStyleguide
Styleguide
 
Vita Industry Survey 2010
Vita Industry Survey 2010Vita Industry Survey 2010
Vita Industry Survey 2010
 
Deller rpl thesis
Deller rpl thesisDeller rpl thesis
Deller rpl thesis
 

En vedette

Rave Computer Banner for MS&V
Rave Computer Banner for MS&VRave Computer Banner for MS&V
Rave Computer Banner for MS&VChris Lakatos
 
Demo precision mktg
Demo precision mktgDemo precision mktg
Demo precision mktgdklein69
 
Graphic+Duurzaamheidsverlag
Graphic+DuurzaamheidsverlagGraphic+Duurzaamheidsverlag
Graphic+DuurzaamheidsverlagHoux
 
Linked:HR survey into eLearning - July 2014
Linked:HR survey into eLearning - July 2014Linked:HR survey into eLearning - July 2014
Linked:HR survey into eLearning - July 2014Dave Sumner Smith
 
Dixie Lee Grothe 3pg
Dixie Lee Grothe 3pgDixie Lee Grothe 3pg
Dixie Lee Grothe 3pgdixiegrothe
 
The Paint Detective 123565369195 Phpapp01
The Paint Detective 123565369195 Phpapp01The Paint Detective 123565369195 Phpapp01
The Paint Detective 123565369195 Phpapp01aklewi
 
Situation Analysis Deck - Social Media Listening &amp; Monitoring Lanscape
Situation Analysis Deck - Social Media Listening &amp; Monitoring LanscapeSituation Analysis Deck - Social Media Listening &amp; Monitoring Lanscape
Situation Analysis Deck - Social Media Listening &amp; Monitoring LanscapeGreat Minds Interactive, Inc.
 
About Trade Bridge Consultants
About Trade Bridge ConsultantsAbout Trade Bridge Consultants
About Trade Bridge ConsultantsJohn Cotton
 

En vedette (18)

Rave Computer Banner for MS&V
Rave Computer Banner for MS&VRave Computer Banner for MS&V
Rave Computer Banner for MS&V
 
Case Studies
Case StudiesCase Studies
Case Studies
 
Chris Lakatos
Chris LakatosChris Lakatos
Chris Lakatos
 
Demo precision mktg
Demo precision mktgDemo precision mktg
Demo precision mktg
 
Graphic+Duurzaamheidsverlag
Graphic+DuurzaamheidsverlagGraphic+Duurzaamheidsverlag
Graphic+Duurzaamheidsverlag
 
Muestra CáTedra Gorodischer 08
Muestra CáTedra Gorodischer 08Muestra CáTedra Gorodischer 08
Muestra CáTedra Gorodischer 08
 
Chris Logo
Chris LogoChris Logo
Chris Logo
 
Linked:HR survey into eLearning - July 2014
Linked:HR survey into eLearning - July 2014Linked:HR survey into eLearning - July 2014
Linked:HR survey into eLearning - July 2014
 
Research a 031014
Research a 031014Research a 031014
Research a 031014
 
State Of The Arts
State Of The ArtsState Of The Arts
State Of The Arts
 
Dixie Lee Grothe 3pg
Dixie Lee Grothe 3pgDixie Lee Grothe 3pg
Dixie Lee Grothe 3pg
 
Chris Web
Chris WebChris Web
Chris Web
 
Wensen 2009
Wensen 2009Wensen 2009
Wensen 2009
 
The Paint Detective 123565369195 Phpapp01
The Paint Detective 123565369195 Phpapp01The Paint Detective 123565369195 Phpapp01
The Paint Detective 123565369195 Phpapp01
 
Sol
SolSol
Sol
 
貝多芬
貝多芬貝多芬
貝多芬
 
Situation Analysis Deck - Social Media Listening &amp; Monitoring Lanscape
Situation Analysis Deck - Social Media Listening &amp; Monitoring LanscapeSituation Analysis Deck - Social Media Listening &amp; Monitoring Lanscape
Situation Analysis Deck - Social Media Listening &amp; Monitoring Lanscape
 
About Trade Bridge Consultants
About Trade Bridge ConsultantsAbout Trade Bridge Consultants
About Trade Bridge Consultants
 

Similaire à Eye Of The Scorm Draft

Coherence developer's guide
Coherence developer's guideCoherence developer's guide
Coherence developer's guidewangdun119
 
Oracle 11g release 2
Oracle 11g release 2Oracle 11g release 2
Oracle 11g release 2Adel Saleh
 
Creating A Business Advantage With Offshore Resources
Creating A Business Advantage With Offshore ResourcesCreating A Business Advantage With Offshore Resources
Creating A Business Advantage With Offshore ResourcesKPI Partners
 
Podcasting Legal Guide[1]
Podcasting Legal Guide[1]Podcasting Legal Guide[1]
Podcasting Legal Guide[1]legal3
 
Towards 2012 The New Legal Landscape
Towards 2012 The New Legal LandscapeTowards 2012 The New Legal Landscape
Towards 2012 The New Legal Landscapelegaladvice
 
Podcasting Legal Guide[1]
Podcasting Legal Guide[1]Podcasting Legal Guide[1]
Podcasting Legal Guide[1]legal5
 
Legal Advice On
Legal Advice OnLegal Advice On
Legal Advice Onlegal1
 
Legal Advice On
Legal Advice OnLegal Advice On
Legal Advice Onlegal1
 
Podcasting Legal Guide[1]
Podcasting Legal Guide[1]Podcasting Legal Guide[1]
Podcasting Legal Guide[1]legal5
 
Podcasting Legal Guide[1]
Podcasting Legal Guide[1]Podcasting Legal Guide[1]
Podcasting Legal Guide[1]legal4
 
Podcasting Legal Guide[1]
Podcasting Legal Guide[1]Podcasting Legal Guide[1]
Podcasting Legal Guide[1]legal2
 
Podcasting Legal Guide[1]
Podcasting Legal Guide[1]Podcasting Legal Guide[1]
Podcasting Legal Guide[1]legalcounsel
 
Informatica installation guide
Informatica installation guideInformatica installation guide
Informatica installation guidecbosepandian
 
Determination of individual competencies by statistical methods yuksek lisans...
Determination of individual competencies by statistical methods yuksek lisans...Determination of individual competencies by statistical methods yuksek lisans...
Determination of individual competencies by statistical methods yuksek lisans...Tulay Bozkurt
 

Similaire à Eye Of The Scorm Draft (20)

Create
CreateCreate
Create
 
Coherence developer's guide
Coherence developer's guideCoherence developer's guide
Coherence developer's guide
 
Oracle 11g release 2
Oracle 11g release 2Oracle 11g release 2
Oracle 11g release 2
 
Creating A Business Advantage With Offshore Resources
Creating A Business Advantage With Offshore ResourcesCreating A Business Advantage With Offshore Resources
Creating A Business Advantage With Offshore Resources
 
Podcasting Legal Guide[1]
Podcasting Legal Guide[1]Podcasting Legal Guide[1]
Podcasting Legal Guide[1]
 
Towards 2012 The New Legal Landscape
Towards 2012 The New Legal LandscapeTowards 2012 The New Legal Landscape
Towards 2012 The New Legal Landscape
 
Podcasting Legal Guide[1]
Podcasting Legal Guide[1]Podcasting Legal Guide[1]
Podcasting Legal Guide[1]
 
Legal Guide
Legal GuideLegal Guide
Legal Guide
 
Legal Advice On
Legal Advice OnLegal Advice On
Legal Advice On
 
Legal Advice On
Legal Advice OnLegal Advice On
Legal Advice On
 
Legal Advice On
Legal Advice OnLegal Advice On
Legal Advice On
 
Podcasting Legal Guide[1]
Podcasting Legal Guide[1]Podcasting Legal Guide[1]
Podcasting Legal Guide[1]
 
Podcasting Legal Guide[1]
Podcasting Legal Guide[1]Podcasting Legal Guide[1]
Podcasting Legal Guide[1]
 
Podcasting Legal Guide[1]
Podcasting Legal Guide[1]Podcasting Legal Guide[1]
Podcasting Legal Guide[1]
 
Podcasting Legal Guide[1]
Podcasting Legal Guide[1]Podcasting Legal Guide[1]
Podcasting Legal Guide[1]
 
Informatica installation guide
Informatica installation guideInformatica installation guide
Informatica installation guide
 
Party merge
Party mergeParty merge
Party merge
 
Determination of individual competencies by statistical methods yuksek lisans...
Determination of individual competencies by statistical methods yuksek lisans...Determination of individual competencies by statistical methods yuksek lisans...
Determination of individual competencies by statistical methods yuksek lisans...
 
121poug
121poug121poug
121poug
 
Plesk Modules
Plesk ModulesPlesk Modules
Plesk Modules
 

Eye Of The Scorm Draft

  • 1. In the Eye of the SCORM An introduction to SCORM 2004 for Content Developers Claude Ostyn For the most recent version of this book, see www.ostyn.com/resources.htm Update 0.9-8.8– March 2007
  • 2. In the Eye of the SCORM Abstract This book explains SCORM 2004 to content developers. It contains an overview of SCORM, as well as practical examples. The function and structure of a package manifest are described. Various aspects of the behavior of a shareable content object (SCO), and in particular how a SCO communicates with a runtime environment, are explained with working examples. A template for a manifest is provided, and is used to explain the process of assembling a basic SCORM package. An introduction to sequencing and navigation is also included. Copyright Copyright © 2005, 2006, 2007 Ostyn Consulting. All rights reserved. License Unless otherwise expressly stated, all original material of whatever nature created by Claude Ostyn and included in this document and associated software samples is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/2.5/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. Commercial licensing terms are available for implementers who cannot abide by the Attribution or ShareAlike provisions of the Creative Common License. For additional information or questions regarding copyright, commercial use, distribution and reproduction, contact: Ostyn Consulting, PO Box 2362, Kirkland, WA 98083-2362, USA Representations, Warranties and Disclaimer OSTYN CONSULTING OFFERS THIS WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. Limitation on Liability EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL OSTYN CONSULTING OR CLAUDE OSTYN BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THE USE OF THIS WORK, EVEN IF OSTYN CONSULTING OR CLAUDE OSTYN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Trademarks Any trademarks or service marks used in this document are the property of their respective owners. ii
  • 3. Table of Content Abstract.............................................................................................................................................. ii Copyright ........................................................................................................................................... ii License............................................................................................................................................... ii Representations, Warranties and Disclaimer ..................................................................................... ii Limitation on Liability....................................................................................................................... ii Trademarks ........................................................................................................................................ ii Chapter 1 - Introduction..............................................................................................................................1 Who should read this book .....................................................................................................................1 How to use this book ..............................................................................................................................1 Acknowledgements ................................................................................................................................1 Chapter 2 - A short history of the SCORM ................................................................................................3 Precursors of the SCORM ..................................................................................................................3 Enter the ADL ....................................................................................................................................4 Chapter 3 - Overview of the SCORM ........................................................................................................6 What SCORM means .............................................................................................................................6 What the SCORM specifies....................................................................................................................7 Aggregations of content objects for portability ..................................................................................7 Launching and tracking of content objects in a package ....................................................................7 Content aggregation package vs. content resource package ...............................................................8 Adaptive sequencing behaviors for activities .....................................................................................8 What the SCORM does not specify........................................................................................................9 How to design learning content ..........................................................................................................9 Look and feel ......................................................................................................................................9 What to do with tracking data.............................................................................................................9 Granularity of SCOs and other content objects ..................................................................................9 You do not have to learn all of SCORM to use SCORM .....................................................................10 SCORM content and objective tracking ...............................................................................................10 Chapter 4 - Anatomy of a SCORM package ............................................................................................11 Overview ..............................................................................................................................................11 Directory structure................................................................................................................................11 Manifest ................................................................................................................................................11 Metadata ...............................................................................................................................................11 Organizations........................................................................................................................................12 Resources..............................................................................................................................................12 Sequencing rules...................................................................................................................................13 Sub-manifests .......................................................................................................................................13 Shared resources ...................................................................................................................................15 Summary of SCORM package dos and don'ts......................................................................................16 Chapter 5 - Understanding SCOs .............................................................................................................17 What is a SCO?.....................................................................................................................................17 What a SCO does..................................................................................................................................18 Communicating with the runtime environment ....................................................................................19 The IEEE communication API .........................................................................................................19 Managing the communication session..............................................................................................19 The communication data models ..........................................................................................................21 The CMI data model.........................................................................................................................21 The ADL navigation data model ......................................................................................................22 Working with the SCORM data models ...........................................................................................22 SCO dos and don'ts...............................................................................................................................24 Chapter 6 - SCORM Sequencing..............................................................................................................25 Introduction to sequencing ...................................................................................................................25 iii
  • 4. In the Eye of the SCORM Sequencing is optional......................................................................................................................25 How do you specify sequencing? .....................................................................................................25 What you can do with sequencing........................................................................................................26 Mapping objectives and competencies .............................................................................................27 Mixing strategies in the activity hierarchy .......................................................................................27 Cautions and warnings..........................................................................................................................27 Simple sequencing templates................................................................................................................28 Chapter 7 - The Navigation data model....................................................................................................29 History of the navigation data model....................................................................................................29 How the data model works with sequencing ........................................................................................29 Chapter 8 - Practical SCO construction....................................................................................................30 A minimal generic, reusable SCO script ..............................................................................................31 A very simple SCO using the generic script.........................................................................................32 Scripting for the unexpected.............................................................................................................32 Sending data to the runtime environment .............................................................................................33 Getting data from the runtime environment .........................................................................................34 A more complete reusable SCO script..................................................................................................35 Sending basic tracking data to the runtime environment......................................................................38 Relating score and success status .........................................................................................................40 Maintaining state across multiple pages ...............................................................................................41 Multi-page SCO using the generic script..............................................................................................42 When to use Commit ............................................................................................................................44 Using suspend and resume data............................................................................................................45 Reporting interaction data.....................................................................................................................47 Walking the array of interaction records ..........................................................................................47 Working with objective data.................................................................................................................52 Walking the array of objective records.............................................................................................52 Turning a passive asset into a SCO ......................................................................................................56 Closing the window when the SCO finishes ........................................................................................57 Using Flash to make a SCO..................................................................................................................59 Chapter 9 - Practical package assembly ...................................................................................................60 Workflow..............................................................................................................................................60 Some manifest elements are optional ...................................................................................................61 Sample manifest ...................................................................................................................................62 A reusable manifest template................................................................................................................65 Validating your package .......................................................................................................................68 Adding metadata...................................................................................................................................68 Sample metadata file ............................................................................................................................70 Special SCORM packaging issues........................................................................................................71 Shareable resources ..........................................................................................................................71 Server-dependent content .................................................................................................................73 The cross-server delivery issue.........................................................................................................73 Overview of the generic SCO script.....................................................................................................77 Generic SCO script features and functions...........................................................................................77 Automatic API session initialization and termination ......................................................................77 Automatic calls to your custom initialization and cleanup functions ...............................................78 Helper functions in the reusable script .............................................................................................79 Controllable automated features in the reusable script .....................................................................86 Index .........................................................................................................................................................92 iv
  • 5. Chapter 1 - Introduction Who should read this book This book is intended for content developers, for provide a complete reference or to replace the developers of authoring tools for SCORM SCORM specifications. content, and for anyone who has to manage or If your interest is not technical, you can stop deal with SCORM content. It assumes no prior reading before reaching the final chapters, which knowledge of SCORM, but it assumes that the include some detailed technical examples to reader has some basic understanding of things illustrate various SCORM concepts. like file and directory structures, and of how web Specialized terms and acronyms are unavoidable. content is delivered. The glossary on page 91 may be useful if you This book is intended to provide conceptual encounter a mysterious term or acronym. overviews and examples. It is not intended to How to use this book This book contains both conceptual overviews SCORM 2004 documents or otherwise keep and technical overviews. The technical them available for reference when reading this examples are, by their very nature, written book. Each SCORM book begins with a useful using programming languages that are not conceptual introduction. In various places, this really fit for normal human beings, but I tried to book will paraphrase what is in the ADL make them understandable even for people with documents. This is by design. Often, viewing only a passing acquaintance with JavaScript the same dense information from different and XML. angles can make it easier to understand. If you want to use this book for a SCORM If you want to try the provided examples, you project, or if it seems hard to understand, do not need an authoring tool. All you need is a recommend that you print out the ADL text editor like Notepad. Acknowledgements This document would not exist without the technology. Special thanks to Steve Alessi, relentless truth seekers, implementers, critics Corrie Bergeron, Bill Blackmon, Jennifer and the quot;usual suspectsquot; who have been raising Brooks, Judy Brown, Andrew Chemey, Philip all kinds of questions about learning objects, Dodds, Erik Duval, Dexter Fletcher, Jason interoperability, content packaging, metadata Haag, Wayne Hodgins, Peter Hope, Jack Hyde, and related matters over the last few years. It Tom King, John Kleeman, M. David Merrill, would also not exist without the diligence of the Boyd Nielsen, Angelo Panar, Nina Deibler, ADL and the SCORM technical team and Frank Polster, Tom Reeves, Daniel Rehak, Jeff technical working group for providing a Rhodes, Tyde Richards, Eric Roberts, Robby workable specification that finally allows Robson, Eric Rosen, Harvey Singh, Roger St- content to interoperate reliably so we can all Pierre, Schawn Thropp, Stanley Trollip, Jeff focus on more interesting things, like Webb, Eamonn Webster, Ian Wright. performance and the human side of learning ...as becomes the ignorant, I must learn processes. Humble thanks also to all those who from the wise... generously shared their research and wisdom Plato, The Republic about why and how we learn, with or without
  • 6. In the Eye of the SCORM 2
  • 7. Chapter 2 - A short history of the SCORM various content libraries. Enterprises and The basic problem agencies using the learning management systems For many years, one of the major problems with and the content win because instead of wasting e-learning has been the creation and deployment money and time on integration of different of quality e-learning content. E-learning content libraries of content, they can easily mix off the is actually software. Its development has shelf content with their own custom content typically been subject to the same issues as other using the same delivery environment. software projects. In other words, e-learning content is expensive and time-consuming to Precursors of the SCORM develop. To deliver and especially track results from the AICC use of the content, it typically had to be custom A long time ago, when the delivery programmed to work in a specific delivery environments were still mostly DOS machines environment. Different learning management and Windows was still vaporware, the Aviation systems had very different delivery Industry Computer-Based Training Committee environments. If an enterprise wanted to upgrade (AICC) published guidelines and a learning management system or change recommendations for interoperable content. The vendors, often that meant abandoning very AICC has since been updating these expensive content and starting over. If a content specifications to work in a web based vendor wanted to distribute content widely, it environment, sometimes with mixed results was very expensive. A completely different because of an ongoing concern for legacy version was often required to accommodate each content and systems. The AICC specifications different learning management system. Big did not provide a way to guarantee cataloguing content vendors, on the other hand, specified metadata, or a robust way to package the content their own delivery environment and forced each to make it portable. However, good lessons were learning management system to implement learned from those early efforts and different delivery modules for each large content contributions. vendor. IMS Global Learning Consortium As learning requirements changed and New useful specifications have emerged from overlapped within enterprises and government other communities of practice, such as the agencies, the importance of reusable content Content Packaging specification and Content modules became apparent. In education as well, object Metadata profile from the IMS Global the usefulness of content objects or quot;content Learning Consortium. nuggetsquot; to support all kinds of learning activities was demonstrated by various projects. IEEE There has thus been a strong market incentive for An accredited international standards content that is durable, portable between systems organization, the IEEE has been busy turning and reusable in a modular fashion. In other specifications into high quality standards. The words, content that is interoperable. standards initiatives often cooperate. For With interoperable content, content developers example, the IMS metadata specification was based on an early draft of the IEEE metadata win because the same content can work in more different systems without modification. LMS standard, and other IEEE standards incorporate some of the functionality first contributed by the vendors win because they can focus on the management aspects of learning, without having AICC. to constantly adapt the delivery environment to
  • 8. In the Eye of the SCORM SCORM 1.2 proved that content can be made Enter the ADL portable and interoperable. For example, one Several years ago, the White House Office of leading LMS vendor has seen the cost and time Technology, the Department of Defense and the of new content integration with their SCORM Department of Labor launched the Advanced conformant drop to almost nothing when the Distributed Learning Initiative (ADL) in the content was verifiably SCORM conformant. Any United States. Industry and education partners, remaining issue was a result of not conforming as well as various entities in other countries also to SCORM, or the result of a misinterpretation of joined the effort. One of the first ADL projects a SCORM feature that was still not quite pinned was for a practical profile of existing down completely. specifications and standards for content. A profile is a document that specifies a particular The current version: SCORM 2004 interpretation of a standard or specification. In SCORM 2004 improves significantly on the process, some gaps had to be filled in, and SCORM 1.2, by eliminating even more the end result was a set of quot;booksquot;, each ambiguities in the specification, and by making describing a different aspect of the solution. The SCORM conformant with robust IEEE result was called the Shareable Content Object standards. The API now supports the wide range Reference Model, or SCORM. of human languages supported by ECMAScript. The SCORM was born to take the best from the Besides improving on SCORM 1.2, SCORM early efforts, specifications and standards, and 2004 also adds optional features for sequencing achieve the goals of durability, portability, and navigation. reusability, interoperability and accessibility for The addition of sequencing is a major functional content. milestone. SCORM 1.2 was all about making Many people from the e-learning industry were content portable, but left it to the learner to involved in the genesis of the SCORM, along choose which part of the content to run. SCORM with the technical team funded by ADL. Each 2004 adds the ability to deliver activity-centered release of the SCORM has been tested in content packages that support guided or adaptive quot;Plugfestquot; events. A Plugfest is a meeting where sequencing behavior. competing vendors and developers get together Compatibility between versions to verify that their content and implementations interoperate as expected, and to iron out Many content Learning Management System problems in a cooperative atmosphere. Plugfest vendors will probably continue to support events have attracted a very wide international SCORM 1.2 content for a long time, along with participation, which is a clear indication of the SCORM 2004. impact and adoption of the SCORM well beyond Tools are available or can be built relatively its North American origins. easily to convert SCORM 1.2 content packages to SCORM 2004. SCORM 1.1 The first release of the SCORM was a trial It is possible to launch unmodified SCORM 1.2 balloon, intended to discover unresolved issues. content objects in a SCORM 2004 environment Test bed implementations revealed that SCORM by using a quot;wrapperquot; provided by the ADL. 1.1 was less than fully functional, and It is also possible to launch SCORM 2004 interoperability was still mostly hit and miss. content objects in a SCORM 1.2 environment The lessons from SCORM 1.1 were put to good through such a quot;wrapperquot;. However, in that case, use in the subsequent releases. and depending on the content, some tracking or session data may be lost because SCORM 1.2 SCORM 1.2 does not support the full IEEE data model used The first quot;realquot; release of the SCORM was by SCORM 2004. Obviously, SCORM 1.2 SCORM 1.2. This was the first version for which environments do not support SCORM 2004 a test suite was available, and thus the first sequencing. version for which conformance could be verified. 4
  • 9. Chapter 2 - A short history of the SCORM Another approach is to create content objects that Although AICC has a long term plan to conform can work in either SCORM 1.2 or SCORM to the same IEEE standards as SCORM, most 2004, with graceful degradation if the current AICC content is not SCORM environment is SCORM 1.2. This approach is of conformant. For one thing, the AICC Guidelines course more expensive. and Recommendations do not include a packaging specification that supports the This book focuses on SCORM 2004 because this inventory of all components of a package, as is the current version. There is little point in provided by the IMS content packaging fighting the old battles of SCORM 1.2 in new manifest. Also, most AICC compliant content implementations. uses an older, non-standard AICC defined communication protocol (called HACP by Compatibility with other specifications AICC), which is not compatible with the IEEE Since SCORM is defines profile of IEEE standard used by SCORM. Unlike SCORM, the standards and IMS specifications, SCORM AICC's HACP protocol is not compatible with content packages conform to those standards or offline delivery of content, because it requires an specifications. However, packages that comply active web server component. However, some with those standards or specifications are not newer AICC content that uses the so-called necessarily SCORM compliant. For example, an quot;JavaScriptquot; protocol can often be adapted and IMS compliant package that does not include the repackaged to work in a SCORM delivery SCORM extension elements in its manifest is not environment. SCORM conformant. 5
  • 10. Chapter 3 - Overview of the SCORM What SCORM means SCORM is an acronym for Shareable Content some standard cataloguing data be associated Object Reference Model. with the content. The SCORM also defines minimum The SCORM specifies a framework for content conformance requirements for systems that can that meets the following requirements for e- deliver such content to a learner. learning content: The SCORM consists of several quot;booksquot;, each • Durability – Content should last long enough of which specifies some technical aspects of to amortize its cost, and be usable as long as shareable content. Some software is provided it is relevant. along with the books to verify conformance and • Portability – It should be possible to move the to allow demonstrations of some of the content easily from one delivery environment SCORM functionality. to another. The same content should work SCORM conformance does not automatically without modification in different delivery mean you have a usable system. It would be environments, as long as the delivery like saying that fuel makes a transportation environment includes a web browser. system. But SCORM conformance is a • Reusability – It should be possible to build powerful enabler. It was designed to work the content in small, reusable modules that behind the scenes, unseen by users. The real can be recombined in different ways. payoff of SCORM is in the applications it Different communities of practice should be enables, and removing some of the major cost able to share reusable content. and time barriers to content integration in • Interoperability – The same content should learning management systems or performance work the same way when it is deployed in support systems. different environments. • Accessibility – It must be possible to find the content in a repository. This requires that
  • 11. Chapter 2 - A short history of the SCORM What the SCORM specifies through a standard web browser with JavaScript Aggregations of content objects enabled. for portability The runtime environment is completely independent of the content. However, some parts of it must be constructed in a particular way so that some of the content objects will be able to exchange data with the runtime environment. Typically, the runtime environment is split across a network connection, with parts of it on a server and part of it running in the user's browser. LMS Package Figure 1 - SCORM Package repository Runtime and/or The SCORM specifies how reusable web-based environment package content objects can be aggregated into a Server side generator portable package that includes a manifest to form a larger self-contained content object. Network A SCORM manifest provides a detailed description of the content of the SCORM package, as well as some prescriptions for the Browser use of the package. The prescription typically Runtime environment - Client side specifies activities and sub-activities that use Frameset provided by RTE the content objects in the package. The manifest RTE User interface, navigation UI also includes descriptive metadata. It is conceptually similar to the shipping manifest Stage frame Launch, session used when one ships physical goods in one or management, cache, etc. more boxes. R SCO A SCORM package can exist as a persistent API package, which is never modified after object publication, or it can be assembled and customized on the fly by an automated system for a particular individual. The SCORM does not specify the process by which a package is Figure 2 – SCORM Runtime environment aggregated, but it specifies the result of such a The content objects that can exchange data with process. a SCORM conformant runtime environment are called Shareable Content Objects (SCOs). The Launching and tracking of runtime environment launches the SCOs one at content objects in a package a time, according to a particular activity prescription included in the package. Unless the A runtime environment (RTE) must be used to activity prescription forbids it, the user can also launch the individual content objects in a navigate from SCO to SCO through controls SCORM conformant package. The runtime provided in the runtime environment's user environment is typically provided by a LMS, a interface. performance support system, or a competency management system. The learner interacts with The SCORM specifies in detail how a SCO the runtime environment and the web content must behave within the runtime environment: 7
  • 12. In the Eye of the SCORM Content aggregation package The SCO must establish a communication session with the runtime environment, and there The most common kind of package is intended is a standard set of data elements that the SCO for delivery to a learner. In this kind of can use during the communication session. This package, a special section of the manifest includes tracking data that allows the SCO to describes how the content objects are organized report success and progress, as well as other for delivery. This prescription takes the form of information about the status of content a manifest element named organization. An objectives, results of interactions, and so on. organization element defines a tree of activities and sub-activities that use the content objects. Offline content delivery The SCORM does not specify that a web server This is the kind of package this book will focus is required. It only specifies that the runtime on. environment must be able to launch the SCOs Content resource package in a web browser, and that a SCO must be able Another kind of SCORM package does not to find an API object in another browser include any organization information. It is not window that is related to the launch window in intended for delivery to a learner. Rather, it is a particular way. The SCO may actually come used to move amorphous collections of content from a remote server, from a local server or objects from one system to another, or to from the local file system. For example, it is archive a collection of content objects. possible to deliver the same SCORM conformant content on a CD-ROM or through a This book does not describe that kind of web based learning management system. Of package, because no interesting behavior can be course, offline delivery through a CD-ROM associated with it. would require the installation of an appropriate player on the delivery system if it is necessary Adaptive sequencing behaviors to track SCORM data in a persistent way. For for activities example, an offline SCORM player might be a By default, there is no sequencing information native Windows application that uses the associated with the activity tree. In that case, a Internet Explorer object built into Windows to runtime environment must show all the display the SCOs, and that can synchronize data activities and let the learner choose what to do. with a LMS when a connection is available. However, the creator of a package may add Content aggregation package vs. sequencing rules to the activity tree to prescribe guided flows through the content, adaptive content resource package sequencing and other navigation options. The The SCORM defines two kinds of packages. SCORM specifies how to add and implement those rules. It also specifies how the tracking data reported by content objects when they are used can affect adaptive sequencing. Figure 3 - Two kinds of SCORM packages 8
  • 13. Chapter 2 - A short history of the SCORM What the SCORM does not specify Granularity of SCOs and other How to design learning content content objects The SCORM is neutral when it comes to The SCORM does not specify a particular pedagogy. Many of the readily available granularity, size or duration for SCOs and other SCORM examples have been based on very content objects. One SCO can be arbitrarily traditional programmed instruction models. large and take several days to get through, This is due more to a failure of imagination while another SCO could be a single item in a than to intrinsic constraints or prescriptions of test. the SCORM. Some communities of practice are fixated on Look and feel specific levels of granularity. Others allow total flexibility. For example, a policy might specify The SCORM does not specify what content that each SCO should correspond to an enabling should look like, what a runtime environment content objective in a particular training model. looks like, and in particular what the user However, the SCORM makes no such interface for navigation between SCOs looks assumption. Interoperability with content from like. It does however assume that certain different sources may be compromised if the navigation facilities will be available. granularity policies are too rigid. What to do with tracking data The SCORM does not specify how a LMS uses and reports tracking data collected while running SCORM content. 9
  • 14. In the Eye of the SCORM You do not have to learn all of SCORM to use SCORM A SCORM content developer should not be make the content lightweight and delegate the concerned about how the runtime environment heavy lifting to the shared environments. is built. The LMS vendor or developer will For example, the runtime environment must provide the runtime environment. The SCORM exchange data with the LMS across the network was designed to put most of the complexity or the Internet, which requires complicated burden on the runtime environment. This means protocols, careful timing, and advanced error that there are few requirements on the content. management. On the other hand, all a SCO has The assumption is that there will be many more to do is make simple JavaScript calls to the pieces of content than there will be runtime runtime environment to get or send data. environments. Therefore it makes sense to SCORM content and objective tracking SCORM 2004 enables tracking of status for The identifiers for objectives specified in learning objectives associated with the content, SCORM compliant content could match the using globally unique identifiers. A LMS may identifiers of such competency definitions. This use this data according to policies that are would in turn allow the LMS to record the outside the scope of the SCORM. For example, success of a particular learner in mastering the this data could be used for various learning objective described by a particular reusable management purposes, possibly in connection competency definition. This information could with reusable competency definitions. The IMS then be used again later if the learner attempts RDCEO (Reusable Definition of Competency another learning activity that involves the same or Educational Objective) specification objective, to provide a personalized learning describes how to create reusable competency experience. definitions. This specification is the base for the SCORM 2004 sequencing can also use the IEEE P1484.20 Reusable Competency objective status information to control Definitions standard project. sequencing rules. This means that a LMS could Basically, a reusable competency definition preset the status information for objectives describes the part of competency data that can referenced in SCORM sequencing rules, based be reused for more than one learner and more on prior experience of the learner, to than one context. This can just be a summary personalize the sequencing. For example, a title, for example, quot;knows how to tie a learner might be allowed to skip topics already shoelacequot;, or it may be a very detailed mastered in a completely different course. Note specification for a skill, knowledge or ability, or that the setting and use of objective status for a learning objective that corresponds to a information is not currently defined in the skill or specific knowledge. Whatever the SCORM beyond the scope of what happens content of a reusable definition is, its unique during the delivery of SCORM packages. identifier can be used to reference it. For Therefore whether and how it is implemented example, metadata for a learning object can will vary from LMS to LMS. This is however include the identifier of a reusable competency an exciting potential opportunity that leverages definition that describes the intended learning the standard features of the SCORM. outcome for the learning object. 10
  • 15. Chapter 4 - Anatomy of a SCORM package Overview A SCORM package is basically a collection of Where in the SCORM? files, with a manifest that describes how the The SCORM Content Aggregation Model (CAM) files fit together and how to deliver them, and document defines the components of a SCORM with metadata that can be used to describe the package. The SCORM Conformance Requirements package in a catalog. document specifies in detail how to verify that a package is conformant. Directory structure The files in a SCORM packages must all be in a the directory structure of the original package. directory structure under a single root directory. However, the root may be anywhere within a Nothing prevents a content developer from physical or virtual file system. This means, of putting all the files in the same directory. course, that any links to other files within the Otherwise, the directory structure may be package must be relative. For example, a link arbitrarily deep, and it can be constructed in any like <img src=quot;/pictures/img1.gifquot;> in way a content developer desires. a web page will not work, because the root directory for the package will almost certainly When the content is deployed for delivery on a not be the root of the web site's virtual path web site, the files are placed in a physical or structure. virtual directory structure that exactly mirrors Manifest The manifest is a file that resides in the root The name of the manifest file is always directory of the package's directory structure. “imsmanifest.xml”. The manifest is an XML file that contains metadata about the package, organization structures that describe the structure of the content, and an inventory of the content resources in the package. To allow verification that the manifest file is valid according to the schemas defined by SCORM, copies of the standard XML schema files must also be included in the root directory of the package. These copies may not be modified. Metadata The first element inside a SCORM manifest is The manifest metadata element includes named quot;metadataquot;. Metadata means quot;data about metadata that identify the manifest as a content dataquot; – in this case data about the manifest packaging manifest built to conform for itself and about the package. SCORM 2004. It should also include
  • 16. In the Eye of the SCORM descriptive and administrative metadata In order to enable systematic cataloguing and according that conform to the IEEE Standard discovery of SCORM packages, the SCORM 1484.12.1 for Content object Metadata. requires that some specific metadata elements be provided, such as title, rights, and so on. For convenience, the SCORM allows the IEEE These elements are specified and described in conformant metadata to be provided as a detail the SCORM Content Aggregation Model separate XML file rather than included in the book. manifest itself. In that case, the metadata element contains a reference to that other file Sometimes, it is desirable to document some rather than the actual metadata. aspects of various components of the package. To allow this, metadata can also be included When a package is imported into a LMS or with many of the other elements in an XML other repository, some cataloguing information manifest. This is however strictly optional, and must be provided to find the package in the one should weigh the advantages of fully repository. This can be automated for a documenting every part of the manifest with SCORM compliant package. The importing metadata against the resulting file size. system can inspect the manifest and mine the metadata for the needed cataloguing information. Organizations The manifest in a package intended for delivery table of content. The title may also be used in must contain some prescriptive information as other places, like reports that show the status of to how to deliver the content of the package for the activity. active use by a user. At a minimum, a user must Each activity in the tree is either the quot;parent be able to browse the content, and this normally activityquot; in a cluster of sub-activities, or a leaf requires some information about how the activity with no children. content objects in the package are organized. Leaf activities reference a content object which The manifest must contain at least one is used when the activity is started. When the organization element. The organization contains package is delivered to a user and the user one or more activities that can be nested to any chooses to quot;runquot; a leaf activity, the depth as sub-activities. This tree of activities corresponding content object is launched. A represents the structure of the content, as the leaf activity may reference only a single content package author intends it to be delivered. object. Some parameters to be passed to the Each activity has a title. The title will typically content object can also be specified for the be used if the package structure is shown in a activity. Resources A manifest contains a list of resource elements. The URL specifies which one to launch, and Each resource element describes a content may also contain some launch parameters. object. Typically, a resource element contains a A quot;non-launchablequot; resource is just a container list of one or more files required to deliver the for a list of shared files used by one or more resource. A SCO is always represented by such other resources. Since it will never be launched, a resource element. it has no URL attribute. The leaf activities in an Resources are either quot;launchablequot; or not. A organization may only reference launchable launchable resource has an attribute named resources. quot;hrefquot; whose value is a URL. This URL is The SCORM defines are two types of used to launch the content object. For example, launchable resources: SCO or asset. A SCO is a resource may contain several HTML files. a content object that will use the SCORM API 12
  • 17. Chapter 4 - Anatomy of a SCORM package to interact with the runtime environment when Different activities that reference the same SCO it is launched and while it is running. An asset may have different parameters that will be is a content object that will not use the SCORM passed to the SCO when it is launched on API but that can still be used for an activity. For behalf of those items. For example, one activity example, it might be a text document or an might use a SCO, telling it to use one level of image. difficulty, while another activity might use the same SCO, but specify a different level of A resource is launched when an activity that difficulty. references that resource is started. Multiple activities can reference the same resource. Sequencing rules The author of a package may add sequencing by a check on learning. These different rules to the activity organization. This is behaviors within the same lesson can be entirely optional. If no rules are specified, there implemented as sub-activities within the lesson, is a default sequencing behavior, which is that and each of those sub-activities may in turn the user gets to choose any activity at will. specify whether and how to sequence its sub- activities. Sequencing will be described in more If sequencing rules are defined, the package detail in a later chapter. should only be delivered in a runtime environment that supports SCORM sequencing Where in the SCORM? and navigation. If no sequencing rules are The SCORM Content Aggregation Model (CAM) defined, the package can be delivered as document only specifies how the resources are intended in any runtime environment that does aggregated with one or more activity trees. not implement SCORM sequencing and The SCORM Runtime Environment (RTE) navigation, but that allows the user to choose document defines how a content object is launched, any activity at will. and how it can communicate tracking data to the runtime environment. When a SCO is launched, it typically provides tracking data. The tracking data can in turn The SCORM Sequencing and Navigation (SN) influence the result of sequencing rules. For document defines which sequencing rules can be example, a passing score for a SCO may result added, and the behaviors that should occur at in skipping some other activity. runtime when sequencing rules exist in the package. The rules are associated with individual The SCORM Conformance Requirements document spells out in detail how to conform to the activities, at any level of the activity tree. specifications defined in the other documents. Sometimes, a quot;cluster activityquot; is created just for the purpose of defining sequencing rules for Errata documents are published occasionally a part of the content. For example, a lesson may between updates of the main SCORM documents. contain a fixed sequence, followed by an exploration phase in which the learner may choose between a variety of activities, followed Sub-manifests Sometimes a package can become so complex There are currently some serious open issues that it is useful to break the manifest into regarding sub-manifests, and the ADL smaller parts. Or sometimes it is necessary to Technical Working Group decided in August aggregate several packages into a larger 2005 that use of sub-manifests should be package, but it is not practical to analyze all the avoided until those issues are resolved by the components of each package to create the ADL technical team. In the meantime, this brief optimal manifest. In other cases, a chunk of introduction may be helpful since you will activity tree may be reused in more than one encounter the topic of sub-manifests when you read the specification documents. 13
  • 18. In the Eye of the SCORM place in a larger activity tree. This is where sub- has its own metadata, at least one organization, manifests come in handy. and a collection of resources. A sub manifest is basically a manifest included Instead of referencing a resource, an activity in another package manifest. It describes a may reference a sub-manifest. The activity tree quot;package within a packagequot;. Each sub-manifest is then extended into the activity tree defined by the default organization in the sub-manifest. 14
  • 19. Chapter 4 - Anatomy of a SCORM package Shared resources Sharing resources within a package directory structure. The SCORM also does not address the unavoidable security and version The content package manifest model provides control issues that may arise with content assets an efficient way to share content resources shared between packages that may be installed within the same package. For example, the at different times and come from different same script or graphic may be used by several sources. For example, a change to a shared content objects described by manifest script may break some dependent packages resources. unless validation and testing processes and policies are in place; this is far beyond the Sharing resources between packages scope of SCORM at this time. However, at present the SCORM does not support sharing of resources between packages. A first step in the direction of addressing this For example, it is sometimes desirable to use issue is the ADL CORDRA project, which the same script file or company logo file by defines an architecture that uses a system of reference in all the packages produced by a abstract handles to identify objects registered in particular publisher. There is at present no repositories. A side benefit of this project is that interoperable way to share such a file between it will allow the use of handles instead of URLs packages, because the SCORM does not specify in content asset references. When a resolution how repositories should function. In particular, mechanism is provided, the handle can be the SCORM does not specify where the files for dynamically translated to the URL to use to a content package should be installed in a access the asset. For example, in an offline or repository. For example, a repository may firewall protection scenario the handle might be typically use a physical or virtual directory translated to a URL into a local repository, structure and security policies that make it while in other scenario the handle is translated illegal for content in a package to access to the URL for the closest Internet location of anything outside the scope of the package's own the content asset, wherever this may be. 15
  • 20. In the Eye of the SCORM Summary of SCORM package dos and don'ts What a SCORM package must contain What a content package manifest may not contain • A manifest that inventories the content of the • References to anything in a directory quot;abovequot; package and specifies how the content is the root directory structure of the content of organized. the package. • Metadata, if not included inline in the manifest. What the files in a content package are not • All the files required to launch the content of allowed to contain the package. • References to anything in a directory quot;abovequot; the root directory structure of the content of What a content package manifest must the package. contain • Downloadable runtime components for which • Metadata describing the package. an installation that requires administrative • At least one organization element that rights is required. specified an activity tree for the use of the content of the package. What a content package manifest should not contain • A collection of one or more resource elements that specify launchable content • References to a file or other asset identified objects. Each resource contains an inventory by a fully qualified URL (domain + path), of the files in the package that are required to since there is no guarantee that such a file or launch and run the resource. resource will be available at the time of package delivery. What a content package manifest may also • References to a file or resource that requires contain an active web server component, such as .asp, • Resource elements that specify additional .jsp or .php web pages, since there is no resources files shared by one or more other guarantee that the corresponding active server resource elements component will be available on the web • Additional metadata for any component that server or file system used to deliver the is intended to be extracted from the package content package. for use separately from this package or What the files in content package manifest inclusion in another package. should not contain • Sub-manifests representing sub-packages • References to a file or resource identified by embedded in the package a fully qualified URL (domain + path). • Sequencing rules and information specified • References to a file or resource that requires for the activity tree represented by an an active web server component, such as .asp, organization element. .jsp or .php web pages. What a content package manifest may not Packages that depend on external content or an contain external server are, by definition, brittle. They will not work in an offline environment or behind some • References to anything in a directory quot;abovequot; strictly configured firewalls. See also the note about the root directory structure of the content of server-dependent SCOs on the next page. the package. . 16
  • 21. Chapter 5 - Understanding SCOs What is a SCO? A Shareable Content Object, or SCO, is a that environment, like help or collaboration special kind of content object that knows how features. to communicate with the runtime environment Context is king, the SCO is only content in which it is launched. In the SCORM, the context rules and SCOs are A SCO is web content, meaning that it can be used at will. In other words, the runtime launched in a web browser by using a URL. It environment decides whether and how to may consist of a single HTML page, or it may launch a SCO, and SCOs have no say in the be a large collection of web pages and include matter. What drives the learning environment is simulations, Flash assets, or other media rich typically a larger instructional or performance content. A SCO is basically a small portable support context. This may require some web site that can be copied from place to place conceptual adjustment for some content by gathering all its files and capturing them in a designers who are not used to build highly SCORM package. To be portable, a SCO must modular content that is driven by a single be compatible with any generic web server. In unified design. The SCORM was designed to other words, it cannot depend on special favor the requirements of the new paradigms services that might exist on one web server but for advanced learning, in which the context is not on another. what matters, and content is only a tool used in There has been some talk about SCOs that would learning activities. not be fully portable. For example, some forms of learning experience, dynamic content or simulations How reusable are SCOs? may require specific advanced server functionality In practice, SCOs are more or less reusable, that goes beyond what a generic web server depending on the design of the SCO. Some provides. However, there is currently no standard SCOs are designed to be usable in any context. that specifies how to package, transport and install Others make sense only in a particular context. such content across servers or technology platforms. Not all SCOs can be aggregated into arbitrary Therefore, such server-dependent SCOs are not packages, and some SCOs separated from a SCORM conformant today. SCORM content should package that provides their context may not be be compatible with any web server, and also run in useful. In any case, however, all SCOs use the an offline environment without requiring the same interface and launch method and can thus installation and configuration of a web server. be shared without modification among learning The SCO must be designed so that it can be management systems regardless of the learning launched in a standalone web window, or in a management system implementation. frame in a HTML frameset. Many SCORM runtime environments launch SCOs in a The quot;ransom letterquot; controversy frameset, with other frames containing user Many instructional designers and other interface elements of the runtime environment. SCORM stakeholders have expressed concern Typically, if there is more than one content about what they perceive as a problem of visual object available through the activity tree, the continuity. The argument goes like this: If learning environment will show the activity tree SCOs are assembled from various sources, they in the form of an outline. The runtime may have vastly different look and feel, like a environment may also display user interface ransom letter, and that does not look good. elements for value-added features specific to
  • 22. In the Eye of the SCORM It is indeed possible to achieve this visually As of now, however, the SCORM contains no jarring effect. However it may not be as serious provision to enforce such a policy. There is also as it seems. For one thing, one should not no provision to allow content to control the confuse functional continuity and visual look and feel across SCOs or between SCOs continuity. It is important to provide consistent and the runtime environment. or at least predictable user interfaces, but that SCORM 2004 does however specify some does not mean they have to look the same. For means for SCOs to display their own navigation another, most people today are successfully controls and request that the runtime extracting information and learning from vastly environment turn off the corresponding different content they gather with Google or controls. This is specified in the Navigation other search engines. In fact, many younger section of the Sequencing and Navigation learners, raised on MTV and the short attention document. In the end, though, those are only span culture of television, are probably more requests and the runtime environment will turned off and bored by visual continuity than decide what to show and how. by interesting clashes of look and feel. In the end, what really matters is that the active process of learning takes place, not which color or font is used. The time may have come to do away with the confusion between good instructional design and good graphic design. This being said, there are cases where visual continuity is important, for reasons of enterprise politics, or because of specific characteristics of the audience. Nothing prevents a content developer or a community of practice from agreeing on design policies, style sheets and templates to ensure that all the SCOs they will deploy have a consistent look and feel. What a SCO does As far as the SCORM is concerned, a SCO is See below for a more detailed list of dos and not required to do much. At a minimum, don'ts. though, it must communicate with the runtime The more advanced authoring tools for environment once it has been launched. SCORM content hide the underlying code a Except for this basic communication SCO use for communication completely, so that requirement, the SCO developer can do an author never needs to see any of it. Other anything he or she likes as long as it the tools may include templates that encapsulate behavior is self-contained in the SCO. For the necessary code. example, links to other SCOs are not allowed. 18
  • 23. Chapter 5 - Understanding SCOs Communicating with the runtime environment The IEEE communication API SCORM communication between a SCO and and return values must be strings or represented the runtime environment is an implementation as strings, because otherwise there may be of an international standard, IEEE 1484.11.2: compatibility issues with the binary ECMAScript API for Content to Runtime representations for data types. The SCORM Services. documents refer to this API object as an API instance, to reinforce the idea that this object The runtime environment must make an must be instantiated as a DOM element in the ECMAScript-compatible API object available context of the browser. Once a SCO discovers in the DOM (Document Object Model) context the API instance through the DOM, it must use of the browser before it launches the SCO. The the same instance for any subsequent API calls SCO must then look for an instance of this API within the same session. object, by searching frames and windows in a very specific order defined by the IEEE ECMAScript is the ISO standard born from standard. Once the SCO has found the object, it earlier versions of Netscape's JavaScript and calls functions of the object to start a Microsoft's JScript. Many people still use the communication session with that object. term quot;JavaScriptquot; to mean ECMAScript as implemented in the current mainstream Neither the standard nor SCORM specify that browsers, such as the Mozilla based browsers any particular technology, such as JavaScript, and Microsoft's Internet Explorer. Java, etc. must be used to implement the API object. The only requirement is that the object must be compatible with any ECMAScript implementation. For this reason, all parameters Managing the communication session The SCO must initialize a communication the SCO, or the learner might close the browser session by calling the corresponding function of window. the API instance to open a communication It is still the responsibility of the SCO to session. Once the session has been successfully manage the communication session properly in initialized, the SCO can get and set data this case. Typically, a SCO developer defines a through corresponding functions of the API handler for the onunload browser event to do instance. Finally, the SCO must terminate the this. When the SCO is running in Internet communication session by calling the Explorer (IE) or Mozilla FireFox, a more robust corresponding function. way to handle an unexpected unloading can be Only one communication session is allowed for to define a handler for the onbeforeunload every launch of the SCO by the runtime browser event. Both Internet Explorer and environment. If a SCO tries to initialize a new Mozilla FireFox trigger onbeforeunload communication session after terminating the before it actually begins to unload the web page session, this will cause an error. and its associated resources and scripts. Unfortunately some other features of the SCO Managing unexpected unloading such as may trigger onbeforeunload Frequently, a SCO is unloaded before running prematurely and therefore onbeforeunload its course to a point where it would normally must be used with caution. terminate the communication session. For The handler for the unexpected unloading must example, the learner might choose another attempt to send any unsaved tracking data to the activity, which causes premature termination of runtime environment by using the SetValue 19
  • 24. In the Eye of the SCORM function of the API instance, and then call the Terminating the communication session Terminate function of the API instance. implicitly invokes Commit. Some SCO developers wait until the end of the Being ready for unexpected unloading has communication session to send and commit all another implication for SCOs. For example, if a their data. However, this may result in a lot of SCO is made of a series of linked web pages, data being transmitted while the page is being and the SCO may be unloaded at any time, unloaded. Worse, if this happens while the every page must be ready to be abnormally browser window is closing, the browser may unloaded at any time and terminate the never finish the operation. It is better to spread communication session. This really requires out the data communication over the duration of some form of state management for the entire the session. For example, it is a good idea to SCO, rather than on a page per page basis. For call Commit after a quot;batchquot; of individual data this reason, a frameset that can maintain state is has been sent to the runtime environment, or if often used to implement SCOs that use multiple some significant data has been sent and it may web pages. be a while before there will be more data. Optimizing bandwidth and reliability with Mitigating catastrophic failure Commit Running an application in a browser is always a The SCORM profile for the IEEE API uses a quot;best effortquot; proposition, because the content lot of function calls to get and set values does not control the browser. For example, the through the API instance, one data element at a user might just shut down the browser. If the time. This works very well in the local SCO design allows it, information necessary to communication between the SCO and the API recover in case of catastrophic failure can also instance, but it is not practical for be sent and committed early in the session and communication across the Internet. For this then after every significant event. For example, reason, the IEEE API also provides a Commit tentative status information may be sent early, function. When the API function is called, it is and updated as the learner progresses through a signal to the runtime environment that the the SCO. Suspend data to allow resumption of data sent by the SCO should be committed to the SCO in a later learner session can also be persistent storage. Many SCORM runtime updated at regular intervals throughout the environments use Commit as a signal to transfer session. a batch of data to the LMS across the Internet. 20
  • 25. Chapter 5 - Understanding SCOs The communication data models The API standard does not specify any prefix, and the second is identified in the particular data model for the data exchanged SCORM dot notation by the quot;adl.nav.quot; during a communication session. It can be used prefix. with any data model, and more than one data The standard data model is defined by the IEEE model may be used in the same communication standard 1484.11.1: Data Model for Content to session. Learning Management System Communication. The SCORM specifies both an IEEE standard The SCORM calls this data model the quot;CMIquot; communication data model and a custom data data model because the standard is mostly model for navigation data. The first is identified compatible with the older AICC CMI data in the SCORM dot notation by the quot;cmi.quot; model used in SCORM 1.2. The CMI data model The IEEE standard for the CMI communication communication session. Or, it may get existing data model specifies data that a content object status information about a content objective for may query from the runtime environment as this particular learner, update the information, well as data that the SCO may send to the and send that to the runtime environment. runtime environment. The CMI data model contains several The SCORM profile of the IEEE standard adds categories of data: some specific requirements. For each data • Status data, about the status of the SCO, element, it specifies whether a SCO may get the including completion and success status. data from the runtime environment by using a • Score data. GetValue API function, send the data to the runtime environment by using a SetValue • Thresholds for passing score, and for how function, or both get and set data. much progress is required for completion • Data about content objectives and their status. One-way data from the runtime environment • Data about various types of interactions and This includes data that a SCO may request their status and learner responses. This can be about how it is being launched, other used for traditional test items as well as for initialization data, and some data about the more complex interactions, such as learner, such as the learner's name. simulations. • Comments One way data from the SCO This includes data used to signal various things • Limited learner information to the runtime environment, such as the time • Some common learner preference items elapsed in the SCO, or whether the SCO • Suspend data and location, which can be used requests to have some data preserved so that it to resume an interrupted session. can resume from a suspended state in a later • Entry and exit status, used to determine how session. the SCO was launched and how the SCO Two-way data believes it is being terminated. This includes most of the data elements defined Note that a SCO is under no obligation to use in the data model. For example, a SCO may every one of those data elements. However, a send a score to the runtime environment, and runtime environment must implement all of get the score back later in the same them, in case a SCO needs to use any of them. 21