Transcript Slide 1

Providing a SCORM service in
an IMS Learning Design player
Paul Sharples
The University of Bolton
IMS Learning Design and ADL Scorm
IMS Learning
Design
ADL Scorm
• Initial work carried out by Open University of the
Netherlands.
• Are there overlaps between the two?
• What are the major differences?
• Can they be used together?
IMS Learning Design
• Can be used to model units of learning
any delimited piece of education or training, such as a course, a module, a lesson, etc
• Can represent the whole learning process
learning activities, problem solving activities, search activities, discussion activities, peer
assessment, collaborative learning etc
• A single specification
is designed to orchestrate learning arrangements – but can be linked to several other e-learning
specifications
• Units of learning are content packages
they contain materials which can be played by software, such as the Coppercore Engine
ADL Scorm
• A reference model
describes a content model and run-time environment for sharable content objects (SCOs)
• Single user driven
The student takes the content with no interaction between either other students or teachers
• Sharable Content Objects must adhere to
the defined API
A SCO must be able to communicate with the LMS by using a defined Application Programming Interface (API)
• Scorm courses are content packages
they contain materials which can be played by software, such as the Reload Scorrm Player
SCORM Shareable Content
Objects: What are they?
• In SCORM (1.2) there was the notion of two
types of content – assets and SCOs
• Assets were vanilla web content
web pages, word docs, flash files etc
• SCOs are different & have to be authored in a
particular way
They need to be able to communicate with the LMS. They need to provide certain calls within the
content to achieve this.
SCORM Sharable Content
Objects: What are they?
• SCOs are typically a web page which will incorporate
some javascripting code
there are other SCOs which use other technologies, such as macromedia flash to talk to the LMS
• The javascript code has the job of talking to the LMS
using the defined Application Programming Interface
(API)
• At runtime, the LMS has to provide what is known as an
APIAdapter to sharable content objects
The SCO needs the APIAdapter so that it can talk to the LMS and enable content tracking. The
tracking values are kept in a SCO data model.
• The APIAdapter allows the SCO to talk to the LMS and
get/set values which can record the progress of the SCO
SCORM Sharable Content
Objects: What are they?
• SCOs have to tell the LMS they are about to
start
they do this by using the APIAdapter and calling LMSInitialise();
• SCOs can set and get values from the LMS
they can get a value using the APIAdapter and calling LMSGet(“value_name”);
they can set a value using the APIAdapter and calling LMSSet(“value_name”,”value_to_set”);
• SCOs must tell the LMS when they are finished
they do this by using the APIAdapter and calling LMSFinish();
SCORM Sharable Content
Objects: What are they?
Some of the values the SCO can access
SCORM 1.2 DATA MODEL ELEMENTS
Data Model element
cmi.core.student_id
cmi.core.student_name
cmi.core.lesson_location
cmi.core.credit
cmi.core.lesson_status
cmi.core.entry
cmi.core.score .raw
cmi.core.total_time
cmi.core.exit
cmi.core.session_time
cmi.suspend_data
cmi.launch_data
Function
Identifies the learner for whom the SCO instance was launched.
Represents the name of the learner.
Represents a location in the SCO.
Indicates if the learner will be credited for performance in the SCO.
Indicates if the learner has completed the SCO.
Contains information to indicate if the learner has previously accessed the SCO.
Identifies the learner's score for the SCO.
Identifies the sum of all the learner's session times accumulated in the current learner attempt
prior to the current learner session.
Indicates how or why the learner left the SCO.
Identifies the learner's session time in the current learner attempt.
Provides information that may be created by a SCO as a result of a learner accessing or
interacting with the SCO.
Provides data specific to a SCO used for initialization.
SCORM Sharable Content
Objects: What are they?
How a Simple SCO might look
SCORM Sharable Content
Objects: What are they?
The source view
<html>
<head>
<script language=javascript src="SCOFunctions.js"></script>
<title>A very simple 1.2 Sharable Content Object</title>
</head>
<body onunload="return LMSSetValue('cmi.core.lesson_status','incomplete')">
<h1>Simple sco</h1>
<p><b>Objectives</b> Please use the links in the tree opposite to find new
content based on your subject area.</p>
Click the "Okay" button to continue
<form>
<table><tr><td>
<input type="button" value="Okay" onClick =
"LMSSetValue('cmi.core.lesson_status','completed');LMSFinish(‘’);" name=ok>
</td></tr></table>
</form>
</body>
</html>
SCORM Sharable Content
Objects: What are they?
A SCO running in the Reload SCORM Player
SCORM Sharable Content
Objects: What are they?
Where the APIAdapter can be found
Some conclusions
IMS Learning Design and ADL Scorm
• Both can be used to guide the development of
educational materials
• Both use a combination of specifications to achieve their
goals
• Both lead to content packages which can be read into
players and used to support learning
How could they integrate?
• Content found within a IMSLD can be in a variety of
formats, including XML, (X)HTML, RTF, PDF etc.
• IMSLD does not prescribe a model to which content
must adhere
but instead focuses on specifying the learning process in terms of which roles perform which
activities, when, and supported by which facilities
• As a result, IMSLD provides a natural slot into which
SCOs can be incorporated
existing SCOs could be reused in this way
• IMSLD was designed with such an integration in mind
it provides a placeholder in the ‘environment’ associated with an activity
Key concepts from IMS Learning Design
IMS Content Package (UoL)
Manifest
Organizations
Learning Design
Learning Activity
Environment
Learning Object
Item
Item
Resources
href=“http://www.ou.nl/”
Resource
Resource
file
The actual file could be a SCO
How could they integrate?
• The SCO is a resource available during the runtime
cycle of a unit of learning
within the environment section of one or more learning activities
• When the SCO is loaded, the LD runtime system must
know how to handle it
Specifically it must provide a SCORM APIAdapter to the SCO when it is loaded
• The SCO should work just as it would in a normal
SCORM aware LMS
it should be able to set/get values
• However, the ability to simply “play” the SCO isn’t really
all that useful by itself.
More integration?
• It would be more useful if the outcome from taking a SCO could
somehow influence the rest of the Learning Design
Depending on which values the SCO updated in the SCORM data model, they could then be
accessed by the unit of learning
• One answer is to create a Level B Learning Design which utilises
properties and conditions
• The properties defined within in the Learning Design could be
named to correspond to values found within the SCO model.
for example we could define a level B property as “cmi.core.score.raw” a value found in the SCO
model
• We are defining a mapping between values that a SCO might
change and IMSLD Level B properties
• The LD runtime system now has an additional job. It must propagate
changes made by the SCO in the SCO model, to the LD engine
Implementing the Software
• Two existing open source tools used as basis for
integration
• 1. Coppercore Learning Design Engine
this includes the engine, default player and CCSI framework
• 2. Reload Scorm 1.2 player
we didn’t have access to an open source SCORM 2004 player we could use. The implementation
would/should have been very similar for SCORM 2004.
• Coppercore Service Integration (CCSI) provides the
framework to allow new services to be integrated into
runtime system
Implementing the Software
• CCSI has the notion of the “dispatcher”
the dispatcher allows separation of software components so that specific functionality can be
accessed as needed at runtime. The dispatcher gets the required service as it is needed.
• Developers write new services which adhere to
CCSI framework
newly written services must conform to a simple set of rules
• The CCSI layer allows one service, such as a
SCORM service, to communicate with another
service, such as the LD Engine service.
Integration of SCOs in LD runtime
The architecture of the major components
LD Engine
(Coppercore)
QTI Engine
(APIS)
Scorm
Engine
(Reload)
Forum
service
Coppercore Service Integration (CCSI)
LD Player
Browser
Search
service
Implementing the Software
Using parts of the existing Reload Scorm Player
Tomcat server
• Consisted of several parts including
a java swing based management interface
• Isolated the engine part concerning
Scorm engine
web
the SCO model.
application
• The SCO model was held in an easy
Desktop client
Browser
written in
to query structure
swing
• This became the basis
for the new service
Implementing the Software
Using parts of the existing Reload Scorm Player
• Original Reload APIAdapter was written as set of objects in
javascript
• A hidden frame sent the SCO values back to the server in a web
form
• The Scorm Engine then processed the values and populated its own
model which could be saved to disk
• The new APIAdapter would use Ajax technology to allow the values
to be passed back to the server without having to have a hidden
frame
Defining a new content type
• In IMSLD there are two types of content by default
- Web Content – normal content, web pages, flash, word docs etc
- IMSLDContent – an XML format which needs to be rendered by the runtime
•
To allow a runtime system to recognise that a IMSLD manifest contains an item which
is of the new type “Sharable Content Object version 1.2”, a new type needed to be
added
•
A new content type of “adl_sco_v1p2” was added within the manifest to refer to a
learning object which is a version 1.2 sharable content object
•
The runtime web player also needed to be updated so that it could recognise this
type and pass the correct service to it as required.
How it works
1.
In the LD Web Player, the user clicks on a link to load a SCO
the link would appear within an environment attached to a learning activity
2.
The LD player realises that the type is “adl_sco_v1p2” and
creates a link to the new SCO 1.2 service
A new SCO data model is initialised with certain values, student name for example
3.
The Web Player takes the model, builds an XML document and
returns this to the browser
The XML fragment also includes the URL of where the SCO file is located
4.
5.
An XSLT stylesheet transforms the XML into javascript calls which
populate the APIAdapter with the new data. The SCO is loaded
into the page within a <DIV> layer
The user takes the SCO
The SCO can access the APIAdapter and sets/gets values
How it works
6.
7.
8.
9.
Once the SCO is finished the updated model is committed back to
the server using an AJAX call
The web player gets the current handle to the SCO 1.2 service
and passes the new model to it.
The SCO 1.2 service can now talk to the LD Engine service.
Each element fo the SCO model is broadcast to the LD Engine
service.
If there is a corresponding IMSLD level B property defined in the
unit of learning, then its values is updated to reflect the changes
the SCO made.
How it works
SCO 1.2 Engine
LD Engine
Coppercore Service Integration (CCSI)
LD Player (servlet)
SCO object
Browser
Client API Adapter
Testing the prototype with a real example
•
•
•
•
•
“playing the guitar” example unit of learning
Six acts. First act contains the SCO found within an environment.
All other content is hidden until user takes the SCO
The SCO has 5 questions. User takes the SCO based test.
Depending on which questions s/he answered correctly, further
learning activities are shown in the following acts.
• Makes use of the show and hide properties for Learning activities as
manipulated by properties & conditions in Level B
Authoring the example
• Reload Learning Design Editor used.
• Stage one was to assemble the content and import into
the editor.
• Stage two was to create all of the learning activities,
learning objects and environments.
• Stage three was to assemble the method. This
consisted of one play and six acts – each containing a
learning activity.
Authoring the example
the method pane
Authoring the example
defining the properties
Authoring the example
defining the conditions
Authoring the example
Changing the resource type to adl_sco_v1p2
Illustrating the example
The student starts the Unit of Learning
Illustrating the example
The student posts the answers
Illustrating the example
New Learning Activities appear
Illustrating the example
The student retakes the test, this time answering all questions correct
Possible Future Work
• Additional service added to support SCORM
2004
the API has been changed slightly between versions
• Service to handle full SCORM packages,
including sequencing, etc. Full SCORM
compliant LMS features implemented as a
service
with SCORM 2004 this would also involve a system to handle IMS Simple
Sequencing