SCORM技术总结及题库应用

来源:互联网 发布:商场广播软件 编辑:程序博客网 时间:2024/04/30 11:57

转子:点击打开链接 http://www.cnblogs.com/jonethan/archive/2012/04/19/2456563.html

SCORM技术总结及题库应用

引言

前一段时间花时间研究了SCORM的相关知识以及在题库中的应用,本文做一下技术总结分享,将从以下几个方面展开。

1. 什么是SCORM

2. SCORM的运行与交互介绍

3. 题库中如何应用SCORM

注:文章中不涉及过多的专业术语,主要以我的理解为主,所以有些不准确的地方请查看SCORM标准文档。本文中的技术主要是基于SCORM1.2进行的。

一、什么是SCORM

1、基本特点

  •   SCORM 全称是共享内容对象参考模型(Sharable Content Object Reference Model)

  •  由美国国防部ADL(Advanced Distributed Learning)组织所拟定的标准。

  •  对于数字内容教材的制作、内容开发提供一套共通的规范。

  •  包含多个版本:SCORM1.1 、SCORM1.2、SCORM1.3(2004),应用最广泛的为1.2,其次是2004。

  •  在E-Learning系统中有广泛的应用。

  •  符合SCORM标准的课程包可以在任何支持该标准的平台中运行。

  •  学习者学习SCORM标准的课程时,平台会自动记录学习者的学习轨迹,提供详细的分析报告。

2、范例分析

图1.1为SCORM1.2格式的资源包结构示意图

 

图1.1 SCORM1.2 资源包结构示意图

    上面的结构中开始的几个文件夹都是内容文件,包含web可以浏览的内容,可能是html、图片等。红框标示的文件为标准必须的文件。其中 imsmanifest.xml为一个清单文件,统一组织该资源包中的资源和导航,在后期的应用中除了内容的制作外,主要就是处理该文件。

    SCORM不同的版本所包含的文件不同,需要根据具体的版本修改对应的文件,完成资源包的封装与打包。

3、SCORM对资源的组织

SCORM标准中对内容的组织涉及到一个概念,内容聚合模型(CAM)。要理解这部分,需要搞明白下面这张图。

 

图1.2 SCORM 内容聚合模型示意图

如上图,SCORM1.2中包含两种类型的资源Asserts和SCOs。

    Assert资源的最小单位,可以是图片、视频、文章或网页等。

    SCO即可共享内容对象(Sharable Content Object),是一个或多个Assert的集合,SCO和Assert最大的区别是可以和LMS通讯。以完成学习过程的跟踪和记录。

    上面的资源文件可以在清单文件中组织起来,如下图所述:

 

4、总结应用

    SCORM课程包就是根据某种标准组织的资源包,里面的资源内容必须是WEB可以浏览的,在清单文件中维护资源的清单以及定义课程的结构和导航。

我们制作SCORM标准资源包的流程可以如下所示。

   

二、SCORM的运行与交互介绍

1、概述

    SCORM标准的课程本身不能直接使用,需要配合“教学管理系统(LMS)”使用。支持SCORM标准的LMS系统扮演着“播放器”的角色,而SCORM课程包可以认为是要播放的内容,播放器负责对该内容“解码”和“显示”,并记录用户在该课程上的操作。

 

理解上面的示意图,需要关注以下几个点:

l  SCO负责发送通信请求,LMS只是被动的处理

l  LMS在开始时会运行一个SCO

l  只可以通过JavaScript完成LMS与SCO之间的通信,不可以采取其他方式(如webservice、database等)

l  LMS负责提供一个具有特定名称(SCORM1.1和SCORM1.2中为“API”,SCORM2004为“API_1484_11”)的JavaScript的API对象实例

l  SCO可以通过DOM对象模型找到这个API

l  SCORM API 只包含8个特定名称的函数,不同的版本名称不同

l  API 通过CMI数据模型完成数据的传递

通过上面的概述可以我们可以简要的了解SCORM是如何运行的。以及SCO和LMS平台之间的通信方式。下面介绍一下SCORM API 和CMI数据模型的相关知识。

2、SCORM API 简介

 

如上所示,SCORM分别包含上述几个函数,有如下说明:

l  bool类型实际上是一个string值,可以是“true”或“false”

l  所有需要“”参数的函数不接受其他的参数,只需要一个空字符串

l  CMIElement类型是一个SCORM数据模型顶一个字符串

l  CMIErrorCode为一个数字,代表错误码

    从字面上来看,这几个函数本身还是比较好理解的。我们可以把数据存储想象成一个大的Map,根据键值对进行数据存储。通过一些特定的操作即可实现一些特殊的效果。

3、CMI 数据模型简介

      建立通用数据模型的目的是为了让不同的LMS系统能够跟踪SCOs的信息。比如,在一个测试中,需要跟踪记录学生的成绩,这样就很有必要建立一个通用的方 法可以让课程内容把学生的得分报告给LMS。如果是SCO使用自己的成绩表示方式,则不同的LMS就不知道如何才能获取、存储和处理这些信息。

下面看几个cmi定义的例子:

cmi.completion_status (“completed”, “incomplete”, “not attempted”, “unknown”, RW) Indicates whether the learner has completed the SCO

