SCORM 1.2用于lesson_status的LMSFinish逻辑

时间:2015-12-09 14:20:35

标签: scorm scorm1.2

我正在开展一个项目,以使现有的LMS SCORM 1.2兼容。我一直在使用高级分布式学习计划中的文档,名为可共享内容注册模型版本1.2 SCORM运行时环境

在第3-25页,讨论了在SCO调用LMSFinish()函数时必须在LMS中实现设置cmi.core.lesson_status值的逻辑。内容如下:

  

收到LMSFinish()电话或用户导航后,LMS应将SCO的cmi.core.lesson_status设置为“已完成”。

实现这个逻辑对我来说似乎毫无意义,因为用户可以只查看SCO的第一页/屏幕并单击,我的LMS代码将把该课程的状态设置为“已完成”。但实际上,用户还没有真正完成SCO。如果用户实际上没有通过所有材料,我不希望我的LMS将状态设置为“已完成”。

这个问题似乎也让其他人感到困惑。看到: VSSCORM Step 22 - Progress and Completion - cmi.core.lesson_status

有人可能会对此事做一些澄清,以便我可以编码我的LMS逻辑以正确反映真实情况,同时仍然符合SCORM 1.2吗?

提前致谢。

2 个答案:

答案 0 :(得分:2)

以我的阅读方式,那里有一个相当明显的部分 -

  

收到LMSFinish()电话或用户导航后,LMS应将SCO的cmi.core.lesson_status设置为“已完成”,如果SCO尚未更改

换句话说,如果在调用LMSFinish()时它仍然是“not attempted”,那么它应该被更改(因为不允许SCO将其设置为应该可以安全地进行测试)。 / p>

我不确定是否有1.2的一致性文档,它可能会在adlnet.gov SCORM 1.2页面的某个地方(如果有的话)(有一个看起来很有希望的zip下载) - 我已经习惯了2004版本哪里有直接的pdf链接 - 那里还有1.2测试套件,但由于我从来没有使用它,我不确定它会有多少使用。

答案 1 :(得分:1)

为了补充Ryochet的答案,LMSFinish()旨在让课程告诉LMS学习者已完成会话,而不一定是整个课程。

课程开发的最佳实践是在课程初始化后立即设置cmi.core.lesson_status的值。这会立即告诉LMS当课程调用LMSFinish()时,会干扰课程状态的值,并且在不离开第一页的情况下快速关闭课程的用户将被赋予状态incomplete

但是,如果课程作者选择 not 来设置lesson_status,SCORM文档会说明LMS有责任将课程状态设置为completed。这是他们在3-25中描述的内容,如下所示。

3.3.6.1

  

SCO有责任至少发出LMSInitialize(“”)和LMSFinish(“”)API调用。

3.4.2

  

所有数据元素都是可选的,供SCO使用。 SCO只需要使用API​​函数LMSInitialize("")和LMSFinish("");它们不需要使用LMSSetValue()或LMSGetValue()。 SCO可能非常非常小,而且无法详细跟踪。

p 3-25

  

其他行为要求:如果SCO设置了cmi.core.lesson_status,则没有问题。但是,SCORM不会强制SCO设置cmi.core.lesson_status。为了成功处理这些情况,必须遵守一些额外的要求:

     
      
  • 首次启动时,LMS应将cmi.core.lesson_status设置为“未尝试”。
  •   
  • 收到LMSFinish()调用或用户导航后,LMS应将SCO的cmi.core.lesson_status设置为“completed”。
  •   
  • 在将cmi.core.lesson_status设置为“已完成”之后,LMS现在应检查是否已在cmi.student_data.mastery_score中指定了掌握分数(如果支持),或SCO是否为成员的清单的。如果提供了掌握分数且SCO确实设置了cmi.core.score.raw,LMS应将cmi.core.score.raw与掌握分数进行比较,并将cmi.core.lesson_status设置为“已通过”或“失败”。如果没有提供掌握分数,LMS将cmi.core.lesson_status视为“已完成”
  •   

换句话说,如果课程设置cmi.core.lesson_status的值,只需使用它们提供的值(假设它是有效的标记)。如果课程提供一个值,那么SCORM文档会说它是一个非常小的"非常小的" SCO,"不能被设计为详细跟踪"。因此,将课程状态设置为completed,因为SCO太简单,无法自行设置值。

如果课程作者不知情并设计了一个无法设置课程状态值的大型课程 - 如您的方案中所述,那么用户可以只查看SCO的第一页/屏幕并单击远" - 课程作者将很快学会他们的错误(正如我们所有人一样!)并将适当地编辑课程代码。