research and implementation of learning tracing …file.scirp.org/pdf/6-1.30.pdf ·...

4
Research and Implementation of Learning Tracing Mechanism Based on SCORM Xinghua SUN, Li HAO, Xiao ZHANG School of Information Science and Engineering, Hebei North University, Zhangjiakou, China E-mail: [email protected] Abstract: It has remained a difficult job to record and track the learning process of learners in the online learning. SCORM standard defines a powerful learning tracing mechanism, which can achieve timely, de- tailed, in-depth learning tracing. The learning tracing theory of SCORM standard is analyzed in this paper and the details of online learning platform and online courseware are illustrated concerning how to implement the learning tracing based on SCORM standard. Keywords: SCORM; online learning; tracing SCORM 标准学习跟踪机制研究与实现 孙兴华,郝 丽,张 河北北方学院信息科学与工程学院,张家口,中国,075000 E-mail: [email protected] 要: 在网络学习中,对学员学习过程的记录和跟踪一直是一个难题。SCORM 标准定义了强大的学 习跟踪机制,可以实现及时、细致、深入章节的学习跟踪。本文分析了 SCORM 标准学习跟踪原理, 并从学习平台和网络课程两方面详细论述了如何实现基于 SCORM 标准的学习跟踪。 关键词: SCORM;在线学习;跟踪 1 引言 SCORM Sharable Content Object Reference Model可共享课程对象参照模型)是由美国国防部高级分布式 学习(ADL)组织制定的,是目前使用范围最广、应用性 最强的网络课程标准之一。符合 SCORM 标准的网络课 程具有高水平的可访问性、适应性、可承受性、持久性、 互操作和可重用性。 [1] 在学习符合 SCORM 标准的课件 时, LMS (学习管理系统)可以非常详细的跟踪和记录 学习者的学习进度、学习成绩、学习状态、学习时间以 及学习交互等状况。然后目前只有在 ADL 组织提供 SCORM 标准文档中对 SCORM 的跟踪机制有所定义, 而在学术文献中,基本没有这方面的研究文章。从公司 产品方面来看,目前虽然很多网络学习平台都支持符合 SCORM 标准的网络课程,比如著名的 BlackboardMoodle 等,但是它们基本就是仅能运行 SCORM 标准 课件,而不具备学习跟踪的功能。对于 SCORM 标准课 程开发工具而言,也同样如此,比如目前比较流行的 ReloadAdobe capative,基本就是实现把普通课件打包 成符合 SCORM 标准的课件,如果把课件打包成可跟踪 的课件,需要课件制作者手动编写代码。然后,对于 SCORM 标准的跟踪机制,恰恰是很多 E-learning 工作 者最感兴趣的。本文从网络平台和网络课程两方面来阐 述如何实现 SCORM 标准的学习跟踪。 2 SCORM 学习跟踪原理 SCORM 标准中, SCO Sharable Content ObjectLMS 通过 SCORM RTE(运行时间环境)可以跟踪 的最低粒度水平的学习资源,它们的通讯由 API Adapter (适配器)来完成。 [2] API 定义了 8 个主要的 function()分别是 LMSInitilize()LMSFinish()LMSSetValue()LMSGetValue()LMSCommit()LMSGetLastError()LMSGetErrorString() LMSGetDiagnostic() [3] 其中 LMSGetValue()LMSSetValue()最为复杂,也是跟踪中 资助信息:本研究得到河北北方学院校级科研项目基于 google 计算的在线平台设计与实现(编号:2009012)的资助 120 978-1-935068-10-5 © 2010 SciRes. Proceedings of Annual Conference of China Institute of Communications

Upload: vuthu

Post on 09-Jun-2018

259 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Research and Implementation of Learning Tracing …file.scirp.org/pdf/6-1.30.pdf · 及学习交互等状况。然后目前只有在 ADL 组织提供 SCORM 标准文档中对SCORM

Research and Implementation of Learning Tracing

Mechanism Based on SCORM

Xinghua SUN, Li HAO, Xiao ZHANG School of Information Science and Engineering, Hebei North University, Zhangjiakou, China

E-mail: [email protected]

