SCORM标准及支持SCORM标准学习平台的设计
一、 引言
Internet在各领域的普及为信息和知识的交流传播提供了便捷的途径,而网络更成为一个公共的传递平台,基于网络的学习内容几乎可以被任何媒体传递;基于网络的技术迅速成为学习技术的主流。而网络远程教育在这个时候成为了国际国内教育的主流发展方向。
网络学习与传统课堂学习方式相比,其主要有以下优点:
(1)以学生的自主学习为主,教师指导为辅,从根本上改变了传统教学中教师的为中心地位。
(2)强调学生学习的自主性,使其从被动听讲的接受者转变为主动参与的学习主体。
(3)媒体从原来作为教师的演示工具,转变为学生的认知工具。
(4)教师既可对虚拟群体进行教学,又可对单独个人进行教学,真正落实因材施教的教学原则。
在远程教育行业,AICC和SCORM是两个已经被广泛采用的标准。AICC与SCORM都可以实现标准化接口,实现跟踪、管理等功能。
AICC是由CBT标准发展而来,对课件开发而言比较符合“脚本”的思路,SCORM更多考虑网络化,提倡LO(学习对象)的可重用性,虽然AU与SCO形式上是一致的,但体现的理念却完全不同,AICC中的AU是死的,SCORM的SCO确是活的,当前人们看不到AICC的发展方向(可能也到了尽头),SCORM却对未来描述的十分清楚,而且越来越多的平台、课程开发商加入SCORM的行列。
从远程教育平台的角度来看,AICC对平台的要求相对简单一些,对课件制作的难度较大,SCORM正好相反。随着网络WEB的发展,人们发现AICC的东西越来越不好用了,有逐步淘汰的趋势。
SCORM标准的出现,显著提高了内容开发和LMS领域的竞争性,提高了学习质量、降低了开发成本、在线教育课程素材的市场响应时间。只要有一个依从标准的学习平台,便可从众多的内容服务供货商选取现成的教材,辅以根据公司所需而自制的教材,便可构建一个灵活的,低成本的效益很高的培训实体。
SCORM标准作为网络远程教育的国际标准,其最大的优点就是其标准化和开放性,通过开发基于符合SCORM标准的网络学习平台,将有效地解决教学课件与学习平台兼容性的问题,并实现教学资源的共享和重用。
二、 SCORM标准
SCORM(SharableContentObjectReferenceModel,可共享课程对象参照模型)是由美国国防部的高级分布式学习(ADL)组织制定的,是目前使用范围最广、应用性最强的网络课程标准之一。
SCORM标准从提出现在已有多个版本,分别是SCORM1.0 SCORM1.1SCORM1.2,SCORM2004,应用最广泛的是SCORM1.2,其次为SCORM2004,下个SCORM主版本为SCORM2008。
符合SCORM标准的网络课程具有高水平的可访问性、适应性、可承受性、持久性、互操作和可重用性,在学习符合SCORM标准的课件时,LMS(学习管理系统)可以非常详细地跟踪和记录每个学习者的学习进度、学习成绩、学习状态、学习时间以及学习交互等状况。
SCORM定义了一个网络化学习的“内容聚合模型”(ContentSggregationModelCAM)和学习对象的“实时运行环境”(RuntimeEnvironmentRTE)。其主要核心是可共享内容对象(SharableContentObjectSCO)和学习管理系统(LearningManagementSystemLMS)之间的通信问题。
从图1:SCORM实时运行环境概念模型中可以看出,两者之间的通信是通过实时运行环境中提供的应用程序接口(API)来实现的。
三、 SCORM学习跟踪原理
在SCORM标准中,SCO(SharableContentObject)是LMS通过SCORMRTE(运行时间环境)可以跟踪的最低粒度水平的学习资源,它们的通讯由APIAdapter(适配器)来完成。
API定义了八个主要的function,分别是LMSInitilize、LMSFinish、LMSSetValue、LMSGetValue、LMSCommit、LMSGetLastError、LMSGetErrorString、LMSGetDiagnostic,其中LMSGetValue和LMSSetValue最为复杂,也是跟踪中使用频率最高的,通讯过程中使用DataModel(数据模型)来记录跟踪信息。
在SCORM1.2标准中,DataModel分为8大类,学习跟踪中常用的DataModel元素有14个,如表1所示。
对SCORM课件的学习跟踪是通过LMS和SCORM课件的交互来实现的。
1.在LMS服务器端:
(1)LMS首先决定哪一个SCO将要运行,同时加载DataModel库;
(2)设定SCO的运行模式,包括预览模式、普通模式和复习模式,其中预览模式只是运行课件,而不进行学习跟踪;
(3)设定学员的学习状态,包括“ab-initio”(初次学习)、“resume”(再次学习)和“”(已完成)三种状态;
(4)加载并运行SCO;
(5)通过APIAdapter实现LMS与SCORM课件的交互,完成数据模型的读写操作。
2.在LMS客户端:
(1)运行SCORMAPIAdapter;
(2)调用API初始化函数;
(3)加载课件SCO初始化数据;
(4)获取DataModel中的用户ID和用户姓名;
(5)获取DataModel中cmi.core.lesson_status值,即当前用户对当前SCO的学习状态,包括Completed、Incomplete、Passed、Failed等七种状态;
(6)获取数据模型中的cmi.core.entry值,该值判断当前用户是否第一次学习当前SCO。如果值为“ab-initio”,则表示当前用户是首次学习;如果值为“resume”,则表示用户是再次学习当前SCO;
(7)获取数据模型中的cmi.core.lesson_mode值,该值判断当前用户访问当前SCO的方式,包括Browse(预览,不跟踪学习)、Normal(跟踪学习)、Review(复习)三种模式;
(8)获取数据模型中的cmi.core.score.raw值,该值用来存放每一个学员在每一个SCO的学习过程中所累积的总成绩。如果当前SCO有评测就会记录当前用户的评测总成绩,没有就不记录。LMS可借此DataModel作学习者成绩分析。如果用户是初次学习当前SCO,系统就会初始化cmi.core.score.raw的值为“”(空值);
(9)获取数据模型中的cmi.core.lesson_location值。LMS借此DataModel记录每一个用户最后一次学习哪一个SCO,以便下一次重新进入该课程时可以直接跳转到上次学习位置继续学习,相当于书签的功能;
(10)用户开始学习当前SCO,在学习过程中会记录一系列数据模型的值,用于学习跟踪。其中cmi.core.session_time用来记录每个学员每次学习的时间,包括每个用户进入每个SCO的停留时间及访问的日期。在当前用户结束对当前SCO的学习时,LMS则会记录cmi.core.total_time的值,cmi.core.total_time表示当前用户对每个SCO学习所花的总时间;
(11)执行LMSCommit(Parameter)接口函数。该函数主要是用来提交数据模型元素的值,LMSCommit发生在LMSfinish之前;
(12)执行LMSFinish()函数。当用户学习完并要离开一个SCO时,便会调用LMSFinish()。LMSFinish()主要负责将环境变量重设,并判断该SCO是否在结束之前己经调用LMSCommit()将所有记录存储到LMS。若尚未储存,则会自动调用LMSCommit()将当前用户在当前SCO的学习记录保存。
在对学习者学习的跟踪过程中,APIAdapter的设计是系统的关键技术。APIAdapter的函数包括三类:
⒈运行状态函数:
①LMSInitialize():负责启动SCO,当学习者开始学习一个SCO时,首先就要呼叫LMSInitialize。
②LMSFinish():当学习者阅读完并要离开一个SCO时,SCO便会将呼叫LMSFinish()。
2.状态管理函数:三个API函数:
①LMSGetLastError():该函数将返回一个错误代码,每次API呼叫后,该函数的值将被重置(LMSGetErrorString及LMSGetDiagnostic除外)。
②LMSGetErrorString():返回错误代码对应的错误信。
③LMSGetDiagnostic():返回LMS提供的错误代码对应的详细诊断信息。
⒊数据传输函数:也包括三个函数:
① LMSSetValue(datamodelelement,value):负责存储所有相关的学习记录。
② LMSGetValue(datamodelelement):主要负责将数据由LMS取出。
③ LMSCommit(“”):主要负责将所有暂存在内存中的学习记录回存到LMS。由于SCO是通过浏览器与LMS交互,而API适配器是由LMS提供的,需要LMS启动时自动运行。
Applet是一种Java的客户端小程序,它通过使用该Applet的HTML文件,由支持Java的网页浏览器下载自动运行。因此LMS可以采用JavaApplet来实现APIAdapter,在课件框架页面嵌入JavaApplet,然后运行onload事件中调用init()函数部署APIAdapter,LMS就可以实现对SCORM课件的跟踪。
在网络课程中,通常将一个网页作为一节或者一章,如果课件是用Flash制作的,我们可以把Flash嵌入到网页当中。在SCORM标准课程制作中,我们将这样一个网页作为一个SCO,作为跟踪的最小单位。那我们如何来跟踪这样一个SCO呢?
首先,我们在网页中加入两个SCORM包装文件APIWrapper.js和SCOFunctions.js。其中APIWrapper.js是网络课程调用APIAdapter的接口,当SCO被启动时,使用它的findAPI()函数去寻找APIAdapter,发现后SCO就可以调用APIAdapter中的跟踪函数来实现与LMS的交互。SCOFunctions.js文件用于数据分析,可以加入自定义函数,在SCO跳转和退出时需要调用该文件中的函数,另外还包含计算时间的函数,用于计算用户的学习时间,这些时间保存到数据模型当中。
第二步,在页面的载入和退出时加上APIAdapter的初始化事件loadPage()和结束事件unloadPage()
第三步,在网页中使用LMSSetValue()和LMSGetValue()两个函数读写数据模型来跟踪当前用户的学习情况。
四、 基于SCORM标准的网络课程的制作及测试
基于SCORM标准的网络课程的制作,可以通过ReloadEditor将格式为Html的一般网页打包成符合SCORM标准的课件包,并通过制定SCORM标准的美国ADL组织官方测试工具进行包的测试。
SCORM标准的课程开发步骤:
1.构建可共享内容对象(SCO);
可共享对象(SCO)是与LMS(学习管理系统)进行交互的最小单位。将普通的Html页面制作成符合SCORM标准的SCO,首先需要增加两个js文件,分别为APIWrapper.js与SCOFunctions.js,然后需要在Html中对两个js文件的调用,并需要在body属性里设置onLoad值为“loadPage()”及onUnload值为“returnunloadPage()”。
2.构建元数据(Meta-Data)文件;
SCORM2004中Metadata共分9大类,分别是通用(general)、生命周期(lifecycle)、元元数据(meta-metadata)、技术(technical)、教育(educational)、权利(rights)、关系(relation)、批注(Annotation)以及分类(Classification)等。要创建Metadata只要在相应的组件或教材资产上单击鼠标右键,选择“加入Metadata”即可弹出9大类Metadata输入表单,然后输入相应的数据,最后确定完成Metadata的制作。
3.构建内容清单文件(imsmanifest.xml);
对于内容清单文件的构建常用的工具为ReloadEditor,下面介绍它的下载、安装及使用。
1)ReloadEditor只是SCORM标准教材封装制作中的一个非常好的辅助工具。
2)ReloadEditor可以用来快速生成imsmanifest.xml文件。当然imsmanifest.xml文件也可以通过自己手工编写,用记事本或Editor等网页制作工具。
3)可以方便地进行教材结构的调整、目录的设置以及ASSET和SCO类型的设置。
4)可以生成zip包,根据SCORM标准的包,可以自动生成这样的压缩包。
在打包之前,要对已经做好的网页进行跟踪脚本的写入。
在使用ReloadEditor制作SCORM标准课程的时候,先了解如何制作SCO,然后是了解如何用ReloadEditor打包。
1)打开ReloadEditor,新建一个ADLSCORM1.2内容包,其中cp(contentpackage)为内容包的版本,md(metadataversion)为元数据的版本,一般情况使用默认值即可。选择用于新内容包的目录,找到Html网页课程文件存放的目录路径,双击将其内容导入窗口。
2)接下来编辑imsmanifest.xml文件。在右边的Organizations点鼠标右键用AddOrganization命令增加一个组织,然后鼠标右键用AddItem增加顶。
3)在右边的Resources点鼠标右键用AddResource命令增加一个课程资源,将相应SCO拖到右侧Resource下,注意设置SCORMType=sco。
4)组织Organization,并将其Referencedelement项指向下面相应的Resource。
5)预览所做的课程并打包,即完成Html课程打包成符合SCORM标准课程的过程。
4.测试内容包。
目前普遍的测试方法是将课程包导入学习管理系统,但此方法只能在表层上说明测试的课程包可以打开,而不能测试出里面的详细信息。要了解更多细节可采用制定SCORM标准的美国ADL组织官方测试工具TestSuit进行包的测试。具体操作如下:
1)点击桌面的TestSuite1.2.7ST快捷方式。
2)点击运行后,在出来的界面里点击最下面一个选项。
3)输入测试者,版本,教材的开发者等一些信息后点下面的continue按钮。
4)按照软件的指示,选择最后一个选项,进行SCORM1.2标准教材的测试。
5)导入教材的zip包,进入正式测试。如果导入的教材是标准的SCORM1.2标准教材包,就会顺利进行测试步骤,直到完成为止。
五、 支持SCORM标准学习平台的设计
1.系统设计可采用基于WEB的三层体系结构,分为数据层(数据库)、逻辑层(数据访问组件)和表示层(HTML、CSS、Javascript)。
2.采用目前比较成熟的J2EE企业应用架构,采用多层次结构;
3.采用模块化设计,具有很强的灵活性;
4.采用B/S结构,100%的瘦客户;
5.使用跨平台的Java语言,能应用于多个操作系统,提高系统的应用面。
6.提供标准的API接口,便于其他系统的集成;
7.利用先进的EJB、JDBC、LDAP和XML等技术,保证系统的高性能、高扩展性、安全性和灵活性;
8.满足不同层面的用户(大、中、小)的需求,提供不同的软件配置方案。
根据网络学习的特点和对国内外相关系统的分析,把系统结构按照学习过程进行划分,主要由学习准备、学习过程、学习结束三个阶段构成。
系统的应用模型如图2所示。
图2:系统的应用模型
(1)学习准备阶段主要由教师确定课程和课程开设时间,确定后通知邮件或者短信方式通知学生;学生通过网络报名,教师对报名进行审批;教师根据学生的情况分成若干学习小组并制定出课程学习计划;学习计划中规定课程学习安排、小组谈论时间、作业内容及提交时间和考核方式等。
(2)学习过程阶段主要是学生通过平台使用SCORM课件自主学习,系统通过SCORM课件将自动记录学生的学习状态,如:上一次学习进度,在线学习时间、课程学习次数、课程单元测试分数等;学习过程中学生可通过论坛、在线聊天工具进行小组讨论,同时根据教学计划的安排完成课程作业。
(3)学习结束阶段主要是通过在线考试系统进行课程考试;并对课程的学习方式、课件内容和计划安排等方面进行评价和反馈。教师将根据学生的学习情况进行汇总与统计,学习情况主要根据系统记录的课程学习时间、次数、课程单元测试分数,作业完成情况、课程结束考试分数等;并最后对整个学习过程进行评估与总结。
网络中心:李京辉