有没有办法在SCORM 2004中存储预测试分数。我在动作2中开发了一个模块。预测试和后测试使用相同的问题集。
客户现在要求预测分数也应与测试后一起存储。有什么办法可以做到的。应该/可以为此设置哪个值。
我花了两天时间试图找到解决方案。有没有办法设置自定义变量?或者是否有我错过的预先设定的变量名称?
答案 0 :(得分:2)
听起来你正试图将预测试和后测试放在同一个SCO中。报告单独的测试前和测试结果的最简单方法是通过编辑包imsmanifest.xml文件将前后测试放在他们自己的SCO中。 (有关内容包装的更多信息,请参阅:http://scorm.com/scorm-explained/technical-scorm/content-packaging/)您可以在同一清单中多次链接回相同的内容,并包含查询字符串参数,然后您的内容会读取并使用这些参数来了解它所处的模式(预测试) vs post test)。
尽管如此,很多人都避免使用多个SCO,因此他们不必考虑LMS或SCORM如何管理这些SCO。仅使用单个SCO可以为您的内容提供大量控制,但权衡的是它看起来像是LMS的一个整体项目,因此报告多个测试不会那么好。因此,没有特定的预测试变量,因为SCORM的设计假设预测试将在他们自己的SCO中进行,因此不需要这样的变量。
您可以在单个SCO中执行的操作是创建其他命名目标和交互。如果你只是想要预测试的分数,那会更好看,但如果你跟踪对每个问题的回答,你最终会得到一个项目列表,如“PreTest问题1,PreTest问题2”。继续“PostTest问题1,PostTest问题2”......命名方案当然取决于您,但约束条件是您正在处理一个目标和交互列表,并且只能通过名称区分它们。
使用目标和互动的示例课程:http://scorm.com/scorm-explained/technical-scorm/golf-examples/#advancedruntime 关于应该报告哪些测试(以及如何)的一些提示:http://scorm.com/blog/2010/11/4-things-every-scorm-test-should-do-when-reporting-interactions/
很抱歉没有更多的一步一步,但正如你所看到的,你有几个选项,每个选项都涉及一些细节,而不是我真正能在一个答案中提供的。
答案 1 :(得分:0)
虽然您没有描述课程结构,但我会根据可能性做出回应。我假设你有一个预测试,内容和后测:
你有一个大的SCO,它包含pretest / content和SCO:
如果您只需要在课程中使用和显示课程的信息:
您可以在 cmi.suspend_data 中保存预测试和后测分数。大多数人将这些信息存储在最多64K字符的名称/值对中。使用 SetValue 命令,您可以
rtn = your_api.SetValue(' cmi.suspend_data',' pretest = 69,' + oldSuspendData)
同样,如果您的课程只需要在课程中显示此信息并根据预测试结果对其采取措施,您只会使用此项。显然,您应该编写代码以确保获得干净的数据并处理任何奇怪的条件,例如没有数据。但是,如果客户想要LMS中的数据并且LMS管理员可以看到,那么您需要查看下面的选项
如果您需要LMS管理员可以访问预测试/后测分数:
您确实需要将每个sco(预测试,内容,后测)分开,但您无法通过SCORM(通过SCORM)与每个SCO之间的分数进行通信。即:后测试不知道预测分数是多少。您可以查看如何将内容分成SCO和下面的URL的很好的示例。您可以轻松地共享预测试和后测试HTML / SWF,但是将查询字符串传递给HTML或使用清单中的 来告诉您的代码它是什么。根据我的经验,有一些LMS不会通过查询字符串,因此应该同时使用它们。 简单的MultiSCO:http://scorm.com/wp-content/assets/golf_examples/PIFS/ContentPackagingOneFilePerSCO_SCORM20043rdEdition.zip
如果您需要知道预测分数并将信息发送到LMS,如SCO SCORM无法在SCORM 2004中解决这个问题。我首先要告诉他们并发症。如果他们仍然需要这种混合解决方案,我希望我们能够安全地将learnerID,courseID(如果有的话),SCOID(预测试/内容/后测)和分数传送到可以检索它的服务器。 Cookies是禁忌的,因为他们认为你将在SCO之间的同一台机器上。另外,如果有xAPI的可能性,你可以更容易地做到这一点。