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