Abstract: It has remained a difficult job to record and track the learning process of learners in the online learning. SCORM standard defines a powerful learning tracing mechanism, which can achieve timely, de-tailed, in-depth learning tracing. The learning tracing theory of SCORM standard is analyzed in this paper and the details of online learning platform and online courseware are illustrated concerning how to implement the learning tracing based on SCORM standard.

Keywords: SCORM; online learning; tracing

SCORM 标准学习跟踪机制研究与实现

孙兴华,郝 丽,张 晓

河北北方学院信息科学与工程学院,张家口,中国,075000

E-mail: [email protected]

摘 要: 在网络学习中,对学员学习过程的记录和跟踪一直是一个难题。SCORM 标准定义了强大的学

习跟踪机制,可以实现及时、细致、深入章节的学习跟踪。本文分析了 SCORM 标准学习跟踪原理,

并从学习平台和网络课程两方面详细论述了如何实现基于 SCORM 标准的学习跟踪。

关键词: SCORM;在线学习;跟踪

1 引言

SCORM(Sharable Content Object Reference Model,

可共享课程对象参照模型)是由美国国防部高级分布式

学习(ADL)组织制定的,是目前使用范围最广、应用性

最强的网络课程标准之一。符合 SCORM 标准的网络课

程具有高水平的可访问性、适应性、可承受性、持久性、

互操作和可重用性。[1]在学习符合 SCORM 标准的课件

时,LMS(学习管理系统)可以非常详细的跟踪和记录

学习者的学习进度、学习成绩、学习状态、学习时间以

及学习交互等状况。然后目前只有在 ADL 组织提供

SCORM 标准文档中对 SCORM 的跟踪机制有所定义,

而在学术文献中,基本没有这方面的研究文章。从公司

产品方面来看,目前虽然很多网络学习平台都支持符合

SCORM 标准的网络课程,比如著名的 Blackboard、

Moodle 等,但是它们基本就是仅能运行 SCORM 标准

课件,而不具备学习跟踪的功能。对于 SCORM 标准课

程开发工具而言,也同样如此,比如目前比较流行的

Reload、Adobe capative,基本就是实现把普通课件打包

成符合 SCORM 标准的课件,如果把课件打包成可跟踪

的课件,需要课件制作者手动编写代码。然后,对于

SCORM 标准的跟踪机制,恰恰是很多 E-learning 工作

者最感兴趣的。本文从网络平台和网络课程两方面来阐

述如何实现 SCORM 标准的学习跟踪。

2 SCORM 学习跟踪原理

在 SCORM 标准中,SCO(Sharable Content Object)

是 LMS 通过 SCORM RTE(运行时间环境)可以跟踪

的最低粒度水平的学习资源,它们的通讯由 API Adapter

(适配器)来完成。[2]API 定义了 8 个主要的 function(),

分别是 LMSInitilize()、LMSFinish()、LMSSetValue()、

LMSGetValue()、 LMSCommit()、LMSGetLastError()、

LMSGetErrorString() 、 LMSGetDiagnostic() , [3] 其 中

LMSGetValue()和 LMSSetValue()最为复杂,也是跟踪中资助信息:本研究得到河北北方学院校级科研项目“基于 google 云

计算的在线平台设计与实现”(编号:2009012)的资助

120978-1-935068-10-5 © 2010 SciRes.

Proceedings of Annual Conference of China Institute of Communications

Page 2: Research and Implementation of Learning Tracing …file.scirp.org/pdf/6-1.30.pdf · 及学习交互等状况。然后目前只有在 ADL 组织提供 SCORM 标准文档中对SCORM

使用频率最高的,通讯过程中使用 Data Model(数据模

型)来记录跟踪信息。在 SCORM1.2 标准中,Data Model

分为八大类,学习跟踪中常用的 Data Model 元素有 14

个,如表 1 所示。

Table 1. Common data-model elements of SCORM in learning tracing

表 1. SCORM 学习跟踪中常用的数据模型元素

Cmi.core. _children

Cmi.core. student_id

Cmi.core. student_name

Cmi.core. les-

son_location

Cmi.core.credit

Cmi.core. lesson_status

Cmi.core. entry

Cmi.core.score._children

