Archive for November, 2006

Creating a course with a single SCO in SCORM 2004

Sunday, November 12th, 2006

SCORM 2004 lets you create a course with multiple SCOs. However, many people prefer to create a their courses with a single SCO. One advantage of creating a course with a single SCO is that you do not have to spend much time learning how SCORM 2004 sequencing and navigation rules work. Unfortunately, your single-SCO course still gets the default sequencing and navigation rules if you like it or not. The defaults are usually not what you want so here is a tiny bit of SCORM manifest code that you may want to use in your single-SCO course. I’ll show the code first and then explain how it works.

<organizations default=”crs_hello”>
  <organization identifier=”crs_hello”>
  <title&rt;Hello World Course</title>
  <item identifier=”sco_hello” identifierref=”sco_hello_ref”>
  <title>Hello World SCO</title>
  </item>
  <imsss:sequencing>
  <imsss:controlMode choiceExit=”true” flow=”true” />
  <imsss:deliveryControls completionSetByContent=”true” objectiveSetByContent=”true” />
  </imsss:sequencing>
  </organization>
</organizations>

The <organizations> section defines a course with a single activity. The activity is linked to a SCO with the identifierref = “sco_hello_ref” (this SCO is defined in the <resources> section not shown in this example). The course has some sequencing rules shown in bold type. Here are the rules:

  • choiceExit = true – this means the learner can exit from the activity. This is not really needed here because there is only one activity but a good thing to have if you will add more SCOs to this course
  • flow = true – this tells the LMS to flow automatically navigate to the first SCO in the course. This means that the learner will not have to take some action to launch the SCO.
  • completionSetByContent = true – the SCO will tell the LMS when it is complete by setting cmi.completion_status
  • objectiveSetByContent = true – the SCO will tell the LMS the status of its primary objective by setting cmi.success_status.