3

I'm creating an e-learning module which uses SCORM 2004 4th Edition to communicate with the host learning management system.

At the moment I've setup my imsmanifest.xml simply so I have one primary objective which is satisfied by a score of 70% (0.7).

<manifest xmlns="http://www.imsglobal.org/xsd/imscp_v1p1" xmlns:adlcp="http://www.adlnet.org/xsd/adlcp_v1p3"
          xmlns:adlseq="http://www.adlnet.org/xsd/adlseq_v1p3" xmlns:adlnav="http://www.adlnet.org/xsd/adlnav_v1p3"
          xmlns:imsss="http://www.imsglobal.org/xsd/imsss" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:lom="http://ltsc.ieee.org/xsd/LOM" identifier="com.scorm.manifesttemplates.scorm2004.4thEd" version="1"
          xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1 imscp_v1p1.xsd http://www.adlnet.org/xsd/adlcp_v1p3 adlcp_v1p3.xsd http://www.adlnet.org/xsd/adlseq_v1p3 adlseq_v1p3.xsd http://www.adlnet.org/xsd/adlnav_v1p3 adlnav_v1p3.xsd http://www.imsglobal.org/xsd/imsss imsss_v1p0.xsd http://ltsc.ieee.org/xsd/LOM lom.xsd">
    <metadata>
        <schema>ADL SCORM</schema>
        <schemaversion>2004 4th Edition</schemaversion>
        <lom:lom>
            <lom:general>
                <lom:title>
                    <lom:string language="en-GB">Hello World</lom:string>
                </lom:title>
                <lom:description>
                    <lom:string language="en-GB">A quick example how to to set the passing score in the imsmanifest.xml</lom:string>
                </lom:description>
            </lom:general>
        </lom:lom>
    </metadata>
    <organizations default="ORG">
        <organization identifier="ORG" adlseq:objectivesGlobalToSystem="false">
            <title>Hello World</title>
            <item identifier="I_HW0" identifierref="HW0" isvisible="true">
                <title>Hello World</title>
                <imsss:sequencing>
                    <imsss:objectives>
                        <imsss:primaryObjective objectiveID="init.cmi.scaled_passing_score" satisfiedByMeasure="true">
                            <imsss:minNormalizedMeasure>0.7</imsss:minNormalizedMeasure>
                        </imsss:primaryObjective>
                    </imsss:objectives>
                </imsss:sequencing>
            </item>
        </organization>
    </organizations>
    <resources>
        <resource identifier="HW0" type="webcontent" adlcp:scormType="sco" href="start.htm">
            <file href="start.htm"/>
        </resource>
    </resources>
</manifest>

In JavaScript I'm using this API Wrapper to communicate with the learning management system's API.

Like so.

// If score is >= 0.7 they have completed the primary objective.
var score = 0.8;
pipwerks.SCORM.set('cmi.score.scaled', score);
pipwerks.SCORM.set("cmi.completion_status", (score >= 0.7) ?  "completed" : "inprogress");

I've seen the SCORM documentation that you can have multiple objectives each with there own score.

However I could not find a way to have the objective scores tie to the primary objective.

I was looking for some way to weight the objective scores and have the primary objective score equal the weighted sum average of the objective scores.

Is there a way to configure the imsmanifest.xml so the learning management system knows how to do this?

  • 0.7 actually pertains to 'cmi.scaled_passing_score'. When this is defined, the LMS has the responsibility to maintain congruence between 'cmi.score.scaled' and that threshold for setting 'cmi.success_status'. (passed, failed). Your job within the SCO is to properly score your content either by creating multiple objectives and averaging it out, or doing some other propritary means of score calculation. (as I understand it). Keep in mind your example of setting completion_status is technically tied to 'cmi.progress_measure'. – Mark May 22 '15 at 16:15
  • 2
    also 'inprogress' is not a legal vocabulary word - 'completed', 'incomplete, 'unknown' are. I've got more indepth docs on some of this at https://github.com/cybercussion/SCOBot/wiki/SCORM-SCOBot-Documentation and just search 'setObjective' or 'setInteraction'. – Mark May 22 '15 at 16:19

0 Answers0