我如何设计我的学习管理系统以使其符合 SCORM?

时间:2021-02-08 19:35:08

标签: scorm lms

我正在从头开始开发 LMS,并且一直在对其进行研究,但仍然遇到这些未解决的问题,希望您能帮助我。

  1. LMS 的哪些功能使其符合 SCORM?
  2. 我选择使用 mongoDB,但我仍然对如何实现实时课程跟踪器感到困惑,这些跟踪器将显示特定课程的进度。 (我认为它与自动备份/更新功能有关)
  3. 考虑到我将拥有三个用户,最好的设计架构是什么?即学生、教师和管理员...

一般来说,我需要有人指导我如何最好地实施这个项目 使用 MERN 堆栈可能,因为我是一个新手,但我被赋予了实施这个挑战,我想试一试。更何况后端仍然让我感到困惑。

提前致谢

1 个答案:

答案 0 :(得分:0)

SCORM 无疑是一个挑战。我无法帮助您了解实施细节,因为即使是 scorm.com 的行业领导者和发行商 Rustici Software 估计

<块引用>

[...t]符合 SCORM 标准所需的时间通常以“开发人员年数”来衡量。

为了让您开始,我将尝试回答您的第一个问题。对于实现细节,有比 StackOverflow 更好的资源。我在帖子底部链接了一些。

LMS 的哪些功能使其符合 SCORM?

“SCORM 合规性”是一个误称,通常用于表示 LMS 支持创建、播放或跟踪 SCORM 内容。实际上,每个 LMS 可能会发现其目标人群可以接受的实施级别。

合规性的官方衡量标准是 SCORM Certificationthe ADL Initiative,这是负责 SCORM 标准的政府计划。通常提供三个可测试的测试级别(请注意,发布时不提供测试):

<块引用>

SCORM® 一致性 – 声明 SCORM® 一致性(针对特定版本的 SCORM®,即 SCORM® 1.2 版)的唯一标准是通过 ADL 一致性测试套件中的相应测试相应的 SCORM® 版本。一致性测试套件可从 ADLnet.gov 免费下载。此测试是在荣誉系统上完成的,不需要 ADL Initiative 参与。

<块引用>

SCORM® 采用者 – SCORM® 一致性的下一个层次是产品成为 SCORM® 的采用者。产品必须符合 SCORM® 标准,才能被视为 SCORM® 采用者。通过 ADL 一致性测试套件中的测试产生的日志将提交给 ADL Initiative(有关更多信息,请参阅 SCORM® 采纳者页面),如果发现正确,则产品在 SCORM® 中被标记为 SCORM® 采纳者采用者产品列表(针对特定版本的 SCORM®)。

<块引用>

SCORM® 认证 – SCORM® 一致性的最终级别是 SCORM® 认证。认证产品是指那些已经由独立的 ADL 认证测试中心测试以满足相应版本的 SCORM® 一致性要求文档中描述的要求并通过一致性测试套件验证的产品(有关更多信息,请参阅 SCORM® 认证页面) .完成此过程后,产品即获得 SCORM® 认证并添加到 SCORM® 认证产品列表中。该产品也符合 SCORM® 认证。

更简单地说,声称“符合 SCORM”的 LMS 可能满足以下条件:

1.支持 SCORM JavaScript API

SCORM 程序包将尝试在启动时按照 a well-established discovery algorithm 定位 LMS 提供的 API。本质上,它会从其父对象 API 开始查找名为 API_1484_11 (SCORM 1.1, SCORM 1.2) 或 window (SCORM 2004) 的对象,并向上搜索直到找到匹配项或超出允许的导航次数。

这个 API 对象应该实现八个标准函数和数据模型对象。有关详细信息,请参阅 full runtime reference

<头>
SCORM 1.1、1.2 SCORM 2004 参数 退货 说明
LMS初始化 初始化 空字符串 布尔值 初始化运行时并从 LMS 获得控制
LMSCommit 提交 空字符串 布尔值 请求 LMS 持久化当前数据模型
LMSGetValue 获取价值 CMIElement 字符串 从当前数据模型中获取指定元素的值
LMSSetValue 设置值 CMIElement,任何 字符串 设置当前数据模型中指定元素的值
LMSGetLastError 获取上一个错误 CMI 错误代码 获取上次调用这些方法之一的结果
LMSGetErrorString 获取错误字符串 CMI 错误代码 字符串 获取与指定错误代码等效的字符串
LMSGetDiagnostic 获取诊断 CMI 错误代码 字符串 获取有关导致指定错误代码的特定错误的附加信息
LMSFinish 终止 空字符串 布尔 退出运行时并将控制权交还给 LMS

2.跨会话保留运行时数据

SCORM 包通常是 stateless,但如果提供了先前提交的数据模型,则可以返回到某个状态。在 SCORM 包中有多种实现状态的方法,但常见的运行时方法包括:

  • 在退出前在 cmi.suspend_data 中存储令牌、路径或状态,然后在重新进入包时使用该信息恢复到特定位置
  • 在会话之间的 cmi.interactions 中存储已回答的问题/用户操作

此外,某些包可能会与外部资源通信,或者可能会使用 cookie 或 Web Storage API 等浏览器功能来保存数据。从 LMS 的角度来看,这是不太可取的,因为在 LMS 中聚合和保存数据时更难解释。

一般来说,当一个包调用LMSCommit时,存储当前学习者/学生的当前数据模型就足够了。这可以通过任何常见的持久层(Redis、Web Storage API、SQL 等)来完成,只要在学习者/学生希望继续与 SCORM 包交互时可以检索和提供信息即可。< /p>

3.提供有关会话的报告和跟踪信息

LMS 的目标是facilitate and enhance learning,LMS 实现这一目标的方式之一是允许报告用户采取的行动、他们取得的分数以及他们遵循的趋势。< /p>

报告目标将根据 SCORM 包中内容的性质以及 LMS 旨在为用户提供的具体学习目标而有所不同。

那么接下来呢?