Questions about SCORM

89 views
Skip to first unread message

Menthos

unread,
Nov 16, 2009, 2:24:51 PM11/16/09
to eLearning Technology and Development
Hi,

Since I'm a newbie on this group, allow me to introduce myself. I'm a
web developper for the governement of Canada. For the last 3 years, I
have been working closely with learning designers and built lots of e-
learning web applications, mainly in French or English as a second
language training. We were developping courses using different
technologies like Flash, ASP and SQL server. We weren't developping in
SCORM. However, we are changing our old LMS for a new one (Saba) and
one of our mandate is to migrate all the content from our old LMS to
the new system, the courses must now use SCORM tracking.

So I went on the Internets, did alot of reading on the ADLnet site,
downloaded the scorm 1.2 and 2004 documentation. I also installed the
ADL Scorm 1.2 and 2004 test suites and did some testing. So now I have
a good idea of how it all works but I still have more technical
questions to which I can't find any answers so I hope someone on this
group will be able to help me out a litte.

We have about 270 different courses to migrate to the new system.
Since half of them are using ASP and SQL, they cannot be fully SCORM
compliant, but we can still it for tracking and reporting purposes, we
don't need to reuse them, so we decided to each one of them as a
single SCO. We don't want to recode everything in HTML, we simply
don't have the time and we would lose some good functionnalities
provided by server-side technologies.
All we need to do for the migration is "wrap" the courses as a single
sco, store the time passed on it and the completion status. However,
for some of them, we need to store assessment results.

While doing this "wrapping" and testing, we came accross many problems
to which I can't find any answers. Here are a few of them. I hope
someone will be able to guide me on this.

1 - Bilingual courses

Most of our courses are bilingual. The user can toggle at anytime in
the product to switch between French and English. Since these courses
are for language traning, the user must have this options available
(also because of official languages policies). Lets say a user is
learning French and doesn't understand a sentence, he can switch to
the english version to help him out.

Now lets say i'm a French user. I log into the LMS, and search the
Catalog for "Apprendre l'anglais" (wich is a bilingual product). I add
it to my learning activities. Since I'm a French user, as per my user
settings in the LMS, I would assume that the system would know that I
want to see the French start Page. I don't want the first thing I see
when I enter the course to be a language selection page.

The user does alot of clicks into the LMS before being able to
navigate inside a course. I don't want the first thing in there to be
another click. It is going to be annoying. SCORM doesn't allow to have
2 start pages for a sco following certain conditions. So I'm stuck
with 2 options:

- Add a language selection index page for all of the bilingual
courses, adding a click.
- Create 2 scorm packages: on with the English start page and one for
the French, however, this would duplicate all of the files one the
server for the same courses. Some courses are more thatn a Gig... this
doesn't seem like a good practice to me.
Optional: would it be possible in an LMS to change behavior of
cmi.student_preference.language so that it can have a default value
(matching the user settings). From there I would be able from the
index page of the course to call this value and redirect to the good
start page?

Do you have any suggestions on that matter? Anyone ever encountered
this problem?

2 - Objectives

We are wrapping courses as single SCOs, but some of them contain
multiples assessments. Lets say I have to track 4 different test
results within the same SCO, should I use cmi.objectives to do that
tracking? If so, where do I setup theses objectives, is it in the
manifest file, or is it in the SCO's code? I was thinking of doing
something like that:

var success = pipwerks.SCORM.init();
var sco = pipwerks.SCORM;
sco.version="1.2"

function start(){
var success = sco.init();
if(success){
//vérifier si les objectifs sont existants
var objectifs = sco.get("cmi.objectives._count")
//Sinon, initialiser les objectifs
if(objectifs=="0"){
sco.set("cmi.objectives.0.id","Test1")
sco.set("cmi.objectives.1.id","Test2")
sco.set("cmi.objectives.2.id","Test3")
sco.set("cmi.objectives.3.id","Test4")
sco.set("cmi.objectives.n.score.scaled","0.0")
sco.set("cmi.objectives.n.score.scaled","0.0")
sco.set("cmi.objectives.n.score.scaled","0.0")
sco.set("cmi.objectives.n.score.scaled","0.0")
sco.setvalue("cmi.objectives.0.score.min","70.0")
sco.setvalue("cmi.objectives.0.score.max","100.0")
sco.setvalue("cmi.objectives.1.score.min","70.0")
sco.setvalue("cmi.objectives.1.score.max","100.0")
sco.setvalue("cmi.objectives.2.score.min","70.0")
sco.setvalue("cmi.objectives.2.score.max","100.0")
sco.setvalue("cmi.objectives.3.score.min","70.0")
sco.setvalue("cmi.objectives.3.score.max","100.0")
}
}
}