Cmi.core. score.raw

Cmi.core.total_time

Cmi.core.exit Cmi.core.

session_time Cmi.

suspend_data Cmi.

launch_data

对SCORM课件的学习跟踪是通过LMS和SCORM

课件的交互来实现的,具体过程如图 1 所示。

2.1 LMS 服务器端

1. LMS 首先决定哪一个 SCO 将要运行,同时加载

Data Model 库;2. 设定 SCO 的运行模式,包括预览模

式、普通模式和复习模式,其中预览模式只是运行课件,

而不进行学习跟踪;3. 设定学员的学习状态,包括

“ab-initio”(初次学习)、“resume”(再次学习)和“”(已

完成)三种状态;[3] 4. 加载并运行 SCO。5. 通过 API

Adapter 实现 LMS 与 SCORM 课件的交互,完成数据模

型的读写操作。

2.2 LMS 客户端

1. 运行 SCORM API Adapter;2. 调用 API 初始化函

数;3. 加载课件 SCO 初始化数据;4. 获取 Data Model

中的用户 ID 和用户姓名;5. 获取 Data Model 中 cmi.

core.lesson_status 值,即当前用户对当前 SCO 的学习状

态,包括 Completed、Incomplete、Passed、Failed 等七

种状态;[3] 6. 获取数据模型中的 cmi.core.entry 值,该

值判断当前用户是否第一次学习当前 SCO,如果值为

“ab-initio”,则表示当前用户是首次学习,如果值为

“resume”,则表示用户是再次学习当前 SCO;7.获取数

据模型中的 cmi.core.lesson_mode 值,该值判断当前用

户访问当前 SCO 的方式,包括 browse(预览,不跟踪

学习)、normal(跟踪学习)、review(复习)三种模

式;[3]8.获取数据模型中的 cmi.core.score.raw 值, 该值

用来存放每一个学员在每一个 SCO 的学习过程中所累

积的总成绩,如果当前 SCO 有评测就会记录当前用户

的评测总成绩,没有就不纪录,LMS 可藉此 Data Model

做学习者成绩分析。如果学员是初次学习当前 SCO,系

统会初始化 cmi.core.score.raw 的值为 “”(空值);9.

获取数据模型中的 cmi.core.lesson_location 值,LMS 藉

此 Data Model 纪录每一个用户最后一次学习哪一个

SCO,以便再次学习该课程时可以直接跳转到上次学习

位置继续学习,相当于书签的功能;10.用户开始学习当

前 SCO,在学习过程中会记录一系列数据模型的值,用

于学习跟踪。其中 cmi.core.session_time 用来记录每个

学员每次学习的时间,包括学员进入每个 SCO 的停留

时间及访问的日期。在当前用户结束对当前 SCO 的学

习 时 , LMS 会 记 录 cmi.core.total_time 的 值 ,

cmi.core.total_time 表示当前用户对每个 SCO 学习所花

的总时间;11.执行 LMSCommit(Parameter)接口函数。

该函数用来提交数据模型元素的值, LMSCommit

t(Parameter)发生在 LMSfinish t(Parameter)之前;12.执行

LMSFinish()函数。当用户学习完并要离开一个 SCO 时,

便会将调用 LMSFinish()。LMSFinish()主要负责将环境

变量重设,并判断该 SCO 是否在结束之前己经调用

LMSCommit()将所有记录存储到 LMS。若尚未储存,

则会自动调用 LMSCommit()将学员在当前 SCO 的学习

记录保存。

Figure 1. Principle of learning tracking mechanism

图 1. SCORM 学习跟踪原理

121 978-1-935068-10-5 © 2010 SciRes.

Proceedings of Annual Conference of China Institute of Communications

Page 3: Research and Implementation of Learning Tracing …file.scirp.org/pdf/6-1.30.pdf · 及学习交互等状况。然后目前只有在 ADL 组织提供 SCORM 标准文档中对SCORM

3 符合 SCORM 标准学习管理系统的跟踪机

制实现

要实现对 SCORM 课件的跟踪,LMS RTE(运行

时间环境)应包括服务器端和客户端两部分,如图 2

所示。服务器端包括学习数据库的管理和通信数据的

