Creating a Small SCORM Conformant Course

Step 1

To make it easier, break your folders out as follows.


*where (n) is the sco number you are referencing

This structure will allow for easier sharing and referencing of objects. It will also allow for easy packaging of courseware.

Step 2

Break your courseware into SCO's. There are countless methods of how to do this, but the concept is simple. If the content can teach something as a stand-alone unit then it is a SCO. Many people make each lesson a SCO. This is simple and conformant to the specification, but may not truly get to the level of granularity SCORM, in theory, talks about.

Step 3

Now to create a simple course, first download the latest SCORM API from and place it in the jscript directory. Then reference it in the <head> of your HTML as follows.
<script src="jscript/APIWrapper.js"></script>

NOTE: you must reference this file in all your HTML pages. This file contains basic functions used to communicate with the LMS.

Second, you must initialize communication with the LMS anytime a SCO is launched and finish communication when a SCO is closed.

With this in mind ask yourself:
"Is this the first page of my SCO?"
If your answer is yes then you must initialize this page to the LMS. To initialize you SCO to the LMS simply call LMSInitialize() from the API. Do this by placing this function in the onLoad event of the body of the document as seen here.

<body onload="LMSInitialize()">

BE SURE TO CHECK if this page has already been initialized or you will get an error trying to re-initialize a page that is already "talking" to the LMS.

Third, go through the SCO asking yourself "Is this the last page of my SCO?" When you can say yes this is the last page, you need to finish communication with the LMS. Do this by placing LMSFinish() in the onunload event of the body of the document as seen here.

<body onunload="LMSFinish()">

Step 4

The previous stps deal with setting up communication with the LMS. Now, if you need your SCO to "talk" to the LMS it can. You can use any of a number of functions listed in the SCORM 1.2 specification such as cmi.core.lesson_status which gets and sets the status of the lesson. I am not going to go through all that, but they are explained in the specification if you need to use them.

Step 5

Create a Manifest file. This file is used by the LMS to determine, in what order, you want your course materials displayed. It also delivers to the LMS a list of all resources used in your course. Again, we have a Simple SCORM Packager ( you can use to complete this process.

Step 6

Upload the package from Simple SCORM Packager up to your Learning Management System. That is all that is required to pass conformance. We understand that this may be complicated. This is why we offer training, consulting and tools to help in the process. If you need any of our services please let us know.