IMS到SCORM的转换
我必须开发一个工具,用于从一个电子学习标准内容包到另一个电子学习标准内容包的自动转换,到目前为止,我已经考虑过IMS和SCORM,但我不完全理解开发一个从IMS到SCORM的自动转换工具的最佳理由是什么,反之亦然。我的意思是,这样的工具有什么好处?这就是我在一篇技术论文中提到的原因。任何人都可以解释和澄清这一点,或者告诉我开发这种工具背后的一些好理由: “IMS[6]和SCORM[7]规范有许多共同之处 但也有一些关键的区别 表示学习内容的结构。其他 需要考虑的重要问题是这些系统的扩展和 大量使用它们的组织。这种情况导致 创建、维护和修改相同的内容 以此类推[8]。这些通常不是完全相同的副本,但 内容相同,目标相同,因此 将有助于在组织之间分享工作,以避免 一遍又一遍地重复这项工作,这样可以节省时间和精力 资源和资源将导致高质量的内容。主要障碍 要得到这一点,前面提到的是不同类型的存在 从所有这些,我们可以推断 格式之间的自动转换。此转换将允许 automa高水平学习平台之间的互动- 在线学习内容自动转换,由Guiterrez、Jose Maria等人完成 JavaScript(SCORM包)IMS到SCORM的转换,scorm,scorm2004,scorm1.2,Scorm,Scorm2004,Scorm1.2,我必须开发一个工具,用于从一个电子学习标准内容包到另一个电子学习标准内容包的自动转换,到目前为止,我已经考虑过IMS和SCORM,但我不完全理解开发一个从IMS到SCORM的自动转换工具的最佳理由是什么,反之亦然。我的意思是,这样的工具有什么好处?这就是我在一篇技术论文中提到的原因。任何人都可以解释和澄清这一点,或者告诉我开发这种工具背后的一些好理由: “IMS[6]和SCORM[7]规范有许多共同之处 但也有一些关键的区别 表示学习内容的结构。其他 需要考虑的重要问题是这些系统的扩展和 大量使
HTML
<?xml version="1.0" encoding="utf-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- Other Code -->
<body>
<div id="outer">
<div class="QuizTestIdevice" id="id8">
<script src="calculate.js" type="text/javascript"></script>
<form name="quizForm8" id="quizForm8" action="javascript:calcScore2();">
<div class="iDevice_inner">
<div class="passrate" value="50"></div>
<div class="question">
<div id="taquestion0b8">
1> TEXT FOR QUESTION 1.
</div><br />
True<input type="radio" name="key0b8" value="0" id="taoptionAnswer0q0b8" />
False<input type="radio" name="key0b8" value="1" id="taoptionAnswer1q0b8" />
</div><br />
<div class="question">
<div id="taquestion1b8">
2> TEXT FOR QUESTION 2.
</div><br />
True<input type="radio" name="key1b8" value="0" id="taoptionAnswer0q1b8" />
False<input type="radio" name="key1b8" value="1" id="taoptionAnswer1q1b8" />
</div><br />
<input type="submit" name="submitB" value="SUBMIT ANSWERS" />
</div>
</form>
</div>
</div>
</body>
</html>
1问题1的文本。
真的
假的
2问题2的文本。
真的
假的
用于IMS软件包的Javascript和HTML
<script type="text/javascript">
<![CDATA[
var numQuestions = 2;
var rawScore = 0;
var actualScore = 0;
var question0;
var question1;
var key0 = 0;
var key1 = 1;
function getAnswer()
{
doLMSSetValue("cmi.interactions.0.id","key0b8");
doLMSSetValue("cmi.interactions.0.type","choice");
doLMSSetValue("cmi.interactions.0.correct_responses.0.pattern",
"0");
for (var i=0; i < 2; i++)
{
if (document.getElementById("quizForm8").key0b8[i].checked)
{
question0 = document.getElementById("quizForm8").key0b8[i].value;
doLMSSetValue("cmi.interactions.0.student_response",question0);
break;
}
}
doLMSSetValue("cmi.interactions.1.id","key1b8");
doLMSSetValue("cmi.interactions.1.type","choice");
doLMSSetValue("cmi.interactions.1.correct_responses.0.pattern",
"1");
for (var i=0; i < 2; i++)
{
if (document.getElementById("quizForm8").key1b8[i].checked)
{
question1 = document.getElementById("quizForm8").key1b8[i].value;
doLMSSetValue("cmi.interactions.1.student_response",question1);
break;
}
}
}
function calcRawScore(){
if (question0 == key0)
{
doLMSSetValue("cmi.interactions.0.result","correct");
rawScore++;
}
else
{
doLMSSetValue("cmi.interactions.0.result","wrong");
}
if (question1 == key1)
{
doLMSSetValue("cmi.interactions.1.result","correct");
rawScore++;
}
else
{
doLMSSetValue("cmi.interactions.1.result","wrong");
}
}
function calcScore2()
{
computeTime(); // the student has stopped here.
document.getElementById("quizForm8").submitB.disabled = true;
getAnswer();
calcRawScore();
actualScore = Math.round(rawScore / numQuestions * 100);
alert("Your score is " + actualScore + "%")
doLMSSetValue( "cmi.core.score.raw", actualScore+"" );
var mode = doLMSGetValue( "cmi.core.lesson_mode" );
if ( mode != "review" && mode != "browse" ){
if ( actualScore < 50 )
{
doLMSSetValue( "cmi.core.lesson_status", "failed" );
}
else
{
doLMSSetValue( "cmi.core.lesson_status", "passed" );
}
doLMSSetValue( "cmi.core.exit", "" );
}
exitPageStatus = true;
doLMSCommit();
doLMSFinish();
}
]]>
</script>
<html>
<body>
<div class="QuizTestIdevice" id="id8">
<script type="text/javascript">
<!-- //<![CDATA[
var numQuestions = 4;
var rawScore = 0;
var actualScore = 0;
var question0;
var question1;
var key0 = 0;
var key1 = 1;
var key2 = 0;
var key3 = 0;
function getAnswer()
{
for (var i=0; i < 2; i++)
{
if (document.getElementById("quizForm8").key0b8[i].checked)
{
question0 = document.getElementById("quizForm8").key0b8[i].value;
break;
}
}
for (var i=0; i < 2; i++)
{
if (document.getElementById("quizForm8").key1b8[i].checked)
{
question1 = document.getElementById("quizForm8").key1b8[i].value;
break;
}
}
}
function calcRawScore(){
if (question0 == key0)
{
rawScore++;
}
if (question1 == key1)
{
rawScore++;
}
}
function calcScore2()
{
getAnswer();
calcRawScore();
actualScore = Math.round(rawScore / numQuestions * 100);
document.getElementById("quizForm8").submitB.disabled = true;
alert("Your score is " + actualScore + "%")
}
//]]> -->
</script>
<form name="quizForm8" id="quizForm8" action="javascript:calcScore2();">
<div class="iDevice emphasis1">
<img alt="" class="iDevice_icon" src="icon_question.gif" />
<span class="iDeviceTitle">SCORM Quiz</span>
<div class="iDevice_inner">
<div class="passrate" value="50"></div>
<div class="question">
<div id="taquestion0b8" class="block" style="display:block">1> QUESTION 1
</div><br/>
<table><tr><td><input type="radio" name="key0b8" value="0" />
</td><td>
<div id="taoptionAnswer0q0b8" class="block" style="display:block">True
</div></td></tr>
<tr><td><input type="radio" name="key0b8" value="1" />
</td><td>
<div id="taoptionAnswer1q0b8" class="block" style="display:block">False
</div>
<br/><input type="submit" name="submitB" value="SUBMIT ANSWERS"/>
</form>
</body>
</html>
SCORM测验
1问题1
真的
假的
谢谢你 当我创建手工编码的课程时,我会尽量保持一切中立。电子学习标准,如SCORM,通常使用我们称之为“包装器”,它基本上处理所有基本错误和连接过程 当您从一个版本切换到另一个版本时,如SCORM 1.2到SCORM 2004第四版,逻辑并没有真正改变,它得到了改进,但之前的所有元素通常都在这里。 因此,您基本上创建了一个具有相同函数名称的新包装器,并且所有的基础都已经开始工作了。您的包装器并没有本质上的不同,它只是替换了“cmi.xxx” 要从一个标准转换到另一个标准,如果基本原理相同,您可以使用另一个包装器,它将起作用。大多数简单的课程通常都是这样,一旦开始互动、练习等,就会变得棘手。 为了避免这些不好的时刻,把你所有的互动逻辑和你的课程分开 现在,你的课程可能不是手工编写的,也不是由软件生成的? 在这种情况下,您需要分析“引擎盖下”是什么,试图找出何时以及如何用其他标准处理每个部件的方式替换它 我认为转换器是非常不安全的,它会非常依赖于课程,不能同样应用于所有课程,除非你找到一种简单的方法用包装器替换它的交互。但如果你能提供一个工具,生成一个与所有标准兼容的课程,你已经让很多用户满意了 现在回到你的问题,我认为你需要了解什么是电子学习标准:
- 要在浏览器中显示的文件
- 一个清单文件,用于描述您提供给LMS的内容
- 课程与其LMS之间的沟通方式
- IMS是清单级别的标准,它描述了.xml文件中应该包含的内容。
- SCORM是一个考虑到列表最后两项的标准。(基于AICC,它定义了课程和LMS需要遵守的内容。)
现在,如果您需要创建一个工具来转换XML文件,我认为任何技术都可以做到,因为从技术上讲,它只是纯文本。当我创建手工编码的课程时,我会尽可能保持一切中立。电子学习标准,如SCORM,通常使用我们称之为“包装器”,它基本上处理所有基本错误和连接过程 当您从一个版本切换到另一个版本时,如SCORM 1.2到SCORM 2004第四版,逻辑并没有真正改变,它得到了改进,但之前的所有元素通常都在这里。 因此,您基本上创建了一个具有相同函数名称的新包装器,并且所有的基础都已经开始工作了。您的包装器并没有本质上的不同,它只是替换了“cmi.xxx” 要从一个标准转换到另一个标准,如果基本原理相同,您可以使用另一个包装器,它将起作用。大多数简单的课程通常都是这样,一旦开始互动、练习等,就会变得棘手。 为了避免这些不好的时刻,把你所有的互动逻辑和你的课程分开 现在,你的课程可能不是哈