Home

SCORM Users Guide for Programmers

image

Contents

1. var result api Terminate if result toString true var err ErrorHandler message Terminate failed with error code err code initialized false return result toString KKK IK Kk kc k kc k kc k kc kckckckckckck kc kckck kckckck kc kckck kc kckckckckckck kc I I I Ik kxk Function doGetValue name Inputs name string representing the cmi data model defined category or AUR element e g cmi learner id Return The value presently assigned by the LMS to the cmi data model SES lement defined by the element or category identified by the name m input value kk Description Wraps the call to the GetValue method kk kk ck kk kk kk ck ck ck kk kk kk ck kk kk kk kk kk KK kk ck kk ck KK ck kk kk ok kk kk ck kk Sk kk kk ck kk Sk kk kk ko ko kv kv ko KKK ko ko function doGetValue name var api getAPIHandle var result if api null message Unable to locate the LMS s API Implementation nGetValue was not successful else if linitialized amp amp doInitialize var err ErrorHandler message GetValue failed Could not initialize communication with the LMS error code err code else result api GetValue name var error ErrorHandler if error code NoError code an error was encountered so display the error description message GetValue tnamet failed n err
2. Description Commits the data to the LMS kk kkxkxkxkxkxkxkxkxkxkxkxkxkxkxkkxkxkkxkxkxkxkkkxkxkkxkkkxkxkxkxkkxkxkkxkxkxkkkkxkxkkxkxkkkxkxkxkkkxkkkxkkkkkxkxkkxkxkkxkxkkkkx xx k function doCommit var api getAPIHandle var result false if api null message Unable to locate the LMS s API Implementation nCommit was not successful else if linitialized amp amp doInitialize var error ErrorHandler 95 SCORM Best Practices Guide for Programmers SCORM 2004 API Wrapper message Commit failed Could not initialize communication with the LMS error code error code else result api Commit if result true var err ErrorHandler message Commit failed error code err code return result toString RR KK HK IK I kk kk AA Kk hok AAA AA A A AAA ke kk A kk kk I kk kk kk k kk Function doGetLastError Inputs None Return The error code that was set by the last LMS function call Kk Description Call the GetLastError function kk kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk function doGetLastError var api getAPIHandle if api null message Unable to locate the LMS s API Implementation nGetLastError was not successful since we can t get the error code from the LMS return a general error return GeneralException code
3. 4 Understanding the SCORM AP ttt tnnt tta tantae e aa tae aa a teat 4 1 Introductionis eain LE V M M eee ee 4 2 API Wrapper JavaScript file 4 3 Initialization and Termination EM Data Mod l e M 26 5 1 When to Im plement E 26 5 2 Exampl6S niti tret EHE ee 27 Eduard 29 6 Status and Scoring Sms esi oM E 6 2 How to Jurte eege Sequencing amp Navigation ELE VALEO Tat MEss KEN Ale geleet e et WE 7 2 When to Implement TS E 7 4 How to Implement 7 5 Related Information Bui 8 1 Introduction AD Cuni 98 3 Whehfito Implement erattu tied eee a a aT acd ete bet Ent iuberet bebe eed octet ele a E ee dae sreeede 39 8 4 How to ae E 40 9 SEQUENCING kas E 9 1 Introductio Ts assed E Dm ut O CEEE AE A a ene ale E I LEA ee 9 3 When to Implement 9 4 How to Implement cae Mee e Mella em Mada eus A ee 9 5 Pre Condition Rules REEGELE 47 9 7 Additional Sequencing Elements essent ntn tnter tnnn ttn tte nitent tenant tt tatto tte nnana 48 10 Tracking across SCOs using Global Objectives EEN 50 10 1 Sequencing Objectives eterni keier ees eser edo ca die eec pda 50 10 2 Examples 10 3 When to Implement 10 4 How to Implement eg C a
4. doSetValue cmi exit suspend doTerminate At this point you will need to provide the learner with an option to choose another activity Typically when the learner needs to suspend for a period of time control should be returned to the LMS This is accomplished through a Suspend All navigation request see code within the content doSetValue cmi exit suspend doSetValue adl nav request suspendAll doTerminate 14 3 Learner Option In some cases you will want to give the learner the option to use the bookmark to resume or to start the activity over from the beginning Figure 14 1 shows an example of how you may prompt the learner when resuming a suspended SCO 71 SCORM Best Practices Guide for Programmers Cookbook Bookmarking Study Aids Glossary Progress Back Next Search Help Close Introduction Before you begin read Resume presentation k puter to view the instructional material Would you like to resume your presentation where you left off Using Our System ves We If you are already familiar with Defense Ammunition Center web based training you can skip these explanations and proceed Figure 14 1 Example Use of cmi location Data Model Element in a SCO SCORM Best Practices Guide for Programmers Cookbook Prerequisites 15 1 Background A very common design pattern is that of a prerequisite This is where the availability of one activity is dependent on some ext
5. return api GetLastError toString ORR KK KKK Kk kk I A AK A A A AA A AAA kk kk kk kk kk kk kk kk kk ek kk kk k kk Function doGetErrorString errorcode Inputs errorcode Error Code Return The textual description that corresponds to the input error code kk Description Call the GetErrorString function kk kkkkkkkkkkkkkkkkkkkkkkkkkkkkkk kk kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk e function doGetErrorString errorcode var api getAPIHandle if api null message Unable to locate the LMS s API Implementation nGetErrorString was not successful return GeneralException string return api GetErrorString errorCode toString 96 SCORM Best Practices Guide for Programmers SCORM 2004 API Wrapper KK kk kk kCkCkCk kk kk kk kk kCkCkCkCkck kc k kc k kc k kc kckckckck kk kckckck kckckckckckckckckckckck kc kck ck kc kckckckckokckokckok kok kokekok kk Function doGetDiagnostic errorcode Inputs errorCode Error Code integer format or null Return The vendor specific textual description that corresponds to the SES input error code Kk Description Call the LMSGetDiagnostic function kk kkkkxkxkxkxkxkxkxkkkxkxkkkkxkkkxkkkkkkxkkkkkkxkkxkkkkkkxkkkkkkxkkkkkkkkkkkkkkxkkkkkkkkkkkkkkkkxkxk function doGetDiagnostic errorcode var api getAPIHandle if api null message Unable to locate the LMS s API Implementation nGet
6. could refer to an Organizational Structure An Activity Tree represents the data structure that an LMS implements to reflect the hierarchical internal representation of the defined learning activities Content Package a PIF or zip file that contains the course content Organizational Structure Activity Tree Organization Course content all assets LOs branching structure for a course Content Package None Content Aggregation represents the Content Aggregation is a nested collection of content and its structure structure A content package represented within a Content Package might have 1 or 100 aggregations Branching Sequencing not internal branching Sequencing within a SCO Scoring Objective NOTE this is not related to Objective the ISD term Learning Objective Branching instructions to the programmer flowcharts Learner interactivity data any interactions with content usually used for assessment data Rollup and Sequencing rules not internal branching within a SCO Interactions Rollup and Sequencing rules Interaction Data cmi interactions see the SCORM Best Practices Guide for Programmers Course Structure amp Organization Introduction Course Structure amp Organization This section addresses the most basic elements of a SCORM course In its simplest definition a SCORM 2004 course consists of web deliverable assets bundled into a SCORM 2004 4 Edition Content Package see CAM 3 1 7 This
7. gt lt imsss primaryObjective gt lt imsss objectives gt lt imsss sequencing gt In our example we have taken a seventeen line segment of XML and reduced it to seven lines Doesn t seem like much but this was a simple example and it adds up the more times it s repeated If you have ten SCOs like this the savings is 100 lines But the bigger win is that there is now only one place to edit to alter the behavior across the course There is much less room for mistakes 86 SCORM Best Practices Guide for Programmers Glossary of SCORM Terminology Glossary of SCORM Terminology Accessible Accessible content can be loaded and accessed when needed to meet training and education requirements Adaptable Adaptable content can be customized for individual learners and organizations as needed Advanced Distributed Learning ADL An evolving outcomes focused approach to education training and performance support that blends standards based distributed learning models emphasizing reusable content objects content and learning management systems performance support systems devices web applications services and connectivity Advanced Distributed Learning Registry ADL R The ADL Registry is the Department of Defense DOD central registry for content repositories and SCORM content packages The ADL Registry portal at http adlregistry adlnet gov is where DoD affiliated persons as instructed by DoDI 1322 26 submi
8. i e Do you want to start where e The learner s language presentation or other preferences 26 SCORM Best Practices Guide for Programmers LMS Management amp Communication CMI Data Model You may also want to store information in the LMS such as the learner s e Score e Total time spent in a SCO e Time spent in a single session ofa SCO e Completion status e Responses to assessment items e Interactions within a SCO e Pass fail status 5 2 Examples Table 5 1 provides a description and application of the most common SCORM data model elements using the simple name and the cmi name See CAM 4 1 or the section that description of the data model and list of elements with their allowed value formats Table 5 1 Common SCORM Data Model Elements Data Model Element with cmi Name Description Application Technical Data Entry Indicates whether the learner has When learners enter a SCO for the first mieni previously accessed the SCO so the run time the element is set to ab initio If the d time environment will know if data for the learner is re entering a suspended SCO exists or not This value is initialized session the element is set to resume by the LMS and is read only Launch Data Provides data specific to a SCO that the Allows SCOs to be configured with data cmi launch data SCO can use for initialization This value from the LMS at the time of launch This ies is initialized by the LMS using the
9. Best Practices Guide for Programmers Cookbook Assessments Here is an example of a multiple choice question and how to represent it using interactions Which of the following cities is in Texas A Los Angeles B Santa Fe C Austin D New York City Using interactions the following code is required to be implemented in the SCO Find an array index to use for the new interaction This is done by checking how many exist and using that as the next available index in the array var numInts doGetValue cmi interactions count Create the new one The id must be a valid Uniform Resource Identifier URI In general it is a short string no spaces that can be used to identify the interaction in an external list A list of all the interaction elements and their types can be found in RTE table 4 2 9a var id example question 1 doSetValue cmi interactions numInts id id Set the type of interaction The options include true false choice fill in long fill in likert matching performance sequencing numeric other see RTE table 4 2 9a doSetValue cmi interactions numInts type choice description is typically the question asked or task description doSetValue cmi interactions numInts description Which of the following cities are in Texas The correct responses array contains a list of possible correct answers
10. Content Examples esee tnnt ntn tnn ttti tnnt tenti 68 COOKDOOK iieis aD TERM 70 VEU isdmm E EE EE EES EE 70 IE NNICIS ignc M 70 E ee Mie T 70 14 3 GE ATMST O pti OM c 71 RE E 73 15 1 Background seo etn eh een M rhe LE LM iu ae et ite 73 15 2 How to Implement ee ehe ettet etel at AU eL 73 UE CHITI uum w R S S SXSX piai EOM bet acrofa D Cera o EPOR MM MMC 16 2 When to Implement WW EE 16 3 Examples emgeet 164 vaeguigsusiee e anaa 2 The Mentee 81 17 1 Background iveeccaccvas acca eee ia ies ee ne een nee 81 17 2 How tolemplement eieiei aanraai kadetid iaaa acinus chnocadecbeettediteeeatpuensstsesageciyectiel 81 17 3 Create a SCO that Contains a Nice Menu nn 82 17 4 Impacton Reuse 323r eh A A nd cer ded deed eere conl ra dec ndi et tennis 84 18 Sequencing Collections 4 RE Ree e c e eh e tee 85 18 EE 85 18 2 How to Implement E 85 Glossary of SCORM Terminology sssssssssccscssssssseseeessesessssscscensessssesscsnenenenenenssaseeneeseseasataneneneeesesecessaenenenessessaeneeesesesnanas 87 SCORM P mLLVYAucITS X 91 SCORM Best Practices Guide for P
11. Content Package is a zip file which provides a standardized interoperable way for you to exchange digital resources among different learning management systems LMSs content repositories and operating systems 2 1 Anatomy of a SCORM Course Figure 2 1 depicts SCORM content components from smallest assets to largest curricula each component is described individually The colors you see here for each component are used throughout this Guide to help you quickly identify the types of components Assets are blue sharable content objects SCOs are gold aggregations are green and organizations and root aggregations are red Curricula are shown here in gray and red but they may be comprised of other learning activities and are outside the scope of SCORM Asset SCO Aggregation Organization Curriculum Figure 2 1 Components of SCORM Content 2 The Content Aggregation Model is one of the SCORM Books The whole suite of books CAM SN amp RTE is available for download under Documentation at http www adlnet gov capabilities scorm tab learn SCORM Best Practices Guide for Programmers Course Structure amp Organization Introduction 2 2 Asset html ov RADIOACTIVE Never load transport or store Class 7 and Class 1 1 materials in the same transport vehicle or storage facility during the course of transportation Assets are electronic representations of media text images sounds HTML pages assessm
12. Each correct answer has a pattern specific to the type defined above These patterns are defined in RTE table 4 2 9a The simplest example is shown below A multiple choice response with a single correct answer doSetValue cmi interactions numInts correct_responses 0 pattern Austin When the learner submits their answer you the programmer must capture this response and store it in the learner response field of the interaction doSetValue cmi interactions numInts learner response SantaFe An interaction also stores the result The values may be correct incorrect unanticipated neutral or a real number The programming logic of the SCO will determine the result of the learner s answer and store it here doSetValue cmi interactions numInts result incorrect This example is then repeated for each tested item in the assessment 79 SCORM Best Practices Guide for Programmers Cookbook Assessments 80 SCORM Best Practices Guide for Programmers Cookbook The Menu SCO 17 1 Background methods for the learner to navigate the activity tree of a course The Table of Contents is a requirement of SCORM and is useful in many situations However it s not customizable and has a few notable shortcomings e Control Modes are not dynamic You can set an aggregation to use Control Mode choice or not This can t be changed dynamically af
13. Programmers Resources Tools amp Development Support ADL SCORM Resources Overview Resources Tools amp Development Support 13 ADL SCORM Resources Overview 13 1 Background ADL does not provide or recommend tools to build content However there are a few ADL applications and documents that can assist in the development process Located at http www adlnet gov capabilities scorm tab learn they are SCORM 2004 4th Edition Document Suite CAM SN amp RTE SCORM Books SCORM 2004 4th Edition Sample Run Time Environment SRTE SCORM 2004 4th Edition Test Suite TS ADL SCORM 2004 4th Edition Content Examples 13 2 SCORM 2004 4th Edition Document Suite 13 2 1 Background The official documentation of SCORM can be found in three books They are commonly called The SCORM Books These books contain detailed information about the specifications included in SCORM Here we will break them down so you know where to go for what information 13 2 2 Content Aggregation Model CAM Book The introduction of the CAM book see CAM 1 1 says In plain English this book contains information that describes High level information on content packaging and organization Specific details on the syntax of the Manifest File An overview of Metadata including Learning Object Metadata LOM details Best Practices and Practical Guidelines 65 SCORM Best Practices Guide for Programmers Resources Tools amp Development Support ADL SCO
14. ai 10 5 Local vs Shared Global Objectives eeeeen tenentes tnn ttt ttt nita ttti ttn tto tte tite ss sss antt 10 6 Defining Objectives in the Manifest ENEE 10 7 Understanding Mappings 10 8 SCORM 2004 4 Edition Extended Global Objective Information 10 9 Accessing Objectives in the Content ENEE I1 Rollups c t EE OT RC E o o et b t em t 3b BUS bor EPO CU CUI OM ERA EC lee E ETT T1 3 When e Bea UE TEE 11 4 How to Implement 11 5 Rollups vs Global Objectives 12 Exiting SCOS and Courses e eie ir eter rodeo pes EES 59 12 L eios ie 59 ID AD cuILtPE T M 59 J Exiting th SCO c 59 12 4 eler 60 12 5 When ito Implement wicket ehe bt dett M eb e M LED eet uud 62 12 6 How to Implement eee cte dee e tameii ee eM 62 Resources Tools amp Development Support eee eese eene te thtrntntntntn tata tat enin sRnEnE sa sE sa sa sa Pasa annnm nna 65 13 ADL SCORM Resources OVerview rtt treinta EES EES 65 13 1 Background s s cc eee dees an ein cdg gee dine a en daniel dine ainda iea Aa AEn a ia da Aayee fathidan 65 13 2 SCORM 2004 4th Edition Document Suite ENEE EEN tenentis 65 13 3 SCORM 2004 4th Edition Sample Run Time Environment SRTE eene 66 13 4 SCORM 2004 4th Edition Test Suite TS eese EEN tenentis 67 13 5 ADL SCORM 2004 4th Edition
15. ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ok ck ck ck ck ock ck ck ck ok ok ck ck ck ko Sk ko ko ko ko koX function message str if debug output log str 101 SCORM Best Practices Guide for Programmers Index Index BELIVIDV DEED irasci tmt eee 19 AG OPCS AON E 13 ADOT CO AUONS eebe 10 API Wrapper eege 21 24 29 54 91 EECH TE CN 77 E 10 authoring tools ac ottiene 17 bookmarking 59 68 70 LO ene re aes 43 CAM book eee 65 oileivv ER 35 E EEN 13 CM HE 24 conditional branching 43 conformance sanninna 68 content aggregation 10 17 content package 10 17 control mode 35 UN 15 Curr eulaaen de aet tt en ee dre 10 curriculum eene tette 15 dependency stees teste tete eengossnciecu itas 20 exit condition eene 44 first SCORM course 2 ttes 7 um 35 interactions eeeeeeeeene rennen 77 item element waves 19 Jauncbssswesteait naues B NE 19 learning management systems LMSs 10 THO UT GS E aiaoanedei deine o is ties eq 17 manifest fil saiit 17 navigation E 35 39 objective mapping sss 58 OW Ee 58 OP BATIZ AOD cates educare roce vinos 14 OF BANIZAUONS RP dai 10 post condition uenientes 44 ON Ee le ortae tentioe 44 prerequisites esere 73 RELOAD E 17 TeSOUFCesS EE 19 65 resuming a course 59 DOS e caed
16. data data is defined in the manifest file element from the manifest file element dataFromLMS see CAM 3 4 1 14 For lt adlcp dataFromLMS gt example configuration data for scenarios can be passed via this element Location Represents a location in the SCO Used for book marking the learner s position in a SCO in a given instance allowing the learner to resume the SCO at the same point at which learning was suspended This value is not interpreted by the LMS but is made available to the programmer to implement features such as book marking cmi location 27 SCORM Best Practices Guide for Programmers LMS Management amp Communication CMI Data Model Data Model Element with cmi Name Suspend Data cmi suspend data Description Provides additional space to store and retrieve data between learner sessions Application If the learner starts the SCO but does not complete it the current state data up to 64K characters may be stored in this element This value is not interpreted by the LMS but is made available to the programmer to implement features such as book marking Learner Name cmi learner name Allows the SCO to present the name of the learner inside the content in the form lastname firstname Typically used to customize learning content for example Welcome back Sgt Thomas or Nice work Capt Brown Completion Status cmi completion status Indicates if the lea
17. has a normalized measure less than the measureThreshold activityProgressKnown True if the activity or referenced objective is in progress attemptLimitExceeded True if the number of attempts on the activity is greater than or equal to any defined attempt limit on the activity 9 5 Pre Condition Rules The main actions taken via a pre condition rule are to keep the learner from having access to a given activity The three most commonly used actions are e skip skip over this activity and select the next available SCORM Best Practices Guide for Programmers Sequencing amp Navigation Sequencing e disabled disallows an activity for delivery of any kind Typically seen as grayed out e hiddenFromChoice disallows activity as target of choice request Will be grayed out or completely hidden in table of contents For example to skip an activity if it s already been attempted the following rule should be used lt imsss preConditionRule gt lt imsss ruleConditions conditionCombination any gt lt imsss ruleCondition condition satisfied gt lt imsss ruleConditions gt lt imsss ruleAction action skip gt lt imsss preConditionRule gt 9 6 Post Condition Rules Post Condition rules are executed when an activity terminates They are executed each time a SCO terminates The following are the typical actions that can be taken e exitParent Exit the current aggregation and execute post condit
18. need to define the Rollup Rules to meet the design requirements provided by the ISD that are not covered by defaults It will be up to you to understand the impacts and possibilities of Rollups and discuss options with the designer SCORM Best Practices Guide for Programmers Sequencing amp Navigation Rollups Rollups always exist whether explicitly defined or not If no rules are defined the following default rules will be applied in order 1 Satisfied Status e fall children have a known status passed or failed and any failed then not satisfied e Otherwise If all satisfied then satisfied 2 Completion Status e fall children have a known completion status completed or incomplete and any incomplete then incomplete e Otherwise if all completed then completed 3 For numeric scores the default is to calculate the weighted average of all the scores of the children 11 4 How to Inplement With Rollups you need to consider the two main statuses of an activity Completion and Satisfied Statuses For each aggregation ask the following four questions What condition s would make this aggregation satisfied What condition s would make this aggregation not satisfied failed What condition s would make this aggregation completed What condition s would make this aggregation incomplete PON Once these four questions are answered Rollup Rules may be written to satisfy them all Let s look at a few examples using t
19. remediation paths between SCOs can be created using sequencing rules Repository A repository is a device for storing and maintaining digital information content Content proponents declare the existence of the data chunks in a registry for discovery and retrieval by others Resource The XML element of the Manifest file that contains information for groups of assets used by SCOs in a content package Reuse Reused content is existing content used in new or different contexts or applications SCORM content can be reused in multiple ways redeployed repurposed rearranged or rewritten Rollup Rules Rules used to define how tracking data is propagated up from a child activity to its parent Root Aggregation See also organization A root aggregation is a top level aggregation Satisfied Status This status is used to track whether or not an activity is passed or failed Shareable Content Object Reference Model SCORM SCORM is a model that references and integrates a set of interrelated technical standards specifications and guidelines designed to meet high level requirements for e learning content and systems Sequencing Sequencing is similar to the ISD term branching in that it describes and prescribes the manner in which learners receive content SCORM 2004 sequencing defines a method for representing the intended behavior of an authored learning experience such that any LMS will sequence discrete learning activities consiste
20. that these are the same values defined in the CMI Data Model for statuses 6 2 How to Implement 6 2 1 Numeric Scores When you need to track a numeric score in a SCO the score object of the primary objective is used The score is calculated by the content SCORM does not dictate how this score is calculated That is left up to you as the developer in coordination with the instructional designer For example to set the score to 8596 the following JavaScript code is used in the content doSetValue cmi score scaled 85 31 SCORM Best Practices Guide for Programmers LMS Management amp Communication Status and Scoring The element cmi score scaled must be a number between 1 and 1 It is typically the score of the content normalized to a percentage The other elements of cmi score are used to provide additional context only These include cmi score min cmi score max cmi score raw The min and max values may be used to define a range and the raw element should be a number within the range of min and max See RTE 4 2 20 for examples 6 2 2 Calculate the Success Status A score in and of itself does not have any impact on the course It should be combined with failed This can be set directly using the data model API doSetValue cmi success status passed Another method is to use some special XML in the manifest file to calculate whether the saved score represents a passed or failed attempt by the learner This elemen
21. the learner resumes These elements are simply storage areas for text that may be used for bookmarking No bookmarking occurs automatically As the programmer it is your responsibility to use this data to initialize the content in the SCO at the bookmarked location cmi location The CMI Data Model has a location element see RTE 4 2 14 that can be used to store a string It can hold 1000 characters Example to set the data doSetValue cmi location some data that you want to store to retrieve it later var bookmark doGetValue cmi location The programmer should use this bookmark variable to initialize the SCO and put the learner back where they left off Nothing automatically happens here cmi suspend data If 1000 characters are not enough the CMI Data Model has an element to store the suspended state of a SCO see RTE 4 2 23 This element can also be used to store a string It can hold 64000 characters SCORM Best Practices Guide for Programmers Cookbook Bookmarking Example to set the data doSetValue cmi suspend data some more data that you want to store to retrieve it later var bookmark doGetValue cmi suspend data The programmer should use this bookmark variable to initialize the SCO and put the learner back where they left off Nothing automatically happens here 14 2 2 Suspend the Content only the current SCO two JavaScript lines must be added
22. to Implement available for selection by the learner in any order they wish If you need to control the order in which activities are presented to the learner then sequencing must be implemented Work closely with the designer to understand how a learner would flow through the course in all scenarios To sequence in SCORM the Control Mode flow should be set to true and typically Control Mode choice should be set to false 43 SCORM Best Practices Guide for Programmers Sequencing amp Navigation Sequencing 9 4 How to Implement In sequencing you basically need to understand how to use three types of condition rules provided by SCORM pre conditions post conditions and exit conditions These rules in that is needed to implement the majority of sequencing Sequencing rules are defined in detail in the SN book see SN 3 4 All sequencing rules have the same syntax In the sequencing element of an activity found in the manifest file there is a sequencingRules element which may contain any number of pre post and exit condition rules Here is an example of the syntax lt imsss sequencingRules gt lt imsss preConditionRule gt lt imsss ruleConditions conditionCombination all any gt lt imsss ruleCondition condition someCondition gt imsss ruleCondition condition someOtherCondition gt lt imsss ruleConditions gt lt imsss ruleAction action skip disabled hiddenFromChoice stopForwardTraversal gt lt im
23. Diagnostic was not successful return Unable to locate the LMS s API Implementation GetDiagnostic was not successful return api GetDiagnostic errorCode toString RR KK HK HK I A kk RR A A kk AA A AAA kk kk kk kkk kkk kk I koe ek kk kk k kk Function ErrorHandler Inputs None Return The current error Kk Description Determines if an error was encountered by the previous API call and if so returns the error kk Usage var last error ErrorHandler if last error code NoError code k k AN message Encountered an error Code last error code be nMessage last error string Ek nDiagnostics last error diagnostic k k Ckck ck ckck ck ck ck ck ck ck kck ck ck kck ck ck ck ck ok ck ck ck ck ck ck ck ok ck ck ck ok ck ck ck ok ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck k kk k k kk function ErrorHandler var error code NoError code string NoError string diagnostic NoError diagnostic var api getAPIHandle if api null message Unable to locate the LMS s API Implementation nCannot determine LMS error code error code GeneralException code error string GeneralException string error diagnostic Unable to locate the LMS s API Implementation Cannot determine LMS error code return error 97 SCORM Best Practi
24. ED BY LICENSEE AS A RESULT OF USING MODIFYING OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES IN NO EVENT WILL ADL OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE PROFIT OR DATA OR FOR DIRECT INDIRECT SPECIAL CONSEQUENTIAL INCIDENTAL OR PUNITIVE DAMAGES HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE EVEN IF ADL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES Ck ck ck ck ckck ck ck KKK KKK ck ck ck KKK KK ck ko kk kck KKK ko kk KK KKK KKK ck kk ko kk ck ck ck KKK Ck ck ck ck ok ck kc ck ck ck kk kc ko kck ko kkk SCORM 2004 APIwrapper js code is licensed under the Creative Commons Attribution ShareAlike 3 0 Unported License To view a copy of this license Visit http creativecommons org licenses by sa 3 0 Or send a letter to Creative Commons 444 Castro Street Suite 900 Mountain View California 94041 USA The following is a summary of the full license which is available at http creativecommons org licenses by sa 3 0 legalcode ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck kk ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ok ckocko ck ko Sk ko ko k ko ko ko Creative Commons Attribution ShareAlike 3 0 Unported CC BY SA 3 0 You are free to Share to copy distribute
25. KKK KK KKK KKK KK KKK KKK KK KK KK KKK KKK KKK KKK KKK KKK KEK KKK KKK KEK KKK KKK kk ko k Ck ck ck ko Sk A ko k ko ko A Ao function findObjective objId var num doGetValue cmi objectives count var objIndex 1 for var i20 i lt num i if doGetValue cmi objectives i id objId objIndex i break if objIndex 1 message Objective objId not found objIndex num 99 SCORM Best Practices Guide for Programmers SCORM 2004 API Wrapper message Creating new objective at index objIndex doSetValue cmi objectives objIndex id objId return objIndex OK KK kk kk kk kCkCkCk kk kk kk kk c kck ck k kc k kc k kc k kk kckckck kckckck kk kck kckckck kc kckck kc A I I I kk kk kk kk kk kk kk k k kk kk kk kxk kk kk kk kk k k kk kk kk kk kk kk NOTE This is a SCORM 2004 4th Edition feature Function findDataStore id Inputs id the id of the data store Return the index where this data store is located or 1 if the id wasn t found Description This function looks for the data store within the data array and returns the index where it was found or returns 1 to indicate the id wasn t found in the collection Usage var dsIndex findDataStore myds if dsIndex 1 doSetValue adl data dsIndex store save this info else var appending data doGetValue cmi suspend data doSet
26. MENT identifierref RES SCO3 isvisible true gt lt title gt Child 3 lt title gt lt Pre condition sequencing rules go here see 15 2 4 Create Pre Condition Rule on Assessment gt lt item gt lt imsss sequencing gt lt imsss controlMode flow true choice true gt lt Rollups go here see section 15 2 2 Implement Rollup Rules for the Aggregation gt lt Objectives go here lt imsss sequencing gt lt item gt 15 2 2 Implement Rollup Rules for the Aggregation The Rollup Rules for the aggregation are shown here The logic conditions used are e If any lesson is NOT COMPLETED set the aggregation to incomplete e If All lessons are COMPLETED set the aggregation to COMPLETED lt Two important rules If any are incomplete the cluster is incomplete If all are completed the cluster is complete gt lt imsss rollupRules rollupObjectiveSatisfied true rollupProgressCompletion true gt lt imsss rollupRule childActivitySet any gt lt imsss rollupConditions conditionCombination any gt lt imsss rollupCondition operator not condition completed gt lt imsss rollupConditions gt lt imsss rollupAction action incomplete gt lt imsss rollupRule gt lt imsss rollupRule childActivitySet all gt lt imsss rollupConditions conditionCombination any gt lt imsss rollupCondition condition completed gt lt imsss rollupConditions gt lt imsss rollupAc
27. MS Sequencing specification for objectives ADL had to add an extension to sequencing A new element adlseq objectives was added to allow this additional information to be mapped to global objectives The adlseq objectives element is placed immediately after the imsss objectives element Using our example above the following code allows for the Completion Status of the SCO s primary objective to be written to shared global obj global abc and the Progress Measure of local objective obj local xyz to be written to global obj global xyz imsss objectives lt imsss primaryObjective objectiveID 2 obj primary satisfiedByMeasure false gt lt imsss mapInfo targetObjectiveID 0bj global abc writeSatisfiedStatus true gt lt imsss primaryObjective gt lt imsss objective objectiveID 2 obj local xyz satisfiedByMeasure false gt lt imsss mapInfo targetObjectiveID 0bj global xyz writeSatisfiedStatus true gt lt imsss objective gt lt imsss objectives gt lt adlseq objectives gt lt adlseq objective objectiveID 2 obj primary lt adlseq mapInfo targetObjectiveID 2 obj global abc writeCompletionStatus true lt adlseq objective lt adlseq objective objectiveID obj local xyz lt adlseq mapInfo targetObjectiveID 2 obj global xyz writeProgressMeasure true lt adlseq objective gt lt adlseq objectives gt 53 SCORM Best Practices Guide for Programmers Sequencin
28. Navigation UI The LMS table of contents Programming JavaScript calls inside the SCO Sequencing post condition rules Se p E 12 6 1 LMS provided Navigation UI The learner may select an action from the navigation menu provided natively by the LMS This may be a Next or Previous button or may be one ofthe Exit buttons for the course If these options are available to the learner you have very little control over when these actions are initiated The content needs to be programmed to capture exit events from the learner and handle them appropriately 12 6 2 LMS Table of Contents This is very similar to the navigation interface provided by the LMS If the learner clicks on an activity in the table of contents the current activity is exited and a new activity is 62 SCORM Best Practices Guide for Programmers Sequencing amp Navigation Exiting SCOs and Courses selected for the learner Content will need to be handled in a similar manner as above 12 6 3 Exiting from within Content When a SCO is exited with no additional navigation action control remains with the learner The learner will need to select the next activity from the table of contents if available If a navigation request is initiated after exiting the SCO or if a course is exited control is returned to the LMS The LMS will either select a new activity based on sequencing rules to launch or the current session will be terminated 12 6 4 Exiting via Se
29. Organization Content Packages DS Store DS Store apiwrapper js ER adicp_vlp3 xsd E common gt amp commons PR adinav v1p3 xsd S example jpg PR adlsea v1p3 xsd a example mp3 common gt BR example swf 3j content gt load html datatypes dtd 3 extend D ims xml xsd imscp vlpl xsd imsmanifest xml imsss vlpO xsd imsss vlp auxresource xsd imsss vlpOcontrol xsd imsss vlpOdelivery xsd imsss vlpOlimit xsd imsss vlpOobjective xsd imsss vlpO random xsd imsss vlpOrollup xsd imsss vlpOseqrule xsd imsss vlpOutil xsd lom xsd lomCustom xsd lomLoose xsd CEET EE 5 RS I xml xsd XMLSchema dtd This structure makes it easy to keep everything organized and to be prepared for any repurposing or reuse that may be in your future plans 23 SCORM Best Practices Guide for Programmers LMS Management amp Communication Understanding the SCORM API LMS Management amp Communication 4 Understanding the SCORM API 4 1 Introduction The SCORM Application Programming Interface API is a standardized method for a sharable content object SCO to communicate with the learning management system LMS when a learner is interacting with a SCO There is a specific set of information the SCO can set or retrieve For example it can retrieve information such as a student name or set values such as a score To use the API the content implements ECMAScript code typically JavaScript which makes API specific calls to
30. RM Resources Overview 13 2 3 Sequencing and Navigation SN Book The introduction to the SN book states This book contains conceptual information related to e Sequencing Definitions and Behaviors e Navigation Controls and Data model 13 2 4 Run Time Environment RTE Book The introduction to the RTE book states This book covers e SCORM API e CMI Data Model Overview 13 3 SCORM 2004 4th Edition Sample Run Time Environment SRTE 13 3 1 Background The SCORM 2004 4th Edition Sample Run Time Environment SRTE Version 1 1 1 provides a working example of the Run Time Environment described in SCORM 2004 4th Edition In simple terms the SRTE functions as a sample player for your content The intent is to provide a stable environment to test content to make sure it runs as expected The SRTE can be found at http www adlnet gov capabilities scorm tab learn 66 SCORM Best Practices Guide for Programmers Resources Tools amp Development Support ADL SCORM Resources Overview 13 3 2 When to Use the SRTE Use the SRTE for your testing process during content development The SRTE will allow you to test e Content Import The SRTE will do a validation on your content package before importing itto ensure conformance For more detailed testing use the SCORM 2004 4th Edition Test Suite TS described below e Content Delivery The SRTE will allow you to launch your content and see how it will appear when running i
31. SCORM Users Guide for Programmers LORM 2004 4 Edition Versio n10 September 15 2011 Advanced Distributed Learning The Power of Global Collaboration Defense Government Industry Academia Table of Contents Getting Started A VDININUNU 7 Course Structure amp Organization sees eene ee teen nennnn ena tutntn tata to bouen ianus pa aouns ra ssa DEDE so se bV naosg 10 ZTE AU CEO M EE E mE 10 Se CONCENE PACKO 17 LMS Management amp COMMUNICATION cecececeeseeeeeeeensesenenenesnenseeeesseeneeenensesensesenaearseeseseseeeenenseeseseeenaraeerseneeeanseeneneeseesese 24 4 Understanding the SCORM ADI ttt termi rhet ieee apenas tana 24 3 CMI Data MOE AERA 26 6 Status and SOTIN er naa A aa AA Ea 31 Seguencing ENT d EE 35 vertu doque M 35 UNDE 39 O Seguen CING e M 43 10 Tracking across SCOs using Global Objectives EEN 50 DD PROM UDG E X 55 12 Exiting SCOS and COUFSES ui dires taa eani tanti tuni o e nta ae e Lenta Ee tune 59 Resources Tools amp Development Supporrt eese ee eese trrnsntntn tata ta tat en unnn nn annn se sa sa se so sa sona sai 65 13 ADL SCORM Resources Overvi Warseno ebsinrng
32. Value cmi suspend data appending data myds save this info ck ck ck ck ck ck ck kk kk ck ck KK KK kk ck ck kk kk KK KK kk KK KKK KKK KK KKK KKK KK kkkk kk kk kk ck ko ko Sk kk Ck ck ko ko Sk kv KKK KK KK function findDataStore id var num doGetValue adl data count var index 1 if the get value was not null and is a number in other words we got an index in the adl data array if num null amp amp isNaN num for var i 0 i lt num i if doGetValue adl data i id id index i break if index 1 message Data store id not found return index OK KK KK kK RR A A A A A A A ck kc kckck kc kokckokckok I kkk kk kk kk Function message str Inputs String message you want to send to the designated output 100 SCORM Best Practices Guide for Programmers SCORM 2004 API Wrapper Return none Depends on boolean debug to indicate if output is wanted ck object output to handle the messages must implement a function RK log string Kk Description This function outputs messages to a specified output You can define your own output object It will just need to implement a log string function This interface was used so that the output could be assigned the window console object ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck kk ck ck ck ck ck ck ck KKK ck ck ck ck ck ck ck ck
33. a passed or failed value The criteria defined by the ISD can be based on a percentage of interactions being passed or objectives being met a this field is used Exit cmi exit Indicates how the learner left the SCO Can be used to impact sequencing decisions and determines if a SCO is suspended or exited normally 28 SCORM Best Practices Guide for Programmers LMS Management amp Communication CMI Data Model Data Model Element With cmi Name Description Application Session Time Identifies the amount of time the learner The ISD defines the value and meaning of f has spent in the current instance of the session time The LMS uses this time to cmi session time m SCO compute total time Total Time Stores the learner s cumulative time for all Stores the total time spent in every cmi total time sessions of a specific SCO for a given session of a given SCO for a given learner attempt learner 5 3 How to Implement The cmi data model is accessed through JavaScript calls in the content In the API wrapper are used when working with these elements doSetValue and doGetValue Both of these are defined in the APIWrapper js file in the content package A full set of API calls that are available can be found in RTE 3 1 Values of the cmi data model are simple strings and numbers Here are some examples in JavaScript get the learner s name var name doGetValue cmi learner name set the
34. adding resources etc If necessary edit sequencing and extend the template according to the design Urt A Ia Es 1 Blue dotted underlined text are section names and contain hot links to those sections in this document SCORM Best Practices Guide for Programmers Getting Started with SCORM Introduction Steps 1 4 of this process should be straightforward to a programmer familiar with web application development Step 5 will be more challenging to those starting out in SCORM Refer to the remainder of this document for information on how to implement sequencing and other advanced features of SCORM 2004 1 3 SCORM Terms Table 1 1 lists some SCORM terms as they relate to common ISD terms These are useful to know in order to communicate well with instructional designers who will be designing the courses you implement Some commonly used SCORM or ISD terms have official terms used in the SCORM Documentation Books that you should also be aware of Table 1 1 SCORM terms as they relate to ISD terms COMMON SCORM TERM OFFICIAL SCORM TERM Asset Asset COMMON ISD TERM Video text file image or other media also called asset Learning object LO Course set of learning objects None Sharable Content Object SCO Organization Or Content Package Activity a SCO or logical grouping or Also a Resource is a group of assets SCO Organization or Content Organization Activity aggregation of SCOs with associated sequencing
35. and transmit the work Remix to adapt the work Under the following conditions Attribution You must attribute the work in the manner specified by the author or licensor but not in any way that suggests that they endorse you or your use of the work Share Alike If you alter transform or build upon this work you may distribute the resulting work only under the same or similar license to this one With the understanding that 91 SCORM Best Practices Guide for Programmers SCORM 2004 API Wrapper Waiver Any of the above conditions can be waived if you get permission from the copyright holder Public Domain Where the work or any of its elements is in the public domain under applicable law that status is in no way affected by the license Other Rights In no way are any of the following rights affected by the license Your fair dealing or fair use rights or other applicable copyright exceptions and limitations The author s moral rights Rights other persons may have either in the work itself or in how the work is used such as publicity or privacy rights Notice For any reuse or distribution you must make clear to others the license terms of this work XCKCkCk Ck k kk kk kc k kk kk kc k kk kk k k kc k kk kc k kc k kc k kc k kc k kc k kc k kc k kck kc k kc k kc k ck kckckckckckckckckckckok kc kk kk e kx amp f KK Ck kk kk kk kCk kk kCkCkCkCkCkCkck kk kc k kc k kc k kk kk kck kk kck kk k
36. called the primary objective This refers to the objective containing the activity s own status values The remaining objectives are sometimes referred to as secondary objectives though that is not an official name 10 5 Local vs Shared Global Objectives There are two types of objectives local and shared global They are typically used in conjunction with each other See SN 3 10 1 for details Local objectives are typically defined at the activity level through definitions in the manifest file see examples below Objectives can be stored and retrieved by JavaScript in the SCO and accessed by sequencing inside the content package and may be shared with other activities by mapping to local variables in other activities Also remember that each SCO and aggregation has a special local objective the primary objective which contains the core status of that activity see 10 6 Defining Objectives in the Manifest Primary and secondary objectives are defined in the imsss objectives element as a child of the imsss sequencing element lt imsss sequencing gt lt other sequencing rules go here gt lt imsss objectives gt 51 SCORM Best Practices Guide for Programmers Sequencing amp Navigation Tracking across SCOs using Global Objectives imsss primaryObjective objectiveID 2 obj primary satisfiedByMeasure false gt imsss mapInfo targetObjectiveID obj global 1 imsss primaryObjective imsss objective object
37. ces Guide for Programmers SCORM 2004 API Wrapper check for errors caused by or from the LMS error code api GetLastError toString if error code NoError code an error was encountered so display the error description error string api GetErrorString error code error diagnostic api GetDiagnostic return error ORR kk KK A AR AAA A AA A AAA IA I kk kk A kkk kk ek kk kk k kk Function getAPIHandle Inputs None Return value contained by APIHandle kk Description Returns the handle to API object if it was previously set otherwise it returns null k k kkkkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxk xkxkxkxkxkxkxkxkxkxkxkxkxkxkxkkxkxkxkkxkxkxkkxkxkxkxkxkxkkxkxkxkkkxx xx function getAPIHandle if apiHandle null apiHandle getAPI return apiHandle BRK KK KK Ke kk Function findAPI win Inputs win a Window Object Return If an API object is found it s returned otherwise null is returned Kk Description This function looks for an object named API 1484 11 in parent and opener windows Kk KKK ck KK KKK KKK KK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK kk kkkkkkkkkkkkkkkkkk kk ik function findAPI win var findAPITries 0 while win API 1484 11 null amp amp win parent null amp amp win parent win findAPITriestt if findAPITr
38. ck kc k kckckck kc k kc kckckck kckckok kk kok I I ok Usage Executable course content can call the API Wrapper AE functions as follows Kk ax javascript var result doInitialize ER if result true kk t handle error k k kk ZS authorware xx result ReadURL javascript doInitialize 100 k k KE director result externalEvent javascript doInitialize k k k k CkCkCk ck k kk kc k kc kckck kc k kk kckckck kckckck kck kk kck kk kck kc k kckck ck kck kc k kckckck kc kckckckckckckokckokckok kok sk ke ke ke e ke kx x f var debug true set this to false to turn debugging off var output window console output can be set to any object that has a log string function such as var output log function str alert str Defin xception error codes var NoError code 0 string No Error diagnostic No Error var GeneralException code 101 string General Exception diagnostic General Exception var AlreadyInitialized code 103 string Already Initialized diagnostic Already Initialized var initialized false local variable definitions var apiHandle null OR IK KK KI A A A A A A AA A A A kk kk kk kk ke e ee kk kk 92 SCORM Best Practices Guide for Programmers SCORM 2004 API Wrapper Function doInitialize Inputs None Return true if the initialization was successful or
39. communicate with the LMS 4 2 API Wrapper JavaScript file To access the API in content typically an API wrapper JavaScript file is included in the main HTML page of the SCO This JavaScript file will find the LMS provided API object and provide JavaScript functions to program the required functionality for your content An API wrapper file is provided in the starter template and may be included in your project as a standard JavaScript include The API wrapper code is also provided in the Appendix see 4 3 Initialization and Termination To be a valid SCO the content must do at least two things Initialize and Terminate The first API call that the content must make to the LMS is Initialize After all communication with the LMS is completed the SCO must end the API session by calling Terminate Depending on the JavaScript library or API Wrapper you are using the following calls might be made SCORM Best Practices Guide for Programmers LMS Management amp Communication Understanding the SCORM API called on page load function onLoadPage doInitialize called on page unload function onUnloadPage doTerminate 25 SCORM Best Practices Guide for Programmers LMS Management amp Communication CMI Data Model 5 CMI Data Model This section explains storing and retrieving data about learner performance from and to the Learning Management System LMS Understanding the types of data that ca
40. content the Menu SCO will need to issue Jump navigation requests allows a SCO to explicitly target another SCO for navigation purposes In our timeline example above JavaScript code should be implemented to perform these requests The identifier attribute found in the manifest file for the item element associated with the targeted activity is what the navigation request references For example the following is a sample manifest file entry for our SCO item identifier SCO PERSIAN GULF 1990 identifierref RES PERSIAN GULF 1990 lt title gt Persian Gulf War lt title gt lt item gt To target this SCO from our Menu SCO the following JavaScript code is implemented within the Menu SCO HTML file doSetValue adl nav request target SCO PERSTAN GULF 1990 jump doTerminate 83 SCORM Best Practices Guide for Programmers Cookbook The Menu SCO The LMS will immediately terminate the Menu SCO and deliver the content for the Persian Gulf War 17 3 4 Add Navigation to Show Menu after Each Item A key part of using the Menu SCO design is that the menu must be displayed at the appropriate times This will depend on design but a common pattern is to display the Menu after exiting each activity This can easily be accomplished using a Jump request similar to the one explained above to target the Menu SCO The lessons can be configured Menu SCO The value of the menu SCO may be passed from the manifest fi
41. e instructional task that the instructional systems designer ISD has shared with you it is important to understand how SCORM file structures can support the task The sections that SCORM Best Practices Guide for Programmers Getting Started with SCORM Introduction You will also need to look up and understand new SCORM terms and get familiar with the resources available to you This information can be found in the Glossary and the Resources Tools amp Development Support sections respectively 1 2 Your First SCORM Course The easiest and recommended way to create a SCORM content package is by using a template A template is a conformant SCORM 2004 content package zip file consisting of a simple course structure with HTML files that can be modified and extended to create your programmer to use Templates are typically provided by the community and may implement instructional design patterns For the purposes of this document we will use a simple starter template provided by ADL located download from SCORM API Code Example The structure of the starter template is simple It contains a single SCO followed by an aggregation of 2 SCOs see Figure 1 2 Figure 1 2 Structure of the starter XML template Steps to using a template Locate and download the template file zip file Copy the zip file to your project area and unzip Edit the HTML files of the template to add content Edit the imsmanifest xml file replacing titles
42. e identifier RESOURCE1 gt lt resource gt lt resource identifier RESOURCE2 gt lt resource gt lt resource identifier RESOURCE3 gt lt resource gt lt resource identifier RESOURCE4 gt lt resource gt lt resources gt lt manifest gt Metadata The metadata section is where additional informative data about the course is placed See 18 SCORM Best Practices Guide for Programmers Course Structure amp Organization Content Packages for details of how this section is structured At its simplest and most common form it only contains the schema and schemaVersion elements metadata lt schema gt ADL SCORM lt schema gt lt schemaversion gt 2004 4th Edition lt schemaversion gt lt metadata gt Additional metadata regarding the organization activities and assets in the course may be referenced in the manifest file This metadata is typically provided to you by the ISD see Organizations The organization consists of multiple activities SCO or aggregation represented by item elements This structured representation of the content is typically called the Activity The XML structure of an organization is below lt organizations default ORG SAMPLE gt lt organization identifier ORG SAMPLE adlseq objectivesGlobalToSystem false gt lt item identifier AGGREGATION1 lt title gt Sample Aggregation lt title gt lt item identifier SCO1 identifierref RES1 gt lt title
43. ecome familiar with the target LMS and understand the requests associated with each UI element The LMS UI can be customized to display only the elements desired for a given SCO This customization is done through the use of the adinav presentation elements in the Manifest File where specific navigation controls may be hidden This adlnav presentation element is placed after the sequencing element of a SCO In the example below only the suspendAll navigation element will be available in the LMS provided navigation UI item identifier SCO 1 identifierref RES SCO 1 isvisible true title SCO 1 lt title gt adlnav presentation lt adlnav navigationInterface gt lt adlnav hideLMSUI gt continue lt adinav hideLMSUI gt lt adlnav hideLMSUI gt previous lt adlinav hideLMSUI gt lt adlnav hideLMSUI gt abandon lt adlnav hideLMSUI gt adlnav hideLMSUI exit adlnav hideLMSUI lt adlnav hideLMSUI gt abandonAll lt adlnav hideLMSUI gt adlnav hideLMSUI exitAll adlnav hideLMSUI n n n Li n n adlnav navigationInterface adlnav presentation item 8 4 2 Table of Contents The LMS is required to display a table of contents that represents the activity tree of the contents a choice navigation request is initiated and the selected activity is launched if available 40 SCORM Best Practices Guide for Programmers Sequencing amp Navigation Navigation 8 4 3 Navigating fro
44. ed in related groups called resources These resources are defined and referenced in the manifest file 21 SCORM Best Practices Guide for Programmers Course Structure amp Organization Content Packages organizations organization lt title gt Example Course lt title gt lt item identifier EXAMPLE SCO identifierref SCO RESOURCE gt lt title gt Example SCO lt title gt lt item gt lt organization gt lt organizations gt lt resources gt lt resource identifier SCO RESOURCE adlcp scormType sco type webcontent href load html xml base content gt file href load html gt lt file href example jpg gt file href example swf gt file href example mp3 dependency identifierref LESSON COMMON gt resource resource identifier LESSON COMMON adlcp scormType asset type webcontent xml base content gt lt file href common apiwrapper js gt lt file href common common js gt lt file href common logo jpg gt lt resource gt lt resources gt In this example we have one SCO and two Resources A good plan would be to organize the content into folders with each folder corresponding to a Resource Another tip is to put all the content you create into a separate folder named content or something similar So in this example we would have 22 SCORM Best Practices Guide for Programmers Course Structure amp
45. ent section The following code is the sequencing used in the assessment You will map the shared global from 1 2 3 above to a local objective obj prereqs and create an action to disable the assessment while obj prereqs is either unknown or incomplete lt imsss sequencing gt lt imsss sequencingRules gt lt l You can now sequence off the completed status of the global You have to account for the unknown state of completion so 2 conditions are needed gt lt imsss preConditionRule gt lt imsss ruleConditions conditionCombination any gt lt imsss ruleCondition operator not condition completed referencedObjective obj prereqs gt lt imsss ruleCondition operator not condition activityProgressKnown referencedObjective obj prereqs imsss ruleConditions imsss ruleAction action disabled lt imsss preConditionRule gt lt imsss sequencingRules gt 75 SCORM Best Practices Guide for Programmers Cookbook Prerequisites imsss rollupRules rollupObjectiveSatisfied true rollupProgressCompletion true lt imsss objectives gt lt imsss primaryObjective objectiveID 2 obj primary satisfiedByMeasure false gt lt imsss objective objectiveID o0bj prereqs satisfiedByMeasure false gt imsss mapInfo targetObjectiveID 0bj global lessons readSatisfiedStatus true gt lt imsss objective gt lt imsss objectives gt lt imsss deliveryControls objectiveSetByC
46. ent objects and other pieces of data They do not communicate with the LMS Assets will likely be your most reusable items they can be redeployed rearranged repurposed or reused in many different contexts and applications The figure to the left depicts each asset as a small blue box with examples of several asset types such as gif mpg html txt jpg For example in Figure 2 2 an image of the Hazard Class 7 Radioactive placard could be used in training materials for different audiences in both commercial and DoD transportation as well as by different individuals such as truck drivers first responders and shipping inspectors who may be affected by the transportation of hazardous materials The radioactive symbol could be reused as a slice separate graphic file which is seamlessly integrated into the top and bottom of each composite graphic First Responders SN Shipping Inspectors Radioactive materials are packaged in durable materials so the release of radiation would probably only occur in very severe accidents The Radioactive placard is required on any type of material containing any amount of radioactive materials Figure 2 2 Shared Asset Example 11 SCORM Best Practices Guide for Programmers Course Structure amp Organization Introduction 2 3 Sharable Content Object SCOs are the smallest logical unit of information you can deliver to your learners via an LMS The term SCO has different imp
47. ent repositories Certification or Certified Certification indicates that materials have been tested by an independent third party to assess conformance with the guidelines established in SCORM Certification indicates a successful testing by the Conformance Test Suite All certified products are conformant Choice A control mode that defines if the learner may select an activity of this cluster through a choice navigation request 87 SCORM Best Practices Guide for Programmers Glossary of SCORM Terminology Cluster synonym for Aggregation Completion Status The status used to track if an activity is attempted and if it is completed or incomplete Compliance or Compliant A product is compliant when tested to ensure it performs according to applicable guidelines instructions policy or law The SCORM test suite is designed to rigorously test inputs processes and outputs Conformance or Conformant A product or service is conformant when it adheres to technical specifications guidelines recommendations or best practices to identify the correctness completeness and quality of developed product or service Test assertions are achieved by inspecting results focused on reliability stability portability maintainability and usability No form of testing is used other than evaluating actual results against expected results Content Package The content package contains everything needed to deliver the course module les
48. erenced in this document will the ones provided in the APIWrapper js file included in the starter template The APIWrapper js file will locate the SCORM API instance and contains all the functions required for the content to communicate with the LMS These functions are standard JavaScript functions and may be used just like any other JavaScript functions in a web page To be conformant a SCO must make at a minimum two calls The first doInitialize must be called to initiate communication between the LMS and the SCO The second doTerminate must be called at some point before the SCO exits The HTML ofthe simplest SCO might look like this html head lt script type text javascript src APIWrapper js gt lt script type text javascript function doOnload doInitialize doTerminate lt script gt lt head gt lt body onload doOnload gt Hello World I am a SCO lt body gt lt html gt Content Organization SCORM does not impose any restrictions on the file structure of your content It only requires that certain non content files exist in the package including the imsmanifest xml file and other schema related files see file must exist in the top level or root directory of the Package Interchange Format PIF file which is a zip archive Even though SCORM lets you organize files however you wish there are some suggestions that may help The content of a SCORM 2004 content package is organiz
49. ernal condition typically the completion or satisfaction of a prior activity For example Figure 15 1 shows a flowchart with a series of lessons followed by an assessment The design dictates that the lessons be completed before the assessment is accessible Root Aggregation Lesson 1 Lesson 2 Assessment H Inaccessible until lessons are completed Figure 15 1 Flowchart of two lessons followed by a locked assessment 15 2 How to Implement The steps to implement this are listed below and are described in detail in this section Create an aggregation cluster for the lessons Add Rollup Rules to aggregation Map aggregation s primary objective to a shared global Create Pre Condition rule on the assessment PWN RP 15 2 1 Create an Aggregation Cluster for the Lessons In order to track the completion of all the lessons the lesson SCOs need to be organized in an aggregation or cluster This will allow Rollup Rules to be created to assist in tracking them as a collective lt item identifier CLUSTER ONE isvisible true gt 73 SCORM Best Practices Guide for Programmers Cookbook Prerequisites title Lesson Aggregation lt title gt lt item identifier LESSON1 identifierref RES SCO1 isvisible true gt lt title gt Child 1 lt title gt lt item gt lt item identifier LESSON2 identifierref RES SCO2 isvisible true gt lt title gt Child 2 lt title gt lt item gt lt item identifier ASSESS
50. es see Section for it within an array of data store elements In the Starter Template a function called findDataStore is provided To access the data in the store the following JavaScript is used var index findDataStore shared data 1 grab the data var sharedData doGetValue adl data index store store the data doSetValue adl data index store some data you would like to share The data stored in adl store may be shared across content packages as well An attribute adlseq sharedDataGlobalToSystem in the organization element of the manifest controls if this data is accessible outside the scope ofthe content package The default value is true so be sure to set the value to false if you wish to restrict access organization identifier ORG SAMPLE adlseq sharedDataGlobalToSystem false gt 30 SCORM Best Practices Guide for Programmers LMS Management amp Communication Status and Scoring 6 1 Introduction Each activity in SCORM 2004 has a status As described in the section on global objectives aggregation have a primary objective This primary objective is an object holding status values related to the progress and success of the learner s interaction with the activity Each SCO can set values in its own primary objective The following information is stored in the primary objective Success status Completion status Score scaled raw min max Progress measure Note
51. false if the initialization failed kk Description Initialize communication with LMS by calling the Initialize function which will be implemented by the LMS Kk kaf function doInitialize if initialized return true var api getAPIHandle if api null message Unable to locate the LMS s API Implementation nInitialize was not successful return false var result api Initialize if result toString true var err ErrorHandler message Initialize failed with error code err code else initialized true return result toString ORR kk Kk kk I kk kk A e AA A AA A AR AAI kk kk kkk I kk kk kk k kk Function doTerminate Inputs None Return true if successful be false if failed kk Description Close communication with LMS by calling the Terminate function which will be implemented by the LMS kk ck ck ck kk kk kk kk kk kk kk kk kk kk ck kk ck kk KK kk ck kk ck kk kk kk kk kk kk ck kk Sk kk kk ck kk Sk kk kk ko Mk kv kv KK KK KKK function doTerminate if initialized return true var api getAPIHandle if api null message Unable to locate the LMS s API Implementation nTerminate was not successful return false else 93 SCORM Best Practices Guide for Programmers SCORM 2004 API Wrapper call the Terminate function that should be implemented by the API
52. g amp Navigation Tracking across SCOs using Global Objectives 10 9 Accessing Objectives in the Content Local objectives are typically accessed in the SCO using JavaScript The primary objective is a special objective and contains the core statuses of the activity To access these you will document read the success status of the primary var success doGetValue cmi success status write the progress measure of the primary to 50 completion doSetValue cmi progress measure 50 For objectives other than the primary the cmi objectives data model element is used The content must know the objectivelD of the local objective It does not need to know the global s ID as it always accesses it via the local objective to which it is mapped To access a local objective you must search for it in the array of objectives Using the APIWrapper from the Starter Template you use the findObjective JavaScript function var index findObjective obj local xyz Now that you have the index the information may be accessed in cmi objectives set the success status doSetValue cmi objectives index success status passed read the completion status var status doGetValue cmi objectives index success status 54 SCORM Best Practices Guide for Programmers Sequencing amp Navigation Rollups 11 1 Introduction Activities in SCORM are organized in a hierarchical tree structure called
53. ggregation will follow the set of rules defined for the root aggregation If you wanted to allow learners to choose Recognizing a Flat or Safety Precautions before going on to the other SCOs you would have to create a new parent for them Figure 7 2 depicts the same content with a new parent aggregation called Safety that includes the Recognizing a Flat and Safety Precautions SCOs as children Rules can now be assigned to the Root Aggregation that will apply only to the Safety Aggregation and the Locating the Spare Removing the Flat and subsequent SCOs A unique set of rules can now be added to the Safety aggregation Root Aggregation Figure 7 2 Basic Sequencing Structure with an additional Aggregation For Figure 7 2 you might write the following rules for control mode e For the Root Aggregation learners must view all of the items in order They can go back at any time o lt imsss controlMode flow true choice false gt 37 SCORM Best Practices Guide for Programmers Sequencing amp Navigation Control Modes e For the Safety Aggregation allow learners to choose Safety Precautions Recognizing a Flat or both o lt imsss controlMode flow false choice true gt Note Sometimes the ISD will dictate a more dynamic control mode than SCORM allows For example the design might dictate that the learner experience lessons in a certain order before a quiz However once taken the learner can review the mater
54. gt Sample SCO lt title gt lt item gt lt item identifier SCO2 identifierref RES2 gt lt title gt Another Sample SCO lt title gt lt item gt lt item gt lt organization gt lt organizations gt Resources SCORM content typically consists of web delivered assets These assets may be HTML images Flash objects audio video etc All of these assets are listed in the resources section of the manifest file A resource is a grouping of related assets There are two types of resources SCO resources and asset resources This is designated by the adlcp scormType attribute in a resource A SCO resource contains the starting or launch point for a SCO along with a list of files and dependencies used by the SCO while an asset resource 19 SCORM Best Practices Guide for Programmers Course Structure amp Organization Content Packages provides supporting materials which could also support other SCOs The href attribute in the resource element is used to determine which file is initially delivered to the learner If a set of assets is shared by multiple SCOs then an asset resource listing may be created to remove repetition of assets in the manifest file The asset resource is referenced using the dependency element The following code shows a simple example of a manifest file having a resource for a SCO SCO RESOURCE that has a dependency on another resource LESSON COMMON organizations organ
55. he 2003 Iraq War Figure 16 1 Timeline as menu 1990 is selected in this example 82 SCORM Best Practices Guide for Programmers Cookbook The Menu SCO 17 3 1 Use Shared Globals to Track Menu Items In order for the Menu SCO to track the progress of the course s activities shared global objectives must be used Using the examples in the section on global objectives see in the Menu SCO These global objectives will also need to be defined in the associated activities objectives section In the example above each year in the timeline will have an associated global objective 17 3 2 Program Menu and Content to Use Global Objectives Defining the global objectives in the manifest file for the Menu SCO is not enough You must actually program the content to utilize this information For example reading the information from global objectives will allow you to do things like e Display which activities have been completed Display the passed failed status for each module Display a status bar showing completion progress for each module Again this is a time to work with your ISD to determine what needs to be shown It s important to choose features that will be engaging and add value You also have to make sure your content updates the global objectives If the objectives are mapped to the content s primary objectives then ensure the content is updating the 17 3 3 Program Menu to Issue Navigation Requests To actually launch the
56. he ones mentioned above 1 Satisfy the aggregation if all the children are satisfied lt imsss rollupRule childActivitySet all gt lt imsss rollupConditions conditionCombination any gt lt imsss rollupCondition condition satisfied gt lt imsss rollupConditions gt lt imsss rollupAction action satisfied gt lt imsss rollupRule gt 2 Complete the aggregation if 75 of the children are completed lt imsss rollupRule childActivitySet atLeastPercent minimumPercent 0 75 gt lt imsss rollupConditions conditionCombination any gt lt imsss rollupCondition condition completed gt lt imsss rollupConditions gt lt imsss rollupAction action completed gt lt imsss rollupRule gt 3 Fail the aggregation if any of the children are not passed 56 SCORM Best Practices Guide for Programmers Sequencing amp Navigation Rollups lt imsss rollupRule childActivitySet any gt lt imsss rollupConditions conditionCombination any gt lt imsss rollupCondition operator not condition satisfied gt lt imsss rollupConditions gt lt imsss rollupAction action notSatisfied gt lt imsss rollupRule gt These rules are wrapped by the imsss rollupRules element in the manifest lt imsss sequencing gt lt imsss controlModes gt lt imsss controlModes gt lt imsss sequencingRules gt lt imsss sequencingRules gt lt imsss rollupRules rollupObjectiveSatisfied true rollupProgressCompletion true ob
57. i cete datar 58 Run Time Environment 66 SCOPE iiri nn pod e t lale 31 SCORM BOOKS ritui iet dtt tns 65 SCORM conformant e learning 7 SCQUCNCING eaa n rer te pbi 43 sequencing and navigation 66 Sharable Content Object SCO 12 iri Pep 31 e 59 Test Suite ADL eene 67 Pie nr 17 Zp flenna 17 102
58. ial in any order before moving on This is not immediately accomplished in SCORM 2004 using control modes as mode values are static and can t be changed throughout the Note This method is not currently interoperable across LMSs due to a gray area in the conformance criteria of SCORM 2004 4t Edition To do this interoperably a hidden aggregation must be added as a child of the root organization element Setting isvisible false in this new aggregation s item element and adding an attribute of choiceExit false to the control mode element will hide the clickable link related to the organization element from the learner yet still present the entire organization s activities to the learner in the Table of Contents Your real content will be a child to this new aggregation This method should work in all LMSs Test on your LMS to see how it functions 7 5 Related Information To read more on control modes and related topics see the sections on Control Modes in the SN 3 2 and CAM 5 1 2 books and also Constrain Choice Considerations in SN 3 3 and CAM 5 1 10 SCORM Best Practices Guide for Programmers Sequencing amp Navigation Navigation 8 1 Introduction navigation request as detailed in section 4 4 3 of the SN book is the process of initiating events which results in the identification of learning activities SCOs Organizations or Clusters for delivery Both learner and system may initiate these events 8 2 Examples Some concep
59. ies gt 500 message Error finding API too deeply nested return null 98 SCORM Best Practices Guide for Programmers SCORM 2004 API Wrapper win win parent return win API 1484 11 tt Function getAPI Inputs none Return If an API object is found it s returned otherwise null is ae returned kk Description This function looks for an object named API 1484 11 first in the current window s frame hierarchy and then if necessary in the current window s opener window hierarchy if there is an opener window kk ck ck ck kk kk kk ck kk ck kk kk kk ck ck kk kk ck kk ck kk KK ck kk kk ck KK kk kk kk kk kk ck kk ck kk kk ck kk Sk kk kk ko Mk KKK KKK KKK function getAPI var theAPI findAPI window if theAPI null amp amp window opener null amp amp typeof window opener undefined theAPI findAPI window opener if theAPI null message Unable to find an API adapter return theAPI KKK KR kK kk KR kc k kc k kc k kc kckck kck A A kck kc kckckckck A I I I kk Function findObjective objId Inputs objId the id of the objective Return the index where this objective is located kk Description This function looks for the objective within the objective array and returns the index where it was found or it will create the objective for you and return the new index Kk KKEKE
60. in handy to reduce the size and redundancy of the XML This makes the manifest more readable and maintainable as functionality is encapsulated in one location 18 2 How to Implement Implementing sequencing collections is straightforward First identify the repeated blocks of sequencing Take for example this code which if satisfied issues an exitParent action in a post condition rule lt imsss sequencing gt lt imsss sequencingRules gt lt imsss postConditionRule gt lt imsss ruleConditions conditionCombination any gt lt imsss ruleCondition condition satisfied gt lt imsss ruleConditions gt imsss ruleAction action exitParent imsss postConditionRule lt imsss sequencingRules gt lt imsss rollupRules rollupObjectiveSatisfied true rollupProgressCompletion true gt lt imsss objectives gt lt imsss primaryObjective objectiveID 2 obj primary satisfiedByMeasure false gt lt imsss mapInfo targetObjectiveID g obj item one 1 writeSatisfiedStatus true gt lt imsss primaryObjective gt lt imsss objectives gt lt imsss deliveryControls objectiveSetByContent true completionSetByContent true gt lt imsss sequencing gt Imagine having a series of twenty SCOs with this same flow pattern There would be over 300 lines of repeated XML for the sequencing To solve this we create a sequencing Collection element that encapsulates the repeated components of the XML lt imsss sequenc
61. ingCollection gt imsss sequencing ID lesson seq rules gt lt exit parent when terminating if satisfied gt imsss sequencingRules lt imsss postConditionRule gt lt imsss ruleConditions conditionCombination any gt lt imsss ruleCondition condition satisfied gt lt imsss ruleConditions gt SCORM Best Practices Guide for Programmers Cookbook Sequencing Collections imsss ruleAction action exitParent imsss postConditionRule lt imsss sequencingRules gt lt Content counts towards rollup Success and Completion gt lt imsss rollupRules rollupObjectiveSatisfied true rollupProgressCompletion true gt lt Note that the objectives are not included here gt lt imsss deliveryControls completionSetByContent true objectiveSetByContent true gt lt imsss sequencing gt lt imsss sequencingCollection gt This XML for the collection is placed at the bottom of the manifest file just before the closing manifest tag lt manifest gt Going back to our original sequencing sections we can replace them with this code imsss sequencing IDRef lesson seq rules gt lt the objectives element is unique per activity therefore it is not abstracted out into the collection gt lt imsss objectives gt lt imsss primaryObjective objectiveID 2 obj primary satisfiedByMeasure false gt lt imsss mapInfo targetObjectiveID g obj item one 1 writeSatisfiedStatus true
62. ion rules of the parent e exitAll Terminate this attempt on the course e retry Retry the current activity Note All prior attempt data for this activity will be erased and a new attempt generated e retryAll Retry the entire activity tree e continue Sequence to the next available activity in the tree e previous Sequence to the prior activity as available SCORM Best Practices Guide for Programmers Sequencing amp Navigation Sequencing 9 7 Additional Sequencing Elements 9 7 1 Limit Condition Sometimes you may wish to limit the number of attempts a learner may have on an activity Using limit conditions may help you achieve this design The following XML element may be inserted immediately after any sequencing rules to limit the activity to one attempt imsss limitConditions attemptLimit 1 gt Best Practice An activity may not be delivered more than its defined attempt limit Sequencing does not provide an alternate activity or action if the attempt limit threshold is met Typically the LMS will only show a message saying that the activity was not available for delivery It s up to you as the programmer to use sequencing rules specifically with condition attemptLimitExceeded as defined above to send the learner to an appropriate alternative activity 9 7 2 Randomization Controls In some cases you may wish to randomize the order in which content is presented to the learner For example you may have two
63. ise it s not much better than the standard Table of Contents Your designer should provide you with input on what the navigational map should be Some examples may be e Amap ofthe world where each continent is selectable e History timeline where dates are selectable e Images that show progression such as how plants or animals grow Figure 16 1 shows an example menu SCO implementation An interactive timeline is presented to the learner As the learner moves his mouse over the images a brief description of the material is presented To experience the training related to the Persian Gulf War the learner may click on the image associated with 1990 and SCORM 2004 Sequencing amp Navigation will present this training Click on any point along the time line to reveal the associated training The Persian Gulf War August 2 1990 February 28 1991 commonly referred to as simply the Gulf War was a war waged by a U N authorized coalition force from thirty four nations led by the United States against Iraq in response to Iraq s invasion and annexation of the State of Kuwait This war has also been referred to by the Iraqi leader Saddam Hussein as the Mother of All Battles 12 and is commonly though mistakenly known as Operation Desert Storm for the operational name of the military response 13 see section 12 1 Operational Names below the First Gulf War Gulf War I or the Iraq War 14 15 16 before the term became identified with t
64. iveID 2 obj local 1 satisfiedByMeasure false imsss mapInfo targetObjectiveID obj global 1 imsss objective imsss objectives imsss sequencing In this example we have defined a primary objective and mapped it to a shared global named obj global 1 We have also defined another local objective obj local 1 and mapped it to the shared global objective obj global 1 10 7 Understanding Mappings When a local objective is mapped to a shared global objective permissions must be defined for reading from and writing to the global objective The imsss mapInfo element lets the programmer control access to the Success Status and Normalized Measure score of an objective through the use of four attributes each having a value of true or false readSatisfiedStatus default value true writeSatisfiedStatus default value false readNormalizedMeasure default value true f writeNormalizedMeasure default value false SCORM Best Practices Guide for Programmers Sequencing amp Navigation Tracking across SCOs using Global Objectives 10 8 SCORM 2004 Am Edition Extended Global Objective Information Up until SCORM 2004 4th Edition global objectives only held values for Success Status and Score 4th Edition has extended this to cover all the elements of the cmi objectives data Completion Status Raw Score Min Score Max Score Progress Measure However since these elements were not part of the original I
65. ization lt title gt Example Course lt title gt lt item identifier EXAMPLE SCO identifierref SCO RESOURCE gt lt title gt Example SCO lt title gt lt item gt lt organization gt lt organizations gt lt resources gt resource identifier SCO RESOURCE adlcp scormType sco type webcontent href load html gt file href load html gt file href example jpg file href example swf file href example mp3 dependency identifierref LESSON COMMON gt lt resource gt resource identifier LESSON COMMON adlcp scormType asset type webcontent gt lt file href common apiwrapper js gt lt file href common common js gt lt file href common logo jpg gt lt resource gt lt resources gt 3 3 2 Content SCORM does not dictate the format of the content of a SCO It is typically standard web content that can be delivered in a web browser 20 SCORM Best Practices Guide for Programmers Course Structure amp Organization Content Packages API Wrapper There are some required elements of this web content that make it a SCO A SCO must find an instance of the SCORM This is accomplished by including a special JavaScript file in the content s main HTML page This JavaScript file is sometimes called the API Wrapper It will be named differently depending on where you acquired this file For the context of this document we will reference it as APIWrapper js The functions ref
66. jectiveMeasureWeight 0 gt Rollup Rules go here lt imsss rollupRules gt lt imsss objectives gt lt imsss objectives gt lt imsss sequencing gt As mentioned before rollup rules only apply to aggregations However all activities may participate in rollup in some way or another even SCOs Every activity has the opportunity to contribute to the rollup of the parent aggregation or not This is defined in the three attributes of imsss rollupRules e rollupObjectiveSatisfied Set to true if activity contributes to satisfied status of parent e rollupProgressCompletion Set to true if activity contributes to completion status of parent e objectiveMeasureWeight This value is used to assist in calculating an average score for the children Not all activities should contribute to rollup Consider a series of lessons followed by an assessment You may program the course so that only the assessment contributes to the Satisfied Status while both the lessons and the assessment must be completed for the course to be marked completed In this case each lesson will have rollupObjectiveSatisfiedsetto false 57 SCORM Best Practices Guide for Programmers Sequencing amp Navigation Rollups 11 5 Rollups vs Global Objectives Rollups are likely the most common way you will propagate status and scores in the activity tree However global objective mappings may also be used to affect the primary objective of a SCO or agg
67. kage itself 2 Allofthe actual SCO and asset files for the content package SCORM Best Practices Guide for Programmers Course Structure amp Organization Content Packages Manifest File An Extensible Markup Language XML file called a manifest organizes the content package The manifest is a detailed set of instructions structured in a manner specified by SCORM that organizes your content package and tells the LMS when how and what content to deliver to your learners An authoring tool typically creates the manifest though some programmers prefer to create them from scratch using an XML editor In this guide we will not assume the use of authoring tools so you can begin to understand all the components and how they fit together The manifest file is always named imsmanifest xml and it always appears at the top level of a content package zip file regardless of the structure of the rest of the package The basic structure of a manifest file is as follows manifest metadata lt metadata gt organizations organization item identifier AGG1 gt lt item identifier SCO1 identiferref RESOURCE1 gt item identifier SCO2 identiferref RESOURCE2 gt lt item lt item gt lt item identifier SCO3 identiferref RESOURCE3 gt lt item gt lt item identifier SCO4 identiferref RESOURCE4 gt lt item gt lt organization gt lt organizations gt lt resources gt resourc
68. le by using the adlcp dataFromLMS element as shown in this example lt item identifier SCO1 identifierref RESOURCE1 gt lt title gt Lesson 1 lt title gt lt adlcp dataFromLMS gt NAV MENU lt adlcp dataFromLMS gt lt item gt And in JavaScript var menuld doGetValue cmi launch data menuId will be NAV MENU here check the return value If no menu SCO is provided then no navigation request is needed if menuId doSetValue adl nav request target menuId jjump doTerminate 17 4 Impact on Reuse The Menu SCO is a great example of designing for reuse For a SCO to be standalone and easily reused or repurposed it should not have to know much about the other SCOs in the course The Menu SCO in this example is separated from the learning content and it is the only SCO that needs to use information from other SCOs The sequencing that displays the Menu SCO is in the manifest file and is relevant only to this activity tree The content SCOs themselves are not aware of the Menu SCO and can be freely reused in any context 84 SCORM Best Practices Guide for Programmers Cookbook Sequencing Collections 18 1 Background Sequencing can be complex and XML can be very verbose This combination can make for rather lengthy manifest files Many times the patterns in sequencing will be repeated throughout a course When these patterns emerge Sequencing Collections can come
69. letion Threshold It s also possible though not as common to define a completion threshold in the manifest file In the SCORM books Sequencing amp Navigation 3 14 and CAM 3 4 1 15 ADL has provided a special element to control completion This element has three attributes e completedByMeasure optional default value false Indicates whether the minProgressMeasure attribute s data value shall be used to determine completion Setting this attribute to true will force the SCO to calculate the value of cmi completion_status based on cmi progress_measure and the minProgressMeasure attribute e minProgressMeasure optional default value 1 0 The value used as a threshold to calculate completion status Valid values range from 0 0000 to 1 0000 When defined this value is compared to the value contained in cmi progress_measure If cmi progress_measure gt minProgressMeasure which is found in the read only element cmi completion_threshold the SCO will be considered completed and cmi completion_status will be updated accordingly e progressWeight optional default value 1 0 Indicates weighting factor used during completion rollup of parent The following code is an example manifest entry for a SCO that is considered completed if the progress measure is 75 completed lt item identifier ITEM3 identifierref RESOURCE3 isvisible true gt lt title gt Content 1 lt title gt lt adlcp completionThreshold completedByMea
70. lications for instructional designers and programmers Instructional Systems Designers ISDs and content authors view a SCO as content they focus on the actual instructional material in the SCO Programmers may view a SCO as a web application that communicates with an LMS In technical terms a SCO is defined as the only component of the course that uses the SCORM Application Programming Interface API for communication with an LMS The SCORM API is a standardized method for a SCO to communicate with the LMS when learners are interacting with a SCO There is specific information the SCO can retrieve from the LMS and store in the LMS For example it can store values in the LMS such as a score or completion status or retrieve information from the LMS such as a learner s name Figure 2 3 depicts the API communication link between a SCO and an LMS V LEARNER DATA deg SEQUENCING ENGINE WE SERVER Ka Figure 2 3 API Communication Link Experienced SCORM designers talk about SCOs as the content that learners see and interact with but this is not the complete story Technically a SCO must communicate with the LMS 12 SCORM Best Practices Guide for Programmers Course Structure amp Organization Introduction 2 4 Aggregation An aggregation is a collection of related activities An aggregation may contain SCOs or other aggregations In this Guide an aggregation is defined as a parent and its children The figure t
71. m within Content Navigation requests may be initiated from within the content itself This is done through a special data model element aa1 nav request Programming calls are made in JavaScript to initiate these requests The syntax of the request is as follows doSetValue adl nav request requestToken navigation request set doTerminate navigation request processed after Terminate The tokens available for use in SetValue are the same actions listed above in Section 8 3 The tokens of choice and jump have special syntax to designate the targeted activity doSetValue adl nav request target ACTIVITY ID gt choice doSetValue adl nav request target ACTIVITY ID jump ACTIVITY ID is the identifier attribute found in the manifest file for the item element associated with the targeted activity The following code should be placed within the SCO at a section that is executed when the learner is finished with a given attempt on the SCO doSetValue adl nav request continue doTerminate 8 4 4 Post condition Rule Actions have a similar effect on the content as initiating a navigation request These requests may be initiated through the use of post condition rules These include continue previous and exitAll SCORM Best Practices Guide for Programmers Sequencing amp Navigation Navigation To issue a continue sequencing request if a SCO is satisfied the following post condition rule ma
72. manifest file and monitor the API traffic between your content and the SCORM API It will ensure that at a minimum the SCO initializes and terminates correctly and that there are no conformance errors in the RTE programming e Manifest Utility Test This test will simply check the manifest file for conformance and check that the files in the package match those listed in the resources e Checksum Utility Test This is a handy utility to verify that a prior test log generated by the TS is valid for your current content package It will make sure that no files in the content package have changed since that log was generated 13 5 ADL SCORM 2004 4th Edition Content Examples 13 5 1 Background ADL provides six content packages containing functional examples of SCORM 2004 implementation strategies in addition to offering sound instruction on SCORM 2004 4th Edition content development See http www adlnet gov capabilities scorm tab learn 13 5 2 Content Examples e Manifest Basics Content Example MBCE The MBCE serves to show the basic concepts and components of a content package manifest in SCORM e Bookmarking Example BKME The BKME shows the concept of bookmarking the rules and components needed to successfully use it as well as implementation strategies to allow creation of content that can be resumed in its most recent state e Plug In Technologies Content Example PITE 68 SCORM Best Practices Guide for Programmers Re
73. mant content can be part of a curriculum or course that is managed by your LMS The figure to the left depicts a curriculum consisting of multiple independent components In this figure the red boxes represent SCORM organizations while the gray boxes represent a combination of other learning experiences such as collaboration sessions labs lectures A curriculum typically includes courses lessons and assessments using a variety of delivery media and instructional strategies The curriculum for a truck driver may include SCORM conformant content organizations in loading hazardous materials transportation and road safety as well as actual driving or loading experiences on a test course and also on public roadways The LMS would deliver 15 SCORM Best Practices Guide for Programmers Course Structure amp Organization Introduction and store learners performance data for the SCORM conformant content organizations and it might also store and manage the scheduling and completed work accomplished on the test course and public roadways 16 SCORM Best Practices Guide for Programmers Course Structure amp Organization Content Packages 3 1 Introduction All SCORM content is ultimately placed in a content package The content package is a zip file sometimes called a Package Interchange File PIF that contains everything needed to responsible for creating the SCORM content package There are tools available to create c
74. n an LMS e SCORM API and Data Model Usage All the SCORM 2004 API features and the CMI Data Model are available in the SRTE You can fully test this functionality prior to LMS deployment e Sequencing and Navigation Sequencing is one of the more complex components of an LMS implementation If you are unfamiliar with your LMS s sequencing implementation or are trying to debuga sequencing related issue it s always good to go back to the SRTE and ensure that it functions there first 13 4 SCORM 2004 4th Edition Test Suite TS 13 4 1 Background The only way to ensure your content is SCORM 2004 4t Edition conformant is to use the ADL SCORM 2004 4th Edition Test Suite here referred to as the TS 13 4 2 When to Use the TS The TS provides five tests four of which can be used by you as a content developer SCORM Best Practices Guide for Programmers Resources Tools amp Development Support ADL SCORM Resources Overview e Learning Management System LMS Conformance Test This test is used by LMS vendors to test their SCORM implementations You can ignore this test e Content Package Conformance Test This test will check your content package for conformance It will check the manifest file similar to Manifest Utility linked metadata files and will launch the SCO RTE test as well e Sharable Content Object SCO Run Time Environment RTE Conformance Utility Test This test will allow you to launch all the SCOs in the
75. n be communicated via the SCORM data model enables you to discuss with your instructional system designer ISD what information you can retrieve from or store in the LMS In SCORM 2004 every LMS must implement certain functionality to ensure interoperability and achieve SCORM conformance One element of this functionality governs how data is retrieved and stored The SCORM data model elements govern how data on learners performance and interactions is retrieved and stored A SCO must initiate all communication with the LMS After the SCO has initiated communication with the SCORM API requests to store or retrieve data from the LMS can be initiated by the SCO The SCORM data model elements described in detail in the SCORM RTE book also see the section on the Run Time Environment learner information as learners progress through a SCO An LMS is required to support all ofthe data model elements but you are not required to use any of them As a programmer you need to know what data can be communicated via the SCORM data model so you can assist your ISD in knowing what options are available 5 1 When to Implement The SCORM data model is used whenever you need to store or retrieve data related to the learner s session in the LMS For example you might want to retrieve the following information from the LMS e The learner s name for use inside the content e Well done Jane e The last location in the content the learner viewed
76. n taken to respond etc The cmi interactions data model element is an array type object consisting of many interactions A single interaction describes a tested item An interaction is represented by dot notation similar to other cmi data model elements Refer to the section on CMI Data The most common elements used in the cmi interaction object are shown below See RTE Table 4 2 9a for details of the syntax used in creating an interaction e id The question identifier This is used to associate the question to a database or master list of questions e description A description of the interaction This might be the question presented or a description of the task given to the learner e type Type of question e g multiple choice true false matching etc timestamp The time when this item was presented to the learner correct responses Defines an array of correct responses to be presented The array is a list of patterns that correspond to the type of interaction e learner response What the learner actually answered result Whether the learner s response was correct or not latency How long it took the learner to respond The interactions are a collection of information stored in arrays The cmi data model uses a zero based index position n in the dot notation to separate the data For example if there were ten assessment items the identifier of the third one would be accessed like this cmi interactions 2 id 78 SCORM
77. nd platforms are changed or upgraded Flow A control mode that defines if the LMS may sequence move activities of this cluster using SCORM 2004 Sequencing Interactions An element of the CMI data model used to track learner interaction with content Typically used to track item level interactions in assessments Interoperable Interoperable content operates across a wide variety of hardware software operating systems and web browsers regardless of the tools used to create it and 88 SCORM Best Practices Guide for Programmers Glossary of SCORM Terminology the platform such as a learning management system LMS on which it is initially delivered SCORM conformant content can easily be moved from one SCORM compliant LMS to another Item The XML element of the Manifest file representing the activities SCO and or aggregation in the organization of a content package Learning Management System LMS An LMS is a software package used to administer one or more courses to one or more learners An LMS is typically a web based system that allows learners to authenticate themselves register for courses complete courses and take assessments The LMS stores the learner s performance records and can provide assessment information to instructors Manifest A manifest is a description of everything contained in your content package Generally a tool such as the Reload Editor will be used to create the manifest as an XML document during the c
78. ntly based upon rules created by the designer Sharable Content Object SCO In general terms a SCO is a collection of assets that becomes an independent defined piece of instructional material SCOs are the smallest logical unit of instruction you can deliver and track via a learning management system LMS 90 SCORM Best Practices Guide for Programmers SCORM 2004 API Wrapper SCORM 2004 API Wrapper KKK KK RK kk Ckck Ck k kc k kc k kc k kk kck kk kk kck kc k kckckckckckckckckckckckckckckckckckokckok kok kok kk SCORM 2004 APIwrapper js 2000 2011 Advanced Distributed Learning ADL Some Rights Reserved Ck Ck ck ck ck ckck KK KK KK KKK KKK KKK KKK kk ck kk ck kk kk Sk kk Sk KK kk ck ko kk KKK ck ck ko Sk ko ko Sk Ck ck ck ko ck A Sk kv ko ko k ko ko ko ok ok Advanced Distributed Learning ADL grants you Licensee a non exclusive royalty free license to use and redistribute this software in source and binary code form provided that i this copyright notice and license appear on all copies of the software and ii Licensee does not utilize the software in a manner which is disparaging to ADL This software is provided AS IS without a warranty of any kind ALL EXPRESS OR IMPLIED CONDITIONS REPRESENTATIONS AND WARRANTIES INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE OR NON INFRINGEMENT ARE HEREBY EXCLUDED ADL AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFER
79. o the left depicts aggregations as green boxes and SCOs as gold boxes containing blue assets Aggregations are used to group related content so that it can be delivered to learners in the manner your ISD prescribes An aggregation is not a physical file it is a structure within a SCORM manifest where sequencing rules are applied to a collection of related SCOs or aggregations Figure 2 4 depicts a SCORM aggregation called Hazard Classes that contains multiple aggregations Hazard Class 1 Explosives Hazard Class 2 Gases and others This structure would continue to reveal individual aggregations for all nine hazardous materials classes These aggregations the green boxes do not contain content themselves but are a way of structuring content to apply sequencing rules Hazard Classes Hazard Class 1 Ia r4 RAER D Explosives Gases Figure 2 4 Example of Potential SCORM Content Aggregations Figure 2 5 depicts the expansion of the Hazard Class 1 Explosives aggregation the green box with six SCOs gold boxes Hazard Class 1 Explosives Overview Division 1 1 Mass Explosion Hazard Division 1 2 Fragmentation Hazard Division 1 3 Fire Hazard Division 1 4 Minor Explosion Hazard Division 1 5 Very Insensitive Explosion Hazard and Division structuring content for sequencing ie SCORM Best Practices Guide for Programmers Course Structure amp Organization Introduction Hazard Class 1 Explosives Figure 2 5 Example Expansion
80. of a Potential SCORM Content Aggregation 2 5 Organization The organization is the part of a content package where SCOs are ordered into a tree structure and sequencing behaviors are assigned to them The figure to the left depicts an organization as a red box containing multiple green aggregations and gold SCOS The organization outlines the entire structure you have created for the content that you intend to deliver as a single content package Each organization is a top level aggregation also referred to as the root aggregation in this document Figure 2 6 depicts the organization called Types of Hazardous Materials HazMat using a red box at the top of the tree with rounded corners The organization represents a content package containing three aggregations The aggregations Types of HazMat Hazard Classes and Transportation Documentation are green boxes The Types of HazMat and Hazard Classes aggregations also show their associated SCOs the gold boxes so you can see how organizations are structured SCORM Best Practices Guide for Programmers Course Structure amp Organization Introduction Transportation of Hazardous Materials HAZMAT Types of Transportation HazMat Hazard Classes Documentation Hazard Class 1 Hazard Class 2 Explosives Gases Figure 2 6 Example of Potential SCORM Organization 2 6 Curriculum or Course While a curriculum or course is outside the scope of SCORM SCORM confor
81. ontent true gt lt adlseq objectives gt lt This lets you read the global s completion status and bring it into Scope lt adlseq objective objectiveID obj prereqs gt adlseq mapInfo targetObjectiveID obj global lessons readCompletionStatus true adlseq objective lt adlseq objectives gt lt imsss sequencing gt 76 SCORM Best Practices Guide for Programmers Cookbook Assessments 16 1 Introduction An assessment otherwise known as a test is a common type of content It is implemented as a normal SCO However SCORM provides some features that can assist in the tracking and reporting of the learner s experience in the assessment In this section we will look at utilized in assessments 16 2 When to Implement The tracking requirements for an assessment will vary based on the design These requirements need to be discussed with your designers ISDs In some cases you may only need to mark the assessment as passed or failed In other cases you may also need to calculate a numeric score and store this in the LMS as well In yet other instances you may have to capture and store in the LMS detailed information about each assessed item 16 3 Examples SCORM provides some functionality that is commonly used in assessments and will help you implement almost any design your ISD provides An assessment can be a simple set of questions multiple choice true false fill in the blank etc or i
82. ontent packages or you may choose to create them from scratch Some authoring tools will create the entire content package after you load your SCOs and assets into the tool The ADL version of the RELOAD is an example of such a tool RELOAD provides a graphical interface for creating a content package and managing sequencing and other values contained in the manifest file that is described below Ensure that the tools you select match the knowledge skill and ability levels of the team members who will use them This guide will not go into much detail on tools as there are many variations in functionality 3 2 When to Implement SCORM does not dictate how learning content is organized A content package may consist of a single SCO or may be an organization of hundreds of SCOs It really depends on the design and how the course will be used and shared across organizations It s also important to understand how your target LMS organizes content Most LMSs allow registrations at the content package level and many allow the creation of a curriculum by combining content packages 3 3 How to Implement 3 3 1 Components of a Content Package A SCORM content package contains two principal parts 1 The XML manifest file that describes o Allofthe SCOs or assets you want to include in the package O Arepresentation of the content structure diagram created called the organization o The sequencing rules o Metadata for the SCOs aggregations and the pac
83. ontent packaging process The manifest includes all of the resources or assets included in the content package the content structure you created the sequencing rules and all the metadata for the SCOs and the package itself Metadata Metadata is data about data It is the information that describes what your content is both the individual pieces the assets and SCOs and the content packages Metadata enables instructional designers searching for content or assets to locate them with relative ease and determine whether they will be useful before downloading or requesting rights to your content The ADL Registry has a custom metadata taxonomy to which all metadata registered in it must adhere Navigation The event of initiatiating the overall sequencing process Typically initiated through requests such as continue or previous or by selecting an activity directly choice Normalized Measure The numeric value held in global objective Typically used as a score and maps to the score scaled element of the CMI data model when accessed from within the SCO Objective In traditional instructional design a learning objective is used to measure the attainment of a knowledge skill or ability in accordance with a predefined behavior a prescribed condition and an achievement standard Your SCOs may each contain one objective or several objectives it s up to you Your programmer may also use the term objectives but it does not necessaril
84. or code error string result return result toString KKK KK kK RR A A A A A A A A A I I I kk Function doSetValue name value Inputs name string representing the data model defined category or 94 SCORM Best Practices Guide for Programmers SCORM 2004 API Wrapper RR element value the value that the named element or category will be assigned Return true if successful EK false if failed kk Description Wraps the call to the SetValue function kk kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk function doSetValue name value var api getAPIHandle var result false if api null message Unable to locate the LMS s API Implementation nSetValue was not successful else if linitialized amp amp doInitialize var error ErrorHandler message SetValue failed Could not initialize communication with the LMS error code error code else result api SetValue name value if result toString true var err ErrorHandler message SetValue t tnamet value failed n err code err string return result toString KKK KR KR kk Rk A kc k kc kckckckckckck kckckckckckckckckck kc k kc kckck kc A A I I I ok kk Function doCommit Inputs None Return true if successful ke false if failed kxk
85. ortions of the activity tree are hidden and the active aggregation appears as the top level in the Table of Contents Details and information on additional modes can be obtained in SN section 3 2 We will discuss the most commonly used modes in this guide 7 2 When to Implement Every course uses Control Modes Even if you do not explicitly add the XML in the Manifest File to define the control modes of an aggregation a control mode exists The default control modes are displayed in Table 7 1 above 7 3 Example SCOs indicated in gold related to changing a flat tire in a vehicle All the SCOs exist at the 35 SCORM Best Practices Guide for Programmers Sequencing amp Navigation Control Modes same level as children of the root aggregation Depending on the design SCOs may be presented in a linear order or the instructional designer ISD may choose to allow the learners to pick and choose the order these lessons are presented Root Aggregation Figure 7 1 Basic Sequencing Structure SCOS indicated by gold boxes 7 4 How to Implement Control modes are implemented in the manifest file by editing the controlMode element which is the first entry in the sequencing XML of an aggregation See CAM 5 1 2 for details on the controlMode element For example to allow the learner to experience the SCOs in any order he she wants the control mode of the Root Aggregation in Figure 7 1 might look like this ims
86. quencing Rules As mentioned above it s probably not a good idea to exit the course using an exitAll navigation request from within a SCO If a learner finishes the course and has experienced all the content available to him her per the course s design then it s possible for the attempt on the course to be finalized through the use of sequencing This is done in two ways Continue Past the Last Available SCO the course to sequence past the last available SCO the course is considered to have walked off the tree The result of this action is to effectively finalize the current attempt of the course and turn control over to the LMS Initiate an exitAll Sequencing request from a Post condition Rule A post condition action can be associated with an activity that will cause the course to exit and finish based on a certain condition In the following example the course will exit if the activity is satisfied This sequencing code may be placed in the sequencing section of any SCO or aggregation lt imsss sequencingRules gt lt imsss postConditionRule gt lt imsss ruleConditions conditionCombination all lt imsss ruleCondition condition satisfied gt lt imsss ruleConditions gt lt imsss ruleAction action exitAll gt lt imsss postConditionRule gt lt imsss sequencingRules gt 63 SCORM Best Practices Guide for Programmers Sequencing amp Navigation Exiting SCOs and Courses 64 SCORM Best Practices Guide for
87. r these sequencing objectives as variables in which some information may be stored and shared with other activities Each SCO can set or read multiple objectives and a single objective can be set or read by multiple SCOs Objectives contain the following information Note that these are the same values defined in the CMI Data Model for statuses e success status e completion status e score scaled raw min max e progress measure 10 2 Examples Sequencing objectives may be used to track information at a level more granular than the SCO itself An objective may be used to e Track the status of parts of Assessments within a SCO for the purpose of remediation e Share the score of one SCO with another SCO 10 3 When to Implement Objectives should be implemented any time you need to share tracking information from one activity with another activity or if you need to persist the status of an activity across multiple attempts 50 SCORM Best Practices Guide for Programmers Sequencing amp Navigation Tracking across SCOs using Global Objectives 10 4 How to Implement To implement objectives you will be using a combination of programming inside the SCO using JavaScript and also at the manifest level using XML Before looking at code we need to take a step back and understand how objectives are viewed from within each context As mentioned an activity may contain multiple objectives But there is one special objective
88. re 3 4a from the SN book shown below explains how these values fit together SCORM Best Practices Guide for Programmers Sequencing amp Navigation Sequencing Precondition Postcondition Actions Actions Objective Measure Skip Exit Parent Attempted Known Objective Status Objective Measure Disabled Exit All Known Greater Than o Hidden From Ret If Satisfied Objective Measure Then Choice etry not Less Than Stop Forward Retry All Activity Progress Always Traversal y Known Attempt Limit Completed Exceeded L Exit Figure 3 4a Sequencing Rule Conditions and Actions Continue Previous The conditions are documented well in Table 3 4 2a of the SN book Here is a simplified table explaining the conditions Condition Description always Always True satisfied True if activity or referenced objective is passed completed True if activity or referenced objective is completed attempted True if activity has been attempted objectiveStatusKnown True if the activity or referenced objective has a satisfied status is not unknown objectiveMeasureKnown True if the activity or referenced objective has a normalized measure score scaled is not unknown objectiveMeasureGreaterThan True if the activity or referenced objective has a normalized measure greater than the measureThreshold objectiveMeasureLessThan True if the activity or referenced objective
89. regation This is a good idea if you need to control the status in ways that Rollups do not support For example instead of averaging the scores of sibling SCOs you may wish to keep the highest or latest score To accomplish this a Global may be used to keep track and write the desired score to the aggregation s primary objective SCORM Best Practices Guide for Programmers Sequencing amp Navigation Exiting SCOs and Courses 12 1 Introduction The concept of exiting learning content is an important one Everything that gets launched must eventually exit There are many variations of exiting a course that will appear to be similar from the learner s perspective but the results are quite unique 12 2 Examples There are multiple applications of the word exit so to make it clear consider the following use cases 1 Thelearner has finished a SCO and is ready for the next activity 2 Thelearner needs to pause in the course and return later 3 Thelearner has completed all the activities in the course Each of these represents a way to exit an activity in the course The resulting state of the course is different for each scenario 12 3 Exiting the SCO First we will look at what it means to exit a SCO When a SCO terminates itis either with a normal or suspend exit state If a SCO is exited normally it means that this attempt on the SCO is completed and any re entry into the SCO will initiate a new separate attempt A s
90. rner has completed the SCO based on a test score navigation through content completion activities etc Interactions cmi interactions Describes a collection of learner responses such as responses to questions or tasks for the purpose of measurement or assessment Frequently used in tests or quizzes to collect learner response information see cmi interactions Objectives cmi objectives Specifies learning or performance objectives associated with a SCO Usually across SCOs May be used to represent learning objective status and to impact sequencing decisions in the course Scaled Passing Score cmi scaled passing score Identifies the scaled passing score required to master the SCO This field is set from the LMS using the value in lt adlcp minNormalizedMeasure gt This value is read only Will be initialized to your minimum passing score and may be retrieved for reference Score cmi score raw cmi score min cmi score max cmi score scaled Identifies the learner s score for the SCO A SCO can only report one score see RTE 4 2 20 This is typically the result of some interaction the learner has with the content where a numeric score is relevant The score object is broken down into 4 sub elements with scaled being the most commonly used to represent a mastery percentage Success Status cmi success status Indicates if the learner has mastered the SCO as indicated by
91. rogrammers Getting Started with SCORM Introduction Getting Started with SCORM This purpose of this guide is to help the e learning programmer become familiar with SCORM 2004 Itis meant for programmers who have no experience with SCORM or who are familiar with earlier versions of SCORM It is not meant to be the definitive user s guide there are other documents where all the technical information can be found a link to the SCORM Books can be found under SCORM Documentation of this page If you are new to the Sharable Content Object Reference Model SCORM standards or have only used a version prior to SCORM 2004 this section will help you acclimate to currently accepted SCORM development procedures In the first part we present a typical programmer approach to creating SCORM conformant e learning and in the second part we walk you through setting up your first SCORM course 1 1 Programmer Process Programmer Process New SCORM Concepts Section in Guide linked Understand Task Understand SCORM file structures Look for code e previously created templates e in SCORM resources Books Look up SCORM terms Figure out what files need to be changed Modify or create code lar Figure 1 1 Programmer process for developing SCORM conformant e learning A typical programmer approach to navigating the SCORM waters and creating SCORM conformant e learning is outlined in Figure 1 1 For example after understanding th
92. score for the SCO var score 85 doSetValue cmi score scaled score mark the SCO as passed doSetValue cmi success status passed look up the bookmark of a SCO var bookmark doGetValue cmi location store the current state data of the SCO to be used after resuming save this data refers to a string stored in the LMS that upon resumption of the course will be fetched and used to initialize the content doSetValue cmi suspend data save this data 5 3 1 Inter SCO Data Storage Prior to SCORM 2004 4th Edition SCOs had no visibility or access into information tracked by other SCOs or even different attempts on a given SCO With 4t Edition ADL has provided the adl data data model element to allow for the sharing of sets of data across SCOs through a collection of data stores Data stores are associated with a SCO using the adlcp data see CAM 3 4 1 18 and RTE SCORM Best Practices Guide for Programmers LMS Management amp Communication CMI Data Model element and a SCO may be associated with many data stores The following XML will share two data stores with a SCO lt item identifier SCO1 identifierref RES1 gt lt title gt SCO with shared data lt title gt lt adlcp data gt lt adlcp map targetID lt adlcp map targetID adlcp data item shared data 1 shared data 2 From within the content the adl data is accessed similar to global objectiv
93. son etc to the learner via the LMS A SCORM content package contains two principal entities 1 a manifest file that lists all of the resources or assets you want to include in the package the content structure you created called the organization the sequencing rules and all of the metadata for the SCOs the LOs and the package itself 2 all of the physical SCO and asset files for the content It ends up as a PIF file zip Content Repository An accessible digital storage system containing SCORM content packages Context neutral Content Context neutral content can be separated from its SCORM package and still be considered complete You can maintain context neutrality by not referring to other SCOs avoiding direct links to other SCOs or portions of the content etc Control Mode A value defined in the manifest file to define how Navigation Requests are applied to an aggregation Data Model Elements A set of information about a learner s performance in and interaction with the instructional content initiated by the SCO and stored in an LMS Data model elements are made interoperable by the SCORM Run Time Environment Data Model The SCORM data model elements allow the LMS to collect data on the learners and their progress through the SCO This data can then be used by the LMS for reporting purposes and to offer personalized content Durable Durable content does not require modification to operate as versions of software systems a
94. sources Tools amp Development Support ADL SCORM Resources Overview The PITE shows how to implement SCORM 2004 web based solutions beyond that of JavaScript by looking at strategies of using SCORM 2004 with both Adobe Flash and Adobe Director e The Sequencing Essentials Content Example SECE The SECE provides sequencing information and examples in preparation for or reference use in development of SCORM 2004 content e The Data Model Content Example DMCE The DMCE provides data model element information and examples in preparation for or reference use in development of SCORM 2004 content e The Multiple Sequencing Content Example MSCE The MSCE provides a common set of content with different sequencing implementations to fit multiple pedagogical approaches 69 SCORM Best Practices Guide for Programmers Cookbook Bookmarking Cookbook In this section of the guide we will address common questions about SCORM that have surfaced over the years We have included examples tips tricks and best practices based on expert input and experience 14 1 Background Bookmarking is the common term used for allowing the learner to take a break and then return to where they left off in the content SCORM 2004 does not use the term Bookmarking but provides multiple ways to accomplish this 14 2 How to Implement 14 2 1 Save the State SCORM 2004 Ach Edition provides two ways to save content state that can be accessed when
95. ss controlMode flow false choice true gt However the ISD may feel it s important that the learner experience the SCOs in the order they are listed above To accomplish this the following control would be used lt imsss controlMode flow true choice false gt As mentioned control modes are defined at the aggregation levels in the course structure also called the activity tree and affect only the immediate children of that aggregation In SCORM a SCO is always a child and will never be a parent with a SCO beneath it Aggregations however can be both parents and children Remember that aggregations are simply collections of SCOs and other aggregations An easy way to remember how modes apply in sequencing is that all ofthe children will follow the control mode defined in the parent no child is special For example if an aggregation defines control mode choice as true then all the child SCOs or child aggregations SCORM Best Practices Guide for Programmers Sequencing amp Navigation Control Modes will be available for selection in the table of contents There is no inheritance of control modes so the modes set at the parent level apply only to that parent s immediate children and not even to itself A child that is an aggregation will have its own defined control modes that its children will follow For example Figure 7 2 depicts a series of SCOs under a root aggregation Each of the SCOs in this root a
96. sss preConditionRule gt lt imsss postConditionRule gt lt imsss ruleConditions conditionCombination all any gt lt imsss ruleCondition condition someCondition gt imsss ruleConditions lt imsss ruleAction action exitParent exitAll retry retryAll continuel previous gt lt imsss postConditionRule gt lt imsss exitConditionRule gt lt imsss ruleConditions conditionCombination all any gt lt imsss ruleCondition condition someCondition gt lt imsss ruleConditions gt lt imsss ruleAction action exit gt lt imsss exitConditionRule gt lt imsss sequencingRules gt Let s break it down into the components of a sequencing rule First rule conditions are either combined using AND or OR logic This is done using the conditionCombination attribute in the imsss ruleConditions element The values of all and any correspond to AND and OR Conditions are listed as children of the imsss ruleConditions element using the imsss ruleCondition elements There are three important attributes used in this element e condition the condition being tested e operator may have a value of not to add logical NOT to condition 44 Sequencing amp Navigation Sequencing e referencedObjective if comparing the condition to the value in a local objective see used here e measureThreshold When using objectiveMeasureGreaterThan or ObjectiveMeasureLessThan this attribute holds the comparison value Figu
97. strsatnayintenthr denis ebadnngattiainonihenaersversssehainisettaie 65 00 O00 Ka Naaa Kanin 70 DA BOOKIMOPKING mm a a a i acelin eatedinveapetlidere 70 RE E 73 FOU eere pc 77 17 TRE IDIHAYNUM T RNE 81 KE unto t 85 Glossary of SCORM Terminology ssssssssscsccssssssseseeeeeesessssacscseseesssscecsnenenenenssesseeeeeeesesearatananeneneseseceneaeneneneeseaeaenenenesesnanas 87 SCORM 2004 API Wrapper 91 Detailed Table of Contents Getting Started VDININUNLP 7 1 1 Programmer Process 1 2 Your First SCORM Course 1 3 5 GORM ER EE 9 Course Structure amp Organization sssini dresac dir kdu su n DURS aS ra enc dr aaae EES 10 VAS nsvr lusinp e 10 2 1 Anatomy of a SCORM GCDUFES 2 norte cnet tuere ti coser a RA 10 Did ASS OU 11 2 3 Rdcqeursii 12 2 4 Aggregation 2 5 Organization 2 6 regen Or COUTS c L ER 15 Bi Content uten 17 SD Baelen Tel EE 17 3 2 Mss 17 323 HOW Eri noon ole notani P 17 LMS Management amp Communication
98. sure minProgressMeasure true 0 75 gt lt item gt ER SCORM Best Practices Guide for Programmers LMS Management amp Communication Status and Scoring 6 2 4 Reporting Scores for Multi SCO Course We ve discussed how to set the score and completion for a SCO However most SCORM 2004 courses contain multiple SCOs The course as a whole will need to ultimately report a aggregations and propagate up the activity tree to the root aggregation 34 SCORM Best Practices Guide for Programmers Sequencing amp Navigation Control Modes Sequencing amp Navigation 7 1 Introduction In SCORM 1 2 the learner could choose any SCO at any time by clicking on a desired entry presented If you do not need to implement sequencing the default settings will allow learners to choose any SCO at any time However if you need to control the order in which your learners experience the SCOs Modes that you set to true or false Table 7 1 describes the most common control modes Table 7 1 Common Control Mode Descriptions Control Default Description SCORM Mode Value Book Choice true Allows learners to select the order in which they view the SN 3 2 1 content Flow false Requires learners to view the content in an order defined by SN 3 2 3 requests and sequencing initiates the delivery Choice Exit true Controls if learner may select an activity outside the active SN 3 2 2 aggregation via choice Typically all other p
99. t and search for SCORM conformant content Aggregation Aggregations are used to group related content so that it can be delivered to learners in the manner you prescribe Sequencing rules allow you to prescribe the behaviors and functionality ofthe content within the aggregation as well as how the aggregation relates to other SCOs within the same root aggregation In SCORM 2004 aggregations are also referred to as clusters Application Programming Interface API The SCORM API is a standardized method for a sharable content object SCO to communicate with the learning management system LMS when a learner is interacting with a SCO There is a specific set of information the SCO can set or retrieve For example it can retrieve information such as a student name or a set of values such as a score API Wrapper A script commonly used in SCORM development to simplify how a programmer interacts with an instance of the SCORM API The script will contain wrapper functions that find the API instance and encapsulate commonly used functionality Asset Assets are electronic representations of media text images sounds web pages and other pieces of data that can be delivered to a Web client They do not communicate with the LMS directly Assets like the sharable content objects SCOs in which they appear are highly reusable In order to be reused assets are described using metadata so that they are both searchable and discoverable in online cont
100. t can be a complex scenario with detailed step by step processes that must be performed in a certain order SCORM does not impose any restrictions on assessments An assessment in SCORM is treated just like any other type of SCO 16 4 How to Inplement 16 4 1 Pass Fail and Scoring Most assessments are graded and given a result of passed or failed This value is calculated by the programming logic in the course and the resulting value is stored in the LMS as follows cmi success status is either passed or failed doSetValue cmi success status passed SCORM Best Practices Guide for Programmers Cookbook Assessments Many assessments are also given a numeric score The calculated numeric score is stored in the LMS using the cmi score object represents a score of 75 doSetValue cmi score scaled 0 75 16 4 2 Interactions In some assessments detailed information about each assessed item is also captured and stored To track details about each tested item in an assessment the data model element cmi interactions is used see RTE 4 2 9 Interactions allow a SCO to send data to the Learning Management System LMS about a learner s performance in an interoperable way It provides a detailed model for designers and programmers to collect metrics about learner responses or performance within a SCO particularly detailed data related to performance on assessments such as expected correct response the learner s response duratio
101. t is called imsss minNormalizedMeasure and is detailed in CAM 5 1 7 1 1 When used in conjunction with the satisfiedByMeasure attribute in the primary objective the pass fail status of the activity can easily be controlled by the manifest In the following example any score of 60 or higher will result in a passing status lt imsss primaryObjective objectiveID PRIMARYOBJ satisfiedByMeasure true gt lt imsss minNormalizedMeasure gt 0 6 lt imsss minNormalizedMeasure gt lt imsss primaryObjective gt 6 2 3 Completion and Progress A SCO is either completed or not depending on the progress of the learner There are two cmi progress measure This is used to indicate partial completion and also automatically update cmi completion status Referencing the table in RTE 4 2 18 cmi progress measure has the following impact on cmi completion status 32 SCORM Best Practices Guide for Programmers LMS Management amp Communication Status and Scoring cmi progress measure cmi completion status 0 not attempted 1 completed 0 lt value lt 1 incomplete typically unless a cmi completion_threshold is defined and the cmi progress_measure gt cmi completion_threshold cmi completion_status This may be set to incomplete or completed Default value is not attempted As the programmer you are typically responsible for setting this value unless cmi progress_measure is used Comp
102. ter importing into the LMS e Table of Contents does not provide context to the learner The LMS does not know the context of your content and therefore cannot provide the learner with prompts that might be necessary to help them make a good choice in the table of contents e Table of Contents UI is not customizable The LMS provided Table of Contents is typically just an outline structure representing the activity tree For your content you might wish to provide something a bit more engaging or graphically stimulating This is currently not possible All these issues keep the Table of Contents from being a viable navigation element in some cases There is a design pattern which we will call the Menu SCO which may be used to help 17 2 How to Implement The steps to implement this are listed here and described in detail in the sections that follow Create a SCO that contains a nice menu Use Shared Globals to track status of menu items Program menu to use global objectives Program menu to issue Navigation Requests Add navigation to show menu after each item SCORM Best Practices Guide for Programmers Cookbook The Menu SCO 17 3 Create a SCO that Contains a Nice Menu Get creative This can be anything you want The key here is to add value This is your chance to add context to navigation and give the learner the information he she needs to experience your course effectively It should contain some thought and design otherw
103. terminated cleanly before the unload occurred if alreadyTerminated false make sure they meant to close the window event returnValue Are you sure you want to exit the content event cancelBubble true add some cleanup or bookmarking code here as appropriate doSetValue cmi exit suspend alreadyTerminated true doTerminate 12 4 Exiting the Course If the SCO is exited as described above the course session is still active The learner will have to select a new activity or sequencing will present a new activity to him her The course session is not necessarily exited if the SCO exits A course is usually exited when the learner needs to take an extended break from the course or when the course is completed 60 SCORM Best Practices Guide for Programmers Sequencing amp Navigation Exiting SCOs and Courses A course is exited through the use of exitAll or suspendAll navigation requests There is a similar relationship at the course level with exitAll and suspendAll that exists in the SCO with normal and suspend cmi exit values If a course receives either of these navigation requests this will cause the course to close and the LMS will regain control From within a SCO when explicitly wanting to pause the course the following code should be used doSetValue cmi exit suspend doSetValue adl nav request suspendAll doTerminate This will exit
104. the Activity Tree There are an infinite number of structures and designs that are possible in SCORM 2004 but at the end of the day there needs to be a status reported for the root of this tree i e calculating and bubbling up statuses through the activity tree is called Rollups Rollup rules see CAM 5 1 6 and SN 3 7 are used to report the status of children to their parents Each aggregation conceptually asks its children what their status is The aggregation can then determine its status and report its status up the tree until the root aggregation knows the status of each of its children Like standard sequencing rules rollup rules follow an if then pattern using conditions defined from the limited vocabulary shown in SN Figure 3 7a reproduced below Rollup rules apply to a defined subset of the children Child Activity Conditions Objective If Objective Activity not Status Known Progress Known Satisfied Completed Attempt Limit At Least Count Exceeded MU Percent Satisfied Not Satisfied Completed Incomplete Figure 3 7a Rollup Rule Child Activity Set Conditions and Actions 11 2 Examples Some conceptual examples of rollups are e Satisfy Pass the aggregation if all the children are satisfied e Complete the aggregation if 75 of the children are completed e Fail an aggregation if any of the children are failed Not Satisfied 11 3 When to Implement As the programmer you
105. the SCO leaving it in a suspended state and exit the course leaving the entire course in a suspended state At this point the entire learning session will be removed from the screen and control will be handed back to the LMS The course may be launched again and will resume at the suspended SCO If the adl nav request element is not set then the content will remain on the screen Itis up to you as the programmer to provide instructions to the learner on how to launch another activity The following code can be used in the sequencing section ofthe SCO where a course exit is desired lt imsss sequencing gt lt imsss sequencingRules gt lt imsss postConditionRule gt lt imsss ruleConditions gt lt imsss ruleCondition condition satisfied gt imsss ruleConditions lt imsss ruleAction action exitAll imsss postConditionRule imsss sequencingRules imsss sequencing 61 SCORM Best Practices Guide for Programmers Sequencing amp Navigation Exiting SCOs and Courses 12 5 When to Implement As a programmer it s important to understand the concepts of exiting and it s up to you to ensure that each exit scenario is available and accounted for per the course design You should also assist in the development of test plans to ensure coverage of the scenarios during the testing phases of development 12 6 How to Implement There are four places that affect when and how content is exited The LMS
106. the content is required to set automatically on termination Default false e objectiveSetByContent SN 3 13 3 If true the content is required to set automatically on termination Default false 9 7 4 Sequencing Collections The XML for sequencing can become quite verbose especially if sequencing designs are repeated throughout the course To remove duplication sequencing collections may be 49 SCORM Best Practices Guide for Programmers Sequencing amp Navigation Tracking across SCOs using Global Objectives 10 Tracking across SCOs using Global Objectives 10 1 Sequencing Objectives Some terms e g objective primary objective used to signify a specific function of instruction could have different meanings in SCORM related to sequencing your content You should keep in mind the definitions of these words within the context of SCORM sequencing In sequencing the variables that can store information about one SCO in the LMS that can be retrieved for later use are called objectives SN 3 10 These are not to be confused with learning objectives which in traditional instructional design are used to measure the attainment of knowledge skill or ability in accordance with a predefined behavior a prescribed condition or an achievement standard When discussing your sequencing behaviors with an ISD make sure you are both referring to objectives in the same way to avoid confusion As a programmer you should conside
107. tion action complete gt lt imsss rollupRule gt lt imsss rollupRules gt 74 SCORM Best Practices Guide for Programmers Cookbook Prerequisites 15 2 3 Map Aggregation s Primary Objective to a Shared Global In order to track the completion status of the lesson aggregation a shared global objective must be used This shared global is mapped to the primary objective of the aggregation In this example we are writing from the primary objective to the satisfied and completion status of the shared global named obj global lessons This global will always have the current Completion Status of the cluster We will use this later to create the prerequisite condition lt imsss objectives gt lt Map that global to the primary of the aggregation so it gets the core status gt lt imsss primaryObjective objectiveID 2 obj primary satisfiedByMeasure false gt lt imsss mapInfo targetObjectiveID 0bj global lessons writeSatisfiedStatus true gt lt imsss primaryObjective gt lt imsss objectives gt lt l Use the 4th Ed adlseq objectives to capture if this aggregation is completed in a global named obj global lessons lt adlseq objectives gt lt adlseq objective objectiveID obj primary adlseq mapInfo targetObjectiveID obj global lessons writeCompletionStatus true adlseq objective lt adlseq objectives gt 15 2 4 Create Pre Condition Rule on Assessm
108. tual examples of these requests are Continue to the next activity Suspend this entire session Exit finish this course Jump to the post test 8 3 When to Implement As the programmer it s very important to understand when navigation requests occur The timing of navigation events must adhere to the design the ISD provides For every SCO see requests are allowed to take place The main set of actions available through navigation requests are previous request the previous activity continue request the next activity exitAll exit finalize the attempt on the course suspendAIl suspend and close the current session choice target a specific activity to launch Allowed based on control mode see e jump target a specific activity to launch Always allowed Less commonly used actions are e exit terminate the current activity normally e abandon terminate abnormally Activity may not be resumed e abandonAIl terminate attempts on all activities May not be resumed 99 SCORM Best Practices Guide for Programmers Sequencing amp Navigation Navigation 8 4 How to Implement There are four ways to initiate navigation requests 8 4 1 LMS Navigation Elements The Learning Management System LMS will provide some navigation elements in its own user interface UI These include previous and continue usually shown as previous next arrows and some form of exit exitAll abandon abandonAll suspendAll You should b
109. uspended SCO retains state data from the prior session and upon resumption of the content the learner may be placed section To exit normally which typically indicates some finality not needing to resume the following JavaScript code in the SCO may be executed doSetValue cmi exit normal doTerminate To exit in a suspend state the ability to resume later a Cc ei c a c NS n a c T e o m n Cc c es O C x 3 D a fo ul Ne SCORM Best Practices Guide for Programmers Sequencing amp Navigation Exiting SCOs and Courses doSetValue cmi exit suspend doTerminate From the learner s perspective nothing happens when these JavaScript calls are made The content remains on the screen and the learner may continue to interact with it It is up to you as the developer to remove the content from the screen and provide input to the learner regarding what actions to take next In many cases the learner may exit the SCO at unexpected times This can occur ifthe learner clicks the LMS navigation menu or table of contents or simply closes the browser using the window s close button As the programmer you need to be prepared for such cases using the browser s event handling functions For example if the learner closes the browser the following code will show a confirmation dialog and suspend the SCO if closed function doOnUnload check if we already
110. versions of an assessment and you want the learner to only be presented with one of them This can be accomplished through the use of randomization controls see SN 3 12 Randomization XML is placed before Delivery Controls on an aggregation It does not make sense in the context of a SCO The most common example is to reorder all the children prior to delivery lt imsss randomizationControls randomizationTiming onEachNewAttempt reorderChildren true gt Best Practice If you want to only deliver one of the activities in an aggregation when using randomization controls you will need to use post condition rules to exit the aggregation after the learner takes the randomized activity presented to them This will prevent the remaining sibling activities from being delivered The following XML could be placed in the sequencing XML of each child in the aggregation lt imsss postConditionRule gt lt imsss ruleConditions conditionCombination any gt lt imsss ruleCondition condition always gt lt imsss ruleConditions gt lt imsss ruleAction action exitParent gt lt imsss postConditionRule gt 48 SCORM Best Practices Guide for Programmers Sequencing amp Navigation Sequencing 9 7 3 Delivery Controls There are three attributes that can be set in Delivery Controls e tracked SN 3 13 1 Whether or not the LMS manages tracking status information Default true e completionSetByContent SN 3 13 2 If true
111. y be implemented lt imsss sequencingRules gt lt imsss postConditionRule gt lt imsss ruleConditions conditionCombination all lt imsss ruleCondition condition satisfied gt lt imsss ruleConditions gt imsss ruleAction action continue gt imsss postConditionRule imsss sequencingRules 42 SCORM Best Practices Guide for Programmers Sequencing amp Navigation Sequencing 9 1 Introduction Sequencing is the process in which content objects are selected by the LMS for delivery to the learner Sequencing is typically initiated by a navigation request as described in section process rules are evaluated and an activity SCO or aggregation is identified for delivery Sequencing is the most complex part of SCORM In this guide we will break down the most commonly used pieces of sequencing and give you the information needed to be successful Under the blanket of sequencing there is a lot of functionality Some of this functionality is In this section we will cover Sequencing as it relates to moving from one activity to another and also address some miscellaneous sequencing items Limit Conditions Randomization and Delivery Controls For a full list of sequencing components see SN 3 1 and CAM 5 1 1 9 2 Examples Some conceptual examples of sequencing are Move from one SCO to the next Retry a cluster if failed Exit a cluster in the middle Skip an activity that has already been attempted 9 3 When
112. y mean the same thing When the programmer sets up sequencing which are the rules that guide the way the content is presented to the learner the variables that can store information about one SCO in the LMS that can be retrieved for later use to impact another SCO are also called objectives The programmer can use these objectives at the ISD s direction to do remediation automatically Objective Map Used to define how a local objective is mapped to a global objective Organization The organization is the part of a content package where SCOs are ordered into a structure and sequencing behaviors are assigned to them The organization outlines 89 SCORM Best Practices Guide for Programmers Glossary of SCORM Terminology the entire structure you have created for your content The organization provides order to the otherwise unordered collection of SCOs and their metadata Primary Objective Used to define the objective that contributes to the rollup of an activity Progress Measure The number used to track progress for an activity This number is represented by a scaled decimal number between 0 and 1 Remediation Remediation is used to help learners comprehend instruction with which they may be struggling In the event that learners do not answer a test item correctly or fail an entire test they can remediate to already viewed content for review or completely new content to try and understand from a different approach In SCORM 2004

Download Pdf Manuals

image

Related Search

Related Contents

Dicota LadyAllure  HP EliteBook Folio 1020 G1  Samsung Digital Camera EZ View Kit User's Manual  Juniper WXOS-20-64K-2  Guía sobre riesgos laborales y medidas preventivas Guide  Navman 11 GPS Receiver User Manual  Kramer Bass Channel User Manual  Garmin Edge 810 Quick Start Manual    Riferimento per la distribuzione del software ZENworks 10  

Copyright © All rights reserved.
Failed to retrieve file