维护,客户端需要为学习者提供一个 API Adapter,API

Adapter 是用来实现 API 功能的软件包,API 适配器的

内部实现对于学习内容开发者来说是无关紧要的,因

为他们都使用相同的调用接口。运行在客户端的 SCO

通过浏览器获取该 API Adapter 实例,API 提供了一种

SCO 与 LMS 进行通信的标准方式,同时它对 SCO 隐

藏了通信的实现细节,从而促进了 SCO 的重用性和互

操作性。在 SCO 和 LMS 交互过程中,通过数据模型

(Data Model)的读写来实行对学习者的学习跟踪。

Figure 2. Launch, API and Data Model as they apply

to the SCORM Run-Time Environment.[3]

图 2. SCORM 运行时间环境示意图[3]

在对学习者学习的跟踪过程中, API Adapter的设

计是系统的关键技术。API Adapter的函数包括三类:[5]

1.运行状态函数:①LMSInitialize():负责启动

SCO,当学习者开始学习一个SCO时,首先就要调用

LMSInitialize(); LMSFinish()② :当学习者阅读完并要

离 开 一 个 SCO 时 , 在 结 束 时 SCO 便 会 将 调 用

LMSFinish()。

2.状态管理函数:①LMSGetLastError():该函

数将返回一个错误代码,每次API呼叫后,该函数的

值将被重置(LMSGetErrorString及LMSGetDiagnostic

除外);②LMSGetErrorString():返回错误代码对

应的错误信息; LMSGetDiagnostic()③ :返回LMS提供

的错误代码对应的详细诊断信息。

3.数据传输函数: LMSSetValue① (data model

element,value):负责存储所有相关的学习记录;

②LMSGetValue(data model element):主要负责从

LMS获取数据; LMSCommit(“”)③ :主要负责将所有

暂存在内存中的学习记录,回存到LMS。

由于SCO是通过浏览器与LMS交互,而API适配

器是由LMS提供的,需要LMS启动时自动运行。Applet

是一种Java的客户端小程序,它通过使用该Applet的

HTML文件,由支持Java的网页浏览器下载自动运行。

因此LMS可以采用Java Applet来实现API Adapter,在

课件框架页面嵌入Java Applet,然后运行onload事件中

调用init()函数部署API Adapter,LMS就可以实现对

SCORM课件的跟踪。 [4]下面给出在页面中嵌入API

Adapter的代码。

<body onLoad="init();"> <object clas-

sid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"

width="0" height="0" id="APIAdapter" code-base="http://java.sun.com/products/plugin/autodl/jinstall-1_4-windows-i586.cab#Version=1,4,0,0">

<param name = "code" value = "org/adl/samplerte/client/APIAdapterApplet.class" >

<param name = "codebase" value = "/elearning">

<param name = "type" value="application/x-java-applet;jpi-version=1.4.2">

<param name = "mayscript" value="true" > <param name = "scriptable" value="true" > <param name = "archive" value = "cmidata-

model.jar,lmsclient.jar,debug.jar" > <comment> <applet

code="org/adl/samplerte/client/APIAdapterApplet.class" ar-

chive="cmidatamodel.jar,lmsclient.jar,debug.jar" codebase="/elearning" src="/elearning" height="1" id="APIAdapter" name="APIAdapter" width="1" mayscript="true"> </applet> </comment> </object>

122978-1-935068-10-5 © 2010 SciRes.

Proceedings of Annual Conference of China Institute of Communications

Page 4: Research and Implementation of Learning Tracing …file.scirp.org/pdf/6-1.30.pdf · 及学习交互等状况。然后目前只有在 ADL 组织提供 SCORM 标准文档中对SCORM

4 符合 SCORM 标准网络课程的学习跟踪机

制实现

在网络课程中,通常将一个网页作为一节或者一

章,如果课件是用Flash制作的,我们可以把Flash嵌入

到网页当中。在SCORM标准课程制作中,我们将这样

一个网页作为一个SCO,作为跟踪的最小单位。那我

们如何来跟踪这样一个SCO呢?

首先,我们在网页中加入两个SCORM包装文件

