SCORM Talk vs. SCORM Walk
Categories: e-Learning Atlas, Ideas and Thoughts, SCORM 2004, SCORM 2004, SCORM Cloud, SCORM Cloud
13 Dec 2011
When looking through the eLearning Atlas, I wondered if the versions of SCORM that companies claim to support are closely matched to what we see being used in reality, via SCORM Cloud. Let’s check it out:
Versions of Claimed SCORM Support in the eLearning Atlas vs. Use in SCORM Cloud:

1 Comment | Post a comment »
eLearning Atlas: Research Worth Sharing
Categories: AICC, e-Learning Atlas, SCORM, SCORM 2004, SCORM 2004
5 Dec 2011
We created the eLearning Atlas to be an ideal tool to easily find the proper solutions. Jena and I have tried to speak to every company in the Atlas, and we continue to seek those that we’ve missed. This process provides a valuable pool of data. Rather than hoard this information, I thought it would be nice to share.
Let’s take a graphical look at some of the interesting conclusions I’ve drawn. The following graphs only include traditional products that can implement standards (Authoring Tools, LMSs, LCMSs and Content Libraries). Here we can see the haves and the have-nots:
eLearning Atlas Products That Support At Least One Standard:

A look at the Haves:

So, what does this all mean? For the majority of the industry, SCORM works, but there are lots of eLearning products out there that don’t play nicely with one another. The creation and delivery of content is a hard problem to solve, without a common standard or model… it’s really hard to solve.
When developers try to fit a unique course into a unique learning system… things get complicated. When eLearning gets complicated, things get expensive.
The eLearning Atlas proves that there are thousands of possible companies who can create, manage and deliver eLearning, some doing it without any claimed support for standardization. For some companies, the expense of stepping outside their branded box of solutions, locks a customer in for life. We think SCORM frees people to choose the best fit. The eLearning Atlas can help users easily filter out the noise of companies who are not interested in playing nicely with one another, and make connections with products that want to work together.
To look at it another way, we’ve currently found 219 Authoring Tools, some being used by 360 Custom Content Creators to make training that will be delivered using 655 LMS/LCMSs… that’s 51,640,200 possible combinations. Trying to fit all those pieces together, each time, is a daunting task and the exact pain ADL created SCORM to solve. SCORM (and other standards) help eLearning providers play nicely with one another; the eLearning Atlas can help users find the products and services that will play nicely with the systems they already use.
No Comments | Post a comment »
A car salesman’s credibility is quickly lost when he guesses what size engine is under the hood or what the gas mileage could be. Claiming a car has “good” gas mileage is not the same thing as knowing it’s 40 mpg. A 6-cylinder engine can come in a variety of flavors… in-line or V, turbocharged or naturally-aspirated, these details create some machines that are much faster than others. With cars, more is not always better, sweating the details creates vehicles that keep “car guys” debating for hours. People who care nothing for cars will make generalizations that make me cringe, but nobody wants a guessing salesman to help choose the perfect vehicle.
3 Comments | Post a comment »
4 Things Every SCORM Test Should Do When Reporting Interactions
Categories: SCORM 2004, SCORM Driver
5 Nov 2010
A year ago, we talked about 5 things every piece of SCORM content should do. Today, I wanted to mention 4 things every SCORM test should do… Keep in mind, SCORM tests are a subset of SCORM content, so they should be doing those same 5 things I mentioned a year ago. Take that as a given. This is just a further set of details.
1. Record your interactions with full detail
SCORM provides a way for content to record the learner’s answers (and the questions) to the LMS. Put simply, do it. We see content all the time that elects not to report these interactions, and it’s a waste. Even if the LMS doesn’t report well on this information today, it could do so ultimately. And from a learning/remediation perspective, it’s crucial that the administrators of the LMS be able to see how their learners are progressing. Just do it. Nike would be proud.
Now for the details. Recording interactions can be done well or done poorly. If you want to do it really well, and your LMS supports it, opt to use SCORM 2004, rather than SCORM 1.2. SCORM 2004 allows content to be far more expressive in reporting interactions.
Next, understand the data model elements. I’ll spare you all the details here, but here are some highlights. For the purpose of examples, pretend like we’re working with this question:
What is my name?
A. Tim Martin
B. Reggie Benes
C. Dan Stook
D. Keith Bolliger
- Record the result (correct/incorrect) in cmi.interactions.n.result
- Record the learner response and correct response using a human readable identifier (or collection of them). Better to record “Tim_Martin” than “A” if the learner answered the question correctly. This gives the LMS an opportunity to share that data with the administrator in a useful fashion. And in SCORM 2004, “Tim_Martin” is now a valid response pattern. (In SCORM 1.2, “A” was the best you could do.)
- Use cmi.interactions.n.description. Frankly, this is one of the best additions in SCORM 2004, allowing you to record that the question was, in fact, “What is my name?” From a reporting perspective, this a vast improvement.
- If you’re going to go this far, you might as well complete the data model and record the following:
- cmi.interactions.n.type
- cmi.interactions.n.weighting
- cmi.interactions.n.latency
- cmi.interactions.n.timestamp
2. Understand the difference between state and journaling
First things first… interactions are recorded in an array. Take note of cmi.interactions.N.whatever. That array is sequential, and each time a SCO wants to record something to it, it has to ask for the next available space (via cmi.interactions._count). Separate from the N I’ve just mentioned, though, is the identifier of the interaction… cmi.interactions.n.ID.
If a piece of content wants to record a 10 question test and have a slot for each of the 10 questions, it can do that, even if they allow the user to update their answers. It would do so by cycling through the existing interactions and examining their cmi.interactions.n.ID to see if it matches the one that needs to be updated. This technique of updating a given interactions values by cycling through the array and resetting those values is called “state” or “stateful”. The recorded interaction indicates the current state of those values. It also eliminates any prior values that may have been recorded. State is a valid approach to recording interactions.
On the other hand, the array allows for you to simply add another value to the interactions array rather than seeking out the old array location and overwriting it. In this case, the content would simply request the cmi.interactions._count value and record the new interaction data in that slot of the array. In using this journaling technique, all of the historical values for that interaction are maintained. If the content wishes to retrieve those values, say on relaunch of the content, though, it has to be more intelligent about discerning which of the answers was most recently given.
Note, both journaling and state are valid option. It’s crucial, though, that the content manage it’s concept of cmi.interactions.n.ID well though. A piece of content that uses a new ID each time it reports and interaction is not properly journaling, because the association between multiple answers of the same question is lost.
3. Set completion status and success status
In SCORM 1.2, completion status and success status were rolled up into a single entity, cmi.core.lesson_status. It had six potential values, including completed, incomplete, passed, failed. In this world, it was impossible for the content to tell the LMS if a failed status meant that the user should be allowed to take the content again or not. Was it failed because they hadn’t finished? Who knew?
SCORM 2004, though, separates the concepts of passing and completing using two distinct data model elements:
- cmi.complete_status (completed, incomplete, or unknown)
- cmi.success_status (passed, failed, unknown)
This allows the content to be more expressive about whether a failure was final. Each content vendor is welcome to their own interpretation here, but making use of both completion_status and success_status is important in SCORM 2004.
4. Post a score
Lastly, be sure to post a score. It’s such a simple thing to do, and it’s hugely useful to the LMS. Take note, in SCORM 2004, the posting of a score should look like this for a 10 question test on which you got 8 right.
- Set cmi.score.raw to 8
- Set cmi.score.min to 0
- Set cmi.score.max to 10
- Set cmi.score.scaled to 0.8
5 Comments | Post a comment »
Score Rollup in SCORM 1.2: There's no silver bullet
Categories: SCORM 2004, SCORM Cloud, SCORM Engine, Using the Standards
7 Oct 2009
I got this question today (and yes, we really do mean you can ask us anything…):
We are making configuration settings for our new LMS ([redacted]) and one of the questions is:
1.3.5. How is the overall score for a SCORM course with more than one SCO computed? With the following choices:
- MaximumScore. Highest score of all items (SCOs) in the course.
- AverageScore. Average score of all items (SCOs) in the course.
- FirstScore. The first score achieved by the user across all items (SCOs) in the course. Note: If this option is selected, ScormScoreUpdateOption should be set to “Never” and the user’s score will always remain the first score they achieved.
- MostRecentScore. The most recent score achieved by the user across all items (SCOs) in the course.
What do you recommend?
My first reaction
Well, clearly we’re talking about an LMS that is really SCORM 1.2 centric. This ability to manage scores across attempts and SCOs is one of the things that SCORM 2004 actually does very well. Rollup rules allow the content author to specify these behaviors in great detail, including weighting the various elements and even excluding some. This provides the author with useful tools such as pre-assessment that doesn’t impact overall satisfaction.
My second reaction
There simply is not a good answer to this question. If these settings are global, as they appear to be, I can’t be forced to pick one in particular as it wouldn’t serve other situations adequately. The most common multi-SCO package structure, to my mind, is a course with several SCOs and a single post test (assuming we’re dealing with more than one score). I’m not sure that any of these options serve that package structure well at all.
My ultimate conclusion
An LMS simply can’t afford to make singular decisions about how to deal with content. It absolutely has to provide configurability on a package by package basis. Failing to acknowledge that the world of content is widely varied will lead to content that doesn’t work as desired. This, frankly, is why building an LMS with SCORM conformance is so difficult to get right.
How we handle it in SCORM Engine and SCORM Cloud implementations
Package properties provide our ability to address different pieces of content differently. (Take a look at the possibilities. There are more than 50 options for configuring a course. All are defaulted intelligently, but all are also the answer to a question that has to be answered for certain courses.)
Take a look at how we’ve approached the particular problem of rolling up scores in SCORM 1.2. We have options that aren’t unlike those offered in the question above. The differences are relevant, but only to a degree. Fundamentally important, though, is that you can set these properties for each package.
I hope this provides a bit of illustration as the level of detail required to really nail the SCORM problem. We suffer this minutiae so our customers don’t have to.
Note: Don’t worry, my recommendation for the person who sent the question isn’t as obtuse as, “Use the SCORM Engine”… We’re still chatting via email…
3 Comments | Post a comment »
Older Posts »