Does that make any sense?
I'll keep my other questions for later, this post is getting long.
Thanks in advance for your help!

Marc


Ryan Meyer

unread,
Nov 17, 2009, 11:50:10 AM11/17/09
to elearning-technolo...@googlegroups.com
Marc,

Sounds like you're getting pretty proficient with SCORM. Welcome to the dark side ;)

In response to your questions:

1 - Your main issue here is how to store user settings across multiple courses. Unfortunately, this is not something is covered in any part of the SCORM specification, so any LMS-based solution is going to be particular to your product. I don't know if Saba supports anything like this or not, so you're going to have to hunt through their documentation.
You have two other routes though:
A) You could store this information locally using either a browser cookie or a Flash SharedObject. You lose the ability to have the information persisted across multiple computers, but since it's mostly a convenience feature, this might not be a bad tradeoff.
B) You already have an alternative server-side persistence mechanism built (your ASP/SQL) solution, so why not use it to also store the learner's language preference?
In all cases, you're going to have to have some Javascript in your initial page in your course, (the one pointed to as the SCO in the manifest) that determines if the learner has a stored preference and then either displays the language choice page, or forwards/modifies the page to the appropriate content.

2 - Using cmi.objectives is perfectly valid to store this kind of "sub-SCO" scoring information. However, (and this is a big however), each LMS differs in its level of support for cmi.objectives.
- At the lowest level, some LMS's don't support it at all. I believe it was an optional part of the SCORM 1.2 spec, so it could be that your data is simply lost.
- At the next level, some LMS's will allow your SCO to write and read the cmi.objectives across sessions, but don't actually do anything with the information. So your SCO may have logic to read in any stored objective state and display previous scores and completions for each activity, but that's the only place it will be used.
- Still higher, some LMS's will display the results of cmi.objectives both to the learner and as a part of administrative reports.
There may be even more capabilities that some LMS's support around objectives, but these 3 cover the systems I've worked with. In no case have I seen a SCORM 1.2 system that allows the author to specify how objective status/score rolls up to overall SCO status/score. I know that the SCORM 2004 spec defines rules for specifying this rollup behavior across SCOs in a course, but I personally haven't used them yet and don't know how broadly they are supported.
In your case, I would first determine what level of support your LMS provides, and then see whether the capabilities you can get from that level are worth the effort of implementation.

Hope that helps!
Ryan



--

You received this message because you are subscribed to the Google Groups "eLearning Technology and Development" group.
To post to this group, send email to elearning-technolo...@googlegroups.com.
To unsubscribe from this group, send email to elearning-technology-and...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/elearning-technology-and-development?hl=.



Menthos

unread,
Nov 19, 2009, 9:10:19 AM11/19/09
to eLearning Technology and Development
Thanks Ryan, thanks for the reply.

For the language issue, using cookies would have been a great
solution, however I cannot rely on cookies for course development.
Since we have user from all the different government departments
across Canada, I cannot rely on that solution. Some departments have
really strict network security policies and they don't allow cookies.
It is really something to try and figure what we can use and what not
when developing in that kind of environment!

For now, I think the best solution would be using ASP. That's a good
idea. The only problem is that at this time... to make a long story
short.... our servers for our new LMS don't support ASP, and don't
have an SQL database for now. This should be fixed in a month or two,
but for now it is a show stopper.

Here is a scenario i'm thinking of, but there are some bits and pieces
missing for it to work :

I have a bilingual course that I wrapped as a single SCO. (SCORM
2004 )
In the LMS, I create 2 Courses offerings, one with the French title
and for the English.
For each of them, I create 2 other SCORM packages. These would be
organizations containing 2 SCOs.
The first one would be a blank page thats sets a value, somewhere in
the LMS, something that can be access by all SCOs (if that is
possible), indicating the language, then closes and loads the next sco
using sequencing.
The second one would be the first bilingual SCO, already deployed on
the server. It checks the value stored by the first SCO in the LMS and
loads the English or french start Page.

The SABA scorm player itselft uses nested frames. There are at least 2
framesets before the actual course content. Maybe a could set a
javascript variable in one of those frames. Example: SCO1 launches:
sets parent.language="FR"...

Can anyone think of something, without server-side technologies, that
could allow this type of sequencing/interactions between SCOs?


Thanks,
Marc
Reply all
Reply to author
Forward
0 new messages