APIWrapper.js和SCOFunctions.js。其中APIWrapper.js

是网络课程调用API Adapter的接口,当SCO被启动时,

使用它的findAPI()函数去寻找API Adapter,发现后

SCO就可以调用API Adapter中的跟踪函数来实现与

LMS的交互。SCOFunctions.js文件用于数据分析,可

以加入自定义函数,在SCO跳转和退出时需要调用该

文件中的函数,另外还包含计算时间的函数,用于计

算用户的学习时间,这些时间保存到数据模型中。加

入SCORM包装文件的代码片段如下所示:

<script type="text/javascript"

src="SCOFunctions.js"> <script type="text/javascript" src="APIWrapper.js"> 第二步,在页面的载入和退出时加上API Adapter

的初始化事件loadPage()和结束事件unloadPage ( ),代码片段如下所示:

<body onLoad="loadPage()" onunload="return unloadPage()">

这两个文件的具体定义在包装文件当中,其中

loadPage()的定义如下所示: function loadPage() { var result = doLMSInitialize(); var status = doLMSGet-

Value( "cmi.core.lesson_status" ); if (status == "not attempted") { doLMSSetValue( "cmi.core.lesson_status",

"incomplete" ); } exitPageStatus = false; startTimer(); } 第三步,在网页中使用LMSSetValue()和

LMSGetValue()两个函数读写数据模型来跟踪当前

用户的学习情况。 现在很多网页课件中都包含大量的Flash动画,

那如何跟踪这些Flash课件的学习情况呢。FSCommand

是Flash用来和支持它的其它应用程序互相传达命令

的工具,Flash课件利用FSCommand发送命令给网页

中的脚本语言(JavaScript或VBScript),然后脚本语

言发送命令给Flash。就可以实现网页与Flash的通信

了。在网页中使用FSCommand命令要在网页中嵌入

如下代码: <SCRIPT LANGUAGE="VBScript"> <!-- Sub navigator_FSCommand(ByVal command, By-

Val args) call navigator_DoFSCommand(command, args) end sub //--> </SCRIPT>

5 结束语

实现对学习者的学习跟踪是很多E-learning平台

开发者和课件制作人员非常感兴趣的话题,基于

SCORM标准的学习跟踪是非常好的解决方案。由于篇

幅有限,本文仅对基于SCORM标准的学习跟踪关键技

术进行了阐述,要实现对在学习者的跟踪,还有很多

细节问题需要解决。希望本文能对E-learning工作者能

有所启发和帮助。

致 谢

感谢中国科学院计算机网络信息中心的同仁,他

们为本课题的研究提供了研究资料和很多好的建议。

感谢上海师范大学教育技术系的导师,他们也为本课

题的研究提供了很多好的建议。感谢河北北方学院,

他们为本课题的研究提供了经费和设备支持。

References (参考文献)

[1] ADL.SCORM Overview [EB/OL]. http://www.vsscorm.net/docs /SCORM_1.2_Overview. pdf.

[2] ADL.SCORM version 1.2-The SCORM Content Aggregation Model.http://www.adlnet.org/ADLDOCS/Documents/ SCORM_1.2_CAM.pdf.

[3] ADL.SCORM version 1.2-The SCORM Runtime Environment. http://www.adlnet.org/ADLDOCS/Document/ SCORM_1.2_RunTimeEnv.pdf.

[4] Yan Renjuan,Wu Liping,Design and Implementation of Learning Management System Based on SCORM [J],Computer Systen Application, 2009,(7) ,P15-18 (CH). 颜仁泉,吴丽萍,基于 SCORM 规范的学习管理系统的设计

与实现[J],计算机系统应用,2009,(7),pp. 15-18. [5] Dai Xin,Shen Ruiming,Shen Liping, Realization of Intelligentized

General Instructing Platform Based on SCORM[J], Computer En-gineering and Applications, 2002(21), pp. 129- 132(CH). 戴 欣,申瑞民,申丽萍,基于 SCORM 规范的智能化通用教

学平台的实现[J]. 计算机工程与应用, 2002(21)pp. 129-132.

123 978-1-935068-10-5 © 2010 SciRes.

Proceedings of Annual Conference of China Institute of Communications