390 likes | 545 Views
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?
E N D
Providing a SCORM service in an IMS Learning Design playerPaul SharplesThe 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 learningany delimited piece of education or training, such as a course, a module, a lesson, etc • Can represent the whole learning processlearning activities, problem solving activities, search activities, discussion activities, peer assessment, collaborative learning etc • A single specificationis 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 modeldescribes a content model and run-time environment for sharable content objects (SCOs) • Single user drivenThe student takes the content with no interaction between either other students or teachers • Sharable Content Objects must adhere to the defined APIA SCO must be able to communicate with the LMS by using a defined Application Programming Interface (API) • Scorm courses are content packagesthey 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 contentweb pages, word docs, flash files etc • SCOs are different & have to be authored in a particular wayThey 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 codethere 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 objectsThe 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 startthey do this by using the APIAdapter and calling LMSInitialise(); • SCOs can set and get values from the LMSthey 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 finishedthey do this by using the APIAdapter and calling LMSFinish();
SCORM Sharable Content Objects: What are they? Some of the values the SCO can accessSCORM 1.2 DATA MODEL ELEMENTS .raw
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 conclusionsIMS 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 incorporatedexisting SCOs could be reused in this way • IMSLD was designed with such an integration in mindit provides a placeholder in the ‘environment’ associated with an activity
Key concepts from IMS Learning Design 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 learningwithin the environment section of one or more learning activities • When the SCO is loaded, the LD runtime system must know how to handle itSpecifically 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 LMSit 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 DesignDepending 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 Enginethis includes the engine, default player and CCSI framework • 2. Reload Scorm 1.2 playerwe 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 frameworknewly 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.
LD Engine (Coppercore) QTI Engine (APIS) Scorm Engine (Reload) Forum service Search service Coppercore Service Integration (CCSI) LD Player Browser Integration of SCOs in LD runtime The architecture of the major components
Tomcat server Scorm engine web application Desktop client written in swing Browser Implementing the Software Using parts of the existing Reload Scorm Player • Consisted of several parts includinga java swing based management interface • Isolated the engine part concerning the SCO model. • The SCO model was held in an easyto query structure • This became the basisfor 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 • 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 • The LD player realises that the type is “adl_sco_v1p2” and creates a link to the new SCO 1.2 serviceA new SCO data model is initialised with certain values, student name for example • The Web Player takes the model, builds an XML document and returns this to the browserThe XML fragment also includes the URL of where the SCO file is located • 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 SCOThe SCO can access the APIAdapter and sets/gets values
How it works • 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) Browser SCO object 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 exampleChanging the resource type to adl_sco_v1p2
Illustrating the exampleThe student starts the Unit of Learning
Illustrating the exampleThe student retakes the test, this time answering all questions correct
Possible Future Work • Additional service added to support SCORM 2004the API has been changed slightly between versions • Service to handle full SCORM packages, including sequencing, etc. Full SCORM compliant LMS features implemented as a servicewith SCORM 2004 this would also involve a system to handle IMS Simple Sequencing