cmi.learner_id (long_identifier_type (SPM: 4000), RO) Identifies the learner on behalf of whom the SCO was launched

cmi.learner_name (localized_string_type (SPM: 250), RO) Name provided for the learner by the LMS

cmi.max_time_allowed (timeinterval (second,10,2), RO) Amount of accumulated time the learner is allowed to use a SCO

cmi.interactions._children(id,type,objectives,timestamp,correct_responses,weighting,learner_response,result,latency,description, RO) Listing of supported data model elements

cmi.interactions._count (non-negative integer, RO) Current number of interactions being stored by the LMS

cmi.interactions.n.id (long_identifier_type (SPM: 4000), RW) Unique label for the interaction

cmi.interactions.n.type (“true-false”, “choice”, “fill-in”, “long-fill-in”, “matching”, “performance”, “sequencing”, “likert”, “numeric” or “other”, RW) Which type of interaction is recorded

cmi.interactions.n.correct_responses._count (non-negative integer, RO) Current number of correct responses being stored by the LMS for this interaction

cmi.interactions.n.correct_responses.n.pattern (format depends on interaction type, RW) One correct response pattern for the interaction

cmi.interactions.n.weighting (real (10,7), RW) Weight given to the interaction relative to other interactions

cmi.interactions.n.learner_response (format depends on interaction type, RW) Data generated when a learner responds to an interaction

cmi.interactions.n.result (“correct”, “incorrect”, “unanticipated”, “neutral”) or a real number with values that is accurate to seven significant decimal figures real. , RW) Judgment of the correctness of the learner response

cmi.interactions.n.latency (timeinterval (second,10,2), RW) Time elapsed between the time the interaction was made available to the learner for response and the time of the first response

cmi.interactions.n.description (localized_string_type (SPM: 250), RW) Brief informative description of the interaction

下面是一个完整课程的考试数据交互过程:

 

图:课程预览效果

 

 

图: 试卷测试中的数据交互

 

图:API 调用函数完成数据交互的流程

    从上面的几个图我们可以完整的看到SCO是如何和LMS进行数据交互的,日志信息给出了每一步所进行的操作。如果要实现上述的交互,需要SCO做哪些工作呢?我们可以看一下这一个课程的原始数据包结构。

    通过分析源文件中的代码我们有如下发现:

 

    上面的代码是在点击了提交答案后执行的部分。在JS中通过调用SCORM API的函数完成和LMS平台的数据交互信息的传递。如上所示,SCO想LMS平台发送了第一个试题的相关信息和用户选择的答案。

    这样在和上面的日志信息截图对比来看,整个过程就比较清晰了。

三、题库中的应用方式和效果

1、资源组织和打包导出

基于上两节的分析在题库中可以按照如下的步骤制作SCORM格式的数据。

l  首先准备scorm1.2的基本资源包

l  编写SCO和LMS交互的js函数

l  获取试题数据的xml文件

l  可以选择xslt渲染xml或将其转换成html(选用了前者)

l  将试卷xml内容保存到输出目录

l  处理试卷相应的图片资源

l  修改imsmanifest.xml文件,完成资源的组织描述。

l  打包生成最终的数据

下图是题库导出的SCORM包的基本结构示意图,Content文件夹中还会包含一个paper.xml文件表示试卷内容。

 

图: 题库导出SCORM1.2格式的资源包结构

2、在LMS系统中的显示效果

分别在SCORM CLOUD和moodle平台中进行测试,显示效果如下图所示:

 

图:moodle平台试卷测试预览效果

 

图:SCORM CLOUD 中的预览效果

 

图:试卷统计结果

上面最后一个图是通过不同身份的账户登录系统做题后,系统自动生成的统计报表,可以记录每一个用户学习的时间和得分。

SCORM CLOUD是SCORM官方提供的一个云服务平台,可以注册一个账号上传SCROM课程包查看具体的效果,做相应的测试。

四、总结不足

    目前导出的数据包在数据交互上还很不足,只存储了试卷成绩。这一点是可以进行扩展的。另外目前只是单独的试卷,稍显单薄,在应用时需要根据具体的课程导入 对应的试题包,建立对应关系。比较好的设计应该是试卷作为一个随堂练习包含在一个整个的学习课程中。当学生完成知识的学习后进行测试。

    我觉得如果是结构良好的知识内容,是可以做成SCORM标准的课程的。比如我们以后的同步学习就可以考虑组织成SCORM格式的资源包。

五、相关资料和参考文档

  • SCORM官网,包含最原始最权威的文档

    http://scorm.com/

  •  一个云服务平台,可以上传SCORM标准的课件进行测试,预览效果。

    http://cloud.scorm.com

  • Moodle平台,这个需要自己搭建php环境,部署moodle系统。
  • 几篇文章

  SCORM 运行时环境介绍  

  http://scorm.com/scorm-explained/technical-scorm/run-time/

  SCROM 运行时引用参考

  http://scorm.com/scorm-explained/technical-scorm/run-time/run-time-reference/

  SCORM1.2 和 SCORM2004不同点

  http://blog.convergentlearning.com/2010/02/what-is-big-difference-between-scorm-12.html


0 0
原创粉丝点击