基于AS3.0的知识自动测评类库研究*
白喆+潘伟
摘 要:计算机辅助测评可提供快速、准确和一致的评价,能够自动对结果进行统计分析。KAEL是一个基于AS3.0面向对象语言特征设计的计算机辅助测评类库,通过其系统化的开发体系可以降低技术难度、提高开发效率,应用途径广泛且支持平台丰富。其自身不决定测评的内容和反馈形式,完全根据教育者的需求辅助构建测评应用。这些应用能够在课堂教学、网络教学、移动教学等教学环境下提供知识测评反馈,并根据反馈结果进行教学方法和学习方法的调整,以促进学习者的学习。
关键词:KAEL;计算机辅助测评;类库;AS3.0;CBT;CAA;题型
中图分类号:G434,TP311 文献标志码:A 文章编号:1673-8454(2014)09-0076-04
从20世纪60年代初开始对计算机辅助评价(CAA)和计算机辅助测试(CBT)进行理论研究和项目开发,以协助学习者学习和教育者教学。[1] CBT提供预先设定的测试题库和公平的测试环境,CAA对CBT获取的信息进行统计分析,并对统计分析结果进行评价。例如:澳大利亚悉尼大学开发的WebMCQ系统、英国赫瑞瓦特大学开发的CUE系统、清华同方开发的网络教育平台考试系统、科大讯飞公司开发的国家普通话水平智能测试系统等等。[2][3]与传统测评相比,具有交互性、实时性、公正性和便捷性等特点,能够提高测评效率,保障测评安全和提供个性化评价,[4]还能为适应性学习支持系统和智能教学系统提供测评支持。
目前,绝大多数教学平台都支持测评功能,但是在教学课件中测评功能却需要单独开发,对于一线教师而言很难实现。
一、KAEL的可行分析
1.开发定位
知识自动测评类库(Knowledge Automatic Evaluation of Library,以下简称KAEL)基于AS3.0技术进行开发,对知识测评应用提供支持。通过配置型代码完成各类功能,只需基本的Flash知识就能够完成复杂的测评功能。
信息技术环境下,知识测评的题型主要包括填空题、选择题、问答题、连线题、分类题等。这类题型模式较为固定,与技能测评相比,共性是利于抽象。AS3.0是Flash最新版本的脚本语言,具有面向对象语言的基本特性。Flash在教学过程中被广泛应用,便于KAEL的推广和使用,能够提供强大的扩展能力和二次开发能力。
2.应用体系
由于类库的封装性和通用性以及Flash的ActiveX特性,以KAEL为核心类库层向外扩展出三个开发逻辑层,分别是二次开发层、应用开发层和系统集成层,如图1所示。其中核心类库层和应用开发层是完成基本测评功能的必要开发逻辑层;二次开发层和系统集成层是对基本测评功能进行拓展、整合的可选开发逻辑层。
类库核心层的功能是类库开发者对KAEL进行设计、优化、升级。二次开发层的功能是二次开发者根据各自的特殊需求对KAEL改进算法和扩展类库,实现提高测评精度、增加题型、提供外部程序接口等功能。应用开发层的功能是应用开发者调用KAEL进行AS3.0交互程序设计、调试、输出,根据教学需要使用KAEL完成习题、测验、例题教学、调查问卷、教育游戏等交互功能。系统集成层的功能是其他软件开发者将基于KAEL开发的Flash应用程序嵌入到各自的程序中,可以与其进行数据交换。其他软件开发者除应该掌握所用的开发软件外,还应该熟悉Flash应用程序的数据传递和接口调用功能,将基于KAEL开发的Flash应用程序嵌入到PPT、网页、Director、VB、VC、.NET等程序中,配合所用开发软件的数据库存储、网络共享、实时交互等功能构建出功能更加丰富的教学应用。
3.主要优势
(1)降低技术难度。Flash在教学中的应用越来越广,知识自动测评功能对大多数教育者而言技术难度较高,尤其是问答题、连线题和分类题。即便能够实现类似的功能,多存在代码兼容性低、可移植性差、编写代码时间长等问题。KAEL封装了各类题型测评的算法,有效地解决了以上问题,可以集中精力进行教学设计。
(2)提高开发效率。在软件工程中强调代码的重用性,最具代表性的就是类库。[5]各种专业类库使开发者直接调用类库的各种功能快速地完成软件开发,不必花费更多的时间去研究具体的实现过程。但是在Flash还没有知识自动测评类库,KAEL提供了知识测评基本题型功能的类库,通过少量代码调用即可实现相应功能。
(3)应用途径广泛。在教学过程中会用到课堂练习、考试、教学游戏,甚至问卷调查,这些看上去不同的应用以前往往各自是一个单独的开发体系。KAEL可以将这些应用归纳为一个体系,抽象出了各类题型的呈现特征和判断特征,并根据教学模式的要求将这些抽象特征变化出不同的教学应用形式。
(4)支持平台丰富。新型媒介技术不断推出,其具有的传播优势必将其应用到教育领域。[6]个人电脑、平板电脑、智能手机等媒介都已进入教育领域,虽然其操作系统各不相同,但都支持Flash播放器,所以KAEL可以实现一次开发跨平台应用。此外,KAEL可以使用Flash和Flex这两种工具进行开发。
二、KAEL的体系结构
1.静态结构
静态结构是把代码中的函数、类或者模块抽象为节点,并把代码块之间的关系抽象为边所构成的网络模型。采用逆向工程方法对其组织结构进行分析,反映出软件系统的整体性质。代码的结构并不是随机和无序的,越来越复杂的代码体系都展现出“小世界”[7]和“无尺度”[8]的特性。在设计中引入静态结构,可以使代码的设计利于控制和管理。
根据对各类练习题、测验和考试的特点系统地综合分析,将测试和评价过程经过抽象处理分为四种类型:评价类、问题类、题型类和题项类。评价类是对测评数据进行统计和分析的类;问题类是抽象出各题型的基本属性和方法的类,作为题型类和评价类之间的数据交换中介;题型类是在问题类派生出的用于反馈答题操作过程和判断答题结果的子类;题项类是用于进行鼠标操作和接收键盘输入答案的类。
根据以上四种类型的功能,静态结构的设计如图2所示。在程序运行过程中,学习者通过键盘输入方式或者基于题项类的鼠标操作方式将答题结果传递给问题类的子类——题型类。由题型类判断出答题结果的得分传递给评价类,由评价类统计出相关数据,得出评价结果。
2.评价类
评价类中只有一个assessment类,统计答题时间、答题数量、总分、得分、平均正确率、各知识点正确率等基本属性,在导入外部数据的基础上还可以统计出标准分、平均分、方差、标准差等扩展属性。根据统计结果,与预先设置的定性评语进行匹配,得出综合的定性评价。还可以根据需要使用exportXML()方法将统计数据和评价导出为XML格式供外部程序调用。
3.问题类
问题类中只有一个question类,保存分值、得分和知识点等属性。其中知识点属性是可选属性,如果教育者需要对学习者的知识点掌握情况进行详细的统计和评价,就需要将所有题目的知识点进行分类。由于各类题型的判断和显示方式各不相同,所以question类中用于判断答案的judge()方法和显示答案的show Answer()方法会在派生类中被重载,以适应不同题型的算法。
4.题型类
题型类在问题类基础上派生出的8个子类题型,实现各题型的逻辑功能。determin类是对判断题的抽象;fill类是对填空题的抽象;radio类是对单选题的抽象;check类是对多选题的抽象;assort类是对分类题的抽象;connect类是对连线题的抽象;discourse类是对简答题、问答题、作文题等类型的需要大量文字作答题型的抽象,提供了自动判断答案和人工判断答案两种方式;creat类是对设计、绘画、作曲等开放性较强的创作题型的抽象,它只提供接收得分的接口,答题方式需要根据具体问题在应用开发层单独设计或者在二次开发层进行扩展。
5.题项类
题项类共有7个类,实现题型类答案的交互操作。fillBlank类实现填空题答案的输入;radioOption类实现单选题的选项;checkOption类实现多选题的选项;assortOption类实现分类题的分类项;assortArea类实现分类题的分类区域;connectOptionList类实现连线题的连线项分类列表;connectOption类实现连线题的连线项。
三、KAEL的关键算法
1.分类题算法
分类题至少需要一个分类区域(assortArea类实例),通过分类项(assortOption类实例)的坐标判断其所属分类,多个分类区域的重叠区域可以实现交集的功能。
假设在分类题中有n个分类项p和m个分类区域q,分类项有l(l10)个正确分类区域k,s为分值,该分类题的得分为S=
C(pn,kj)sj。其中C(pn,kj)用来判断分类项在正确的分类区域内,相等时返回值为1,否则返回值为0。C(pn,kj)的算法描述如下:
输入:分类项pn,正确分类区域kj。
输出:判断结果。
步骤1:获取pn的坐标(pxn,pyn)。
步骤2:获取kj的坐标(kxj,kxy)、宽度w和高度h。
步骤3:如果kxj 2.连线题算法
连线题至少需要两组连线项列表(connectOptionList类实例),当相邻两组连线项(connectOption类实例)列表中都有已经被选择的连线项时,在两项之间自动画出一条连接直线。连线题不仅可以实现1→l的连接功能,还是可以实现1→n的连接功能。
假设在连线题中有组连线项列表,连线项数量依次为m1、m2、m3……mn,p为连线项,q为连线项的答案,s为分值,该连线题的得分为S=
C(pj,qj)sj。其中C(pj,qj)用来判断与pj连线的连线项和qj是否相等,相等时返回值为1,否则返回值为0。C(pj,qj)的算法描述如下:
输入:连线项pj,连线项的答案qj。
输出:判断结果。
步骤1:获取连线项pj的连线项lj。
步骤2:如果lj等于qj,返回值为true,否则返回值为false。
3.问答题算法
问答题一般采用语言叙述的方式,由于每个人的答题表达方式不同,很难与标准答案完全一致,因此需要对答案进行语句相似度判断。从语句相似度算法的区别上可分为三类:第一类是基于词频统计的句子相似度计算方法;第二类是基于语义库的词语语义相似度计算方法;第三类是基于句子语法结构的相似度计算方法。[9]这三种算法各有利弊:第一类算法精度不高,实现难度低;第二类算法需要语义知识库的支持,实现难度高;第三类算法精度和实现难度居中。
KAEL采用第三类算法实现对问答题的相似度判断,首先是判断关键字(包括关键字的同义词)所在的句子,然后判断关键字所在句子与关键字所在答案句子的相似度,并根据相似度权重计算出得分。
假设在问答题中,p是输入答案,根据标点符号被拆分成p1、p2、p3……pm。q是标准答案,根据标点符号被拆分成q1、q1、q3……qm,答案中的关键字及其权重值用括号括起来。关键字的权重值为w,填写在关键字后面,当有l个关键字时,wl=1,wl取值范围是0 C(p,qi)s,其中C(p,qi)用来表示相似度,即答案句qi根据其中包含的j个关键字w依次与输入答案的句子进行匹配判断的,匹配时返回值在0→1之间。C(p,qi)的算法描述如下:
输入:输入答案p,标准答案分句qi。
输出:分数权重W。
步骤1:将标准答案分句中的关键字及其权重值分离出来,存储在数组k和数组w中。
步骤2:在p中搜索k[n]。如果没有搜索到返回值为0。
步骤3:如果搜索到k[n],s=0,将qi中k[n]所在句子的字符进行逐字拆分后存储在数组l[m]中。然后遍历数组l[m]在p中搜索l[t]+l[t+1],每搜索到一次s++。完成遍历后,W=W+s/m*w[n]。
四、KAEL的应用开发
1.添加题型
以连线题为例,添加两组共8个题型元件,分别作为连线题的左侧项和右侧项。将元件类型设置为影片剪辑,设置属性中的类和基类。进入元件内部,使用文本工具输入问题文字,根据需要也可以添加图形。
2.配置题型
选择题型元件所在的关键帧,在“动作”面板中编写配置代码,引入KAEL类库,将题型元件与题型类关联,配置相关属性。
import kael.assessment;
var as:assessment=new assessment();
addChild(as);
var c=new connect();
as. addQuestion(c);
var colA=new connectOptionList(c);//初始化连线项列表A
addChild(colA);
for(i=0;i<=7;i++){//初始化连线项
this[“ca”+i]. init (colA);
}
ca0.answer=4;//设置答案序号
ca1.answer=2;
ca2.answer=0;
ca3.answer=3;
ca4.answer=5;
ca5.answer=7;
ca6.answer=1;
ca7.answer=6;
var colB=new connectOptionList (c);//初始化连线项列表B
addChild(colB);
for(j=1;j<=7;j++){//初始化连线项
this[“cb”+j]. init (colB);
}
3.调用评价
添加显示评价的元件,将元件类型设置为按钮,设置元件的实例名称和显示内容,在“动作”面板中添加调用代码,“答案”按钮单击事件时显示答案和评价的代码。
showAnswer.addEventListener(MouseEvent.CLICK, showAnswer_onclick);
function showAnswer_onclick(event:MouseEvent):void {
c. showAnswer();
as. showAssessment (“1,2,10”);
}
测试运行时,通过鼠标单击进行连线(绿色线)。连线完成后单击“答案”按钮,显示正确答案的连线(红色线)和评价结果。如果有错误提示,则根据提示排错、修改代码。
五、结语
在信息技术的教学环境中教学测评的发展较为滞后,有效地解决这个瓶颈问题才能充分发挥出信息技术的作用。KAEL作为一种快速构建知识测评的计算机辅助测评系统的工具,其自身不决定测评的内容和反馈形式,完全根据教育者的需求辅助构建测评应用。这些应用能够在课堂教学、网络教学、移动教学等教学环境下提供知识测评反馈,根据反馈结果进行教学方法和学习方法的调整,以促进学习者的学习。
参考文献:
[1]Lowry R. Computer Aided Self Assessment - An Effective Tool[J].Chemistry Education Research and Practice 2005,6(4):198-203.
[2]黄荣怀,刘黄玲子,李向荣.计算机辅助评价的发展趋势[J].电化教育研究,2002(5):19.
[3]何克抗,许骏.计算机辅助测评(CAA)研究新进展——技能性非客观题的自动测评[J].开放教育研究,2005(2):79.
[4]Q. He & P. Tymms.A computer-assisted test design and diagnosissystem for use by classroom teachers[J].Journal of Computer Assisted Learning 2005(11):419-429.
[5]陈华,杨鹤标,徐向英.基于OOR的基础类库的研究及其应用[J].计算机工程与设计,2004(9):74.
[6]黄荣怀.关于教育技术学领域中的若干关键技术[J].中国电化教育,2005(4):6.
[7]D J Watts,S H Strogatz.Collective dynamics of small-world networks[J].Nature,393,1998:440-442.
[8]A-L Barabasi,R Albert.Emergence of scaling in random networks[J].Science,286,1999:509-512.
[9]郭扉扉,尹文生.改进型单向贴近度主观题自动评分算法的研究[J].计算机工程与科学,2011(7):173.
(编辑:王天鹏)
5.题项类
题项类共有7个类,实现题型类答案的交互操作。fillBlank类实现填空题答案的输入;radioOption类实现单选题的选项;checkOption类实现多选题的选项;assortOption类实现分类题的分类项;assortArea类实现分类题的分类区域;connectOptionList类实现连线题的连线项分类列表;connectOption类实现连线题的连线项。
三、KAEL的关键算法
1.分类题算法
分类题至少需要一个分类区域(assortArea类实例),通过分类项(assortOption类实例)的坐标判断其所属分类,多个分类区域的重叠区域可以实现交集的功能。
假设在分类题中有n个分类项p和m个分类区域q,分类项有l(l10)个正确分类区域k,s为分值,该分类题的得分为S=
C(pn,kj)sj。其中C(pn,kj)用来判断分类项在正确的分类区域内,相等时返回值为1,否则返回值为0。C(pn,kj)的算法描述如下:
输入:分类项pn,正确分类区域kj。
输出:判断结果。
步骤1:获取pn的坐标(pxn,pyn)。
步骤2:获取kj的坐标(kxj,kxy)、宽度w和高度h。
步骤3:如果kxj 2.连线题算法
连线题至少需要两组连线项列表(connectOptionList类实例),当相邻两组连线项(connectOption类实例)列表中都有已经被选择的连线项时,在两项之间自动画出一条连接直线。连线题不仅可以实现1→l的连接功能,还是可以实现1→n的连接功能。
假设在连线题中有组连线项列表,连线项数量依次为m1、m2、m3……mn,p为连线项,q为连线项的答案,s为分值,该连线题的得分为S=
C(pj,qj)sj。其中C(pj,qj)用来判断与pj连线的连线项和qj是否相等,相等时返回值为1,否则返回值为0。C(pj,qj)的算法描述如下:
输入:连线项pj,连线项的答案qj。
输出:判断结果。
步骤1:获取连线项pj的连线项lj。
步骤2:如果lj等于qj,返回值为true,否则返回值为false。
3.问答题算法
问答题一般采用语言叙述的方式,由于每个人的答题表达方式不同,很难与标准答案完全一致,因此需要对答案进行语句相似度判断。从语句相似度算法的区别上可分为三类:第一类是基于词频统计的句子相似度计算方法;第二类是基于语义库的词语语义相似度计算方法;第三类是基于句子语法结构的相似度计算方法。[9]这三种算法各有利弊:第一类算法精度不高,实现难度低;第二类算法需要语义知识库的支持,实现难度高;第三类算法精度和实现难度居中。
KAEL采用第三类算法实现对问答题的相似度判断,首先是判断关键字(包括关键字的同义词)所在的句子,然后判断关键字所在句子与关键字所在答案句子的相似度,并根据相似度权重计算出得分。
假设在问答题中,p是输入答案,根据标点符号被拆分成p1、p2、p3……pm。q是标准答案,根据标点符号被拆分成q1、q1、q3……qm,答案中的关键字及其权重值用括号括起来。关键字的权重值为w,填写在关键字后面,当有l个关键字时,wl=1,wl取值范围是0 C(p,qi)s,其中C(p,qi)用来表示相似度,即答案句qi根据其中包含的j个关键字w依次与输入答案的句子进行匹配判断的,匹配时返回值在0→1之间。C(p,qi)的算法描述如下:
输入:输入答案p,标准答案分句qi。
输出:分数权重W。
步骤1:将标准答案分句中的关键字及其权重值分离出来,存储在数组k和数组w中。
步骤2:在p中搜索k[n]。如果没有搜索到返回值为0。
步骤3:如果搜索到k[n],s=0,将qi中k[n]所在句子的字符进行逐字拆分后存储在数组l[m]中。然后遍历数组l[m]在p中搜索l[t]+l[t+1],每搜索到一次s++。完成遍历后,W=W+s/m*w[n]。
四、KAEL的应用开发
1.添加题型
以连线题为例,添加两组共8个题型元件,分别作为连线题的左侧项和右侧项。将元件类型设置为影片剪辑,设置属性中的类和基类。进入元件内部,使用文本工具输入问题文字,根据需要也可以添加图形。
2.配置题型
选择题型元件所在的关键帧,在“动作”面板中编写配置代码,引入KAEL类库,将题型元件与题型类关联,配置相关属性。
import kael.assessment;
var as:assessment=new assessment();
addChild(as);
var c=new connect();
as. addQuestion(c);
var colA=new connectOptionList(c);//初始化连线项列表A
addChild(colA);
for(i=0;i<=7;i++){//初始化连线项
this[“ca”+i]. init (colA);
}
ca0.answer=4;//设置答案序号
ca1.answer=2;
ca2.answer=0;
ca3.answer=3;
ca4.answer=5;
ca5.answer=7;
ca6.answer=1;
ca7.answer=6;
var colB=new connectOptionList (c);//初始化连线项列表B
addChild(colB);
for(j=1;j<=7;j++){//初始化连线项
this[“cb”+j]. init (colB);
}
3.调用评价
添加显示评价的元件,将元件类型设置为按钮,设置元件的实例名称和显示内容,在“动作”面板中添加调用代码,“答案”按钮单击事件时显示答案和评价的代码。
showAnswer.addEventListener(MouseEvent.CLICK, showAnswer_onclick);
function showAnswer_onclick(event:MouseEvent):void {
c. showAnswer();
as. showAssessment (“1,2,10”);
}
测试运行时,通过鼠标单击进行连线(绿色线)。连线完成后单击“答案”按钮,显示正确答案的连线(红色线)和评价结果。如果有错误提示,则根据提示排错、修改代码。
五、结语
在信息技术的教学环境中教学测评的发展较为滞后,有效地解决这个瓶颈问题才能充分发挥出信息技术的作用。KAEL作为一种快速构建知识测评的计算机辅助测评系统的工具,其自身不决定测评的内容和反馈形式,完全根据教育者的需求辅助构建测评应用。这些应用能够在课堂教学、网络教学、移动教学等教学环境下提供知识测评反馈,根据反馈结果进行教学方法和学习方法的调整,以促进学习者的学习。
参考文献:
[1]Lowry R. Computer Aided Self Assessment - An Effective Tool[J].Chemistry Education Research and Practice 2005,6(4):198-203.
[2]黄荣怀,刘黄玲子,李向荣.计算机辅助评价的发展趋势[J].电化教育研究,2002(5):19.
[3]何克抗,许骏.计算机辅助测评(CAA)研究新进展——技能性非客观题的自动测评[J].开放教育研究,2005(2):79.
[4]Q. He & P. Tymms.A computer-assisted test design and diagnosissystem for use by classroom teachers[J].Journal of Computer Assisted Learning 2005(11):419-429.
[5]陈华,杨鹤标,徐向英.基于OOR的基础类库的研究及其应用[J].计算机工程与设计,2004(9):74.
[6]黄荣怀.关于教育技术学领域中的若干关键技术[J].中国电化教育,2005(4):6.
[7]D J Watts,S H Strogatz.Collective dynamics of small-world networks[J].Nature,393,1998:440-442.
[8]A-L Barabasi,R Albert.Emergence of scaling in random networks[J].Science,286,1999:509-512.
[9]郭扉扉,尹文生.改进型单向贴近度主观题自动评分算法的研究[J].计算机工程与科学,2011(7):173.
(编辑:王天鹏)
5.题项类
题项类共有7个类,实现题型类答案的交互操作。fillBlank类实现填空题答案的输入;radioOption类实现单选题的选项;checkOption类实现多选题的选项;assortOption类实现分类题的分类项;assortArea类实现分类题的分类区域;connectOptionList类实现连线题的连线项分类列表;connectOption类实现连线题的连线项。
三、KAEL的关键算法
1.分类题算法
分类题至少需要一个分类区域(assortArea类实例),通过分类项(assortOption类实例)的坐标判断其所属分类,多个分类区域的重叠区域可以实现交集的功能。
假设在分类题中有n个分类项p和m个分类区域q,分类项有l(l10)个正确分类区域k,s为分值,该分类题的得分为S=
C(pn,kj)sj。其中C(pn,kj)用来判断分类项在正确的分类区域内,相等时返回值为1,否则返回值为0。C(pn,kj)的算法描述如下:
输入:分类项pn,正确分类区域kj。
输出:判断结果。
步骤1:获取pn的坐标(pxn,pyn)。
步骤2:获取kj的坐标(kxj,kxy)、宽度w和高度h。
步骤3:如果kxj 2.连线题算法
连线题至少需要两组连线项列表(connectOptionList类实例),当相邻两组连线项(connectOption类实例)列表中都有已经被选择的连线项时,在两项之间自动画出一条连接直线。连线题不仅可以实现1→l的连接功能,还是可以实现1→n的连接功能。
假设在连线题中有组连线项列表,连线项数量依次为m1、m2、m3……mn,p为连线项,q为连线项的答案,s为分值,该连线题的得分为S=
C(pj,qj)sj。其中C(pj,qj)用来判断与pj连线的连线项和qj是否相等,相等时返回值为1,否则返回值为0。C(pj,qj)的算法描述如下:
输入:连线项pj,连线项的答案qj。
输出:判断结果。
步骤1:获取连线项pj的连线项lj。
步骤2:如果lj等于qj,返回值为true,否则返回值为false。
3.问答题算法
问答题一般采用语言叙述的方式,由于每个人的答题表达方式不同,很难与标准答案完全一致,因此需要对答案进行语句相似度判断。从语句相似度算法的区别上可分为三类:第一类是基于词频统计的句子相似度计算方法;第二类是基于语义库的词语语义相似度计算方法;第三类是基于句子语法结构的相似度计算方法。[9]这三种算法各有利弊:第一类算法精度不高,实现难度低;第二类算法需要语义知识库的支持,实现难度高;第三类算法精度和实现难度居中。
KAEL采用第三类算法实现对问答题的相似度判断,首先是判断关键字(包括关键字的同义词)所在的句子,然后判断关键字所在句子与关键字所在答案句子的相似度,并根据相似度权重计算出得分。
假设在问答题中,p是输入答案,根据标点符号被拆分成p1、p2、p3……pm。q是标准答案,根据标点符号被拆分成q1、q1、q3……qm,答案中的关键字及其权重值用括号括起来。关键字的权重值为w,填写在关键字后面,当有l个关键字时,wl=1,wl取值范围是0 C(p,qi)s,其中C(p,qi)用来表示相似度,即答案句qi根据其中包含的j个关键字w依次与输入答案的句子进行匹配判断的,匹配时返回值在0→1之间。C(p,qi)的算法描述如下:
输入:输入答案p,标准答案分句qi。
输出:分数权重W。
步骤1:将标准答案分句中的关键字及其权重值分离出来,存储在数组k和数组w中。
步骤2:在p中搜索k[n]。如果没有搜索到返回值为0。
步骤3:如果搜索到k[n],s=0,将qi中k[n]所在句子的字符进行逐字拆分后存储在数组l[m]中。然后遍历数组l[m]在p中搜索l[t]+l[t+1],每搜索到一次s++。完成遍历后,W=W+s/m*w[n]。
四、KAEL的应用开发
1.添加题型
以连线题为例,添加两组共8个题型元件,分别作为连线题的左侧项和右侧项。将元件类型设置为影片剪辑,设置属性中的类和基类。进入元件内部,使用文本工具输入问题文字,根据需要也可以添加图形。
2.配置题型
选择题型元件所在的关键帧,在“动作”面板中编写配置代码,引入KAEL类库,将题型元件与题型类关联,配置相关属性。
import kael.assessment;
var as:assessment=new assessment();
addChild(as);
var c=new connect();
as. addQuestion(c);
var colA=new connectOptionList(c);//初始化连线项列表A
addChild(colA);
for(i=0;i<=7;i++){//初始化连线项
this[“ca”+i]. init (colA);
}
ca0.answer=4;//设置答案序号
ca1.answer=2;
ca2.answer=0;
ca3.answer=3;
ca4.answer=5;
ca5.answer=7;
ca6.answer=1;
ca7.answer=6;
var colB=new connectOptionList (c);//初始化连线项列表B
addChild(colB);
for(j=1;j<=7;j++){//初始化连线项
this[“cb”+j]. init (colB);
}
3.调用评价
添加显示评价的元件,将元件类型设置为按钮,设置元件的实例名称和显示内容,在“动作”面板中添加调用代码,“答案”按钮单击事件时显示答案和评价的代码。
showAnswer.addEventListener(MouseEvent.CLICK, showAnswer_onclick);
function showAnswer_onclick(event:MouseEvent):void {
c. showAnswer();
as. showAssessment (“1,2,10”);
}
测试运行时,通过鼠标单击进行连线(绿色线)。连线完成后单击“答案”按钮,显示正确答案的连线(红色线)和评价结果。如果有错误提示,则根据提示排错、修改代码。
五、结语
在信息技术的教学环境中教学测评的发展较为滞后,有效地解决这个瓶颈问题才能充分发挥出信息技术的作用。KAEL作为一种快速构建知识测评的计算机辅助测评系统的工具,其自身不决定测评的内容和反馈形式,完全根据教育者的需求辅助构建测评应用。这些应用能够在课堂教学、网络教学、移动教学等教学环境下提供知识测评反馈,根据反馈结果进行教学方法和学习方法的调整,以促进学习者的学习。
参考文献:
[1]Lowry R. Computer Aided Self Assessment - An Effective Tool[J].Chemistry Education Research and Practice 2005,6(4):198-203.
[2]黄荣怀,刘黄玲子,李向荣.计算机辅助评价的发展趋势[J].电化教育研究,2002(5):19.
[3]何克抗,许骏.计算机辅助测评(CAA)研究新进展——技能性非客观题的自动测评[J].开放教育研究,2005(2):79.
[4]Q. He & P. Tymms.A computer-assisted test design and diagnosissystem for use by classroom teachers[J].Journal of Computer Assisted Learning 2005(11):419-429.
[5]陈华,杨鹤标,徐向英.基于OOR的基础类库的研究及其应用[J].计算机工程与设计,2004(9):74.
[6]黄荣怀.关于教育技术学领域中的若干关键技术[J].中国电化教育,2005(4):6.
[7]D J Watts,S H Strogatz.Collective dynamics of small-world networks[J].Nature,393,1998:440-442.
[8]A-L Barabasi,R Albert.Emergence of scaling in random networks[J].Science,286,1999:509-512.
[9]郭扉扉,尹文生.改进型单向贴近度主观题自动评分算法的研究[J].计算机工程与科学,2011(7):173.
(编辑:王天鹏)
摘 要:计算机辅助测评可提供快速、准确和一致的评价,能够自动对结果进行统计分析。KAEL是一个基于AS3.0面向对象语言特征设计的计算机辅助测评类库,通过其系统化的开发体系可以降低技术难度、提高开发效率,应用途径广泛且支持平台丰富。其自身不决定测评的内容和反馈形式,完全根据教育者的需求辅助构建测评应用。这些应用能够在课堂教学、网络教学、移动教学等教学环境下提供知识测评反馈,并根据反馈结果进行教学方法和学习方法的调整,以促进学习者的学习。
关键词:KAEL;计算机辅助测评;类库;AS3.0;CBT;CAA;题型
中图分类号:G434,TP311 文献标志码:A 文章编号:1673-8454(2014)09-0076-04
从20世纪60年代初开始对计算机辅助评价(CAA)和计算机辅助测试(CBT)进行理论研究和项目开发,以协助学习者学习和教育者教学。[1] CBT提供预先设定的测试题库和公平的测试环境,CAA对CBT获取的信息进行统计分析,并对统计分析结果进行评价。例如:澳大利亚悉尼大学开发的WebMCQ系统、英国赫瑞瓦特大学开发的CUE系统、清华同方开发的网络教育平台考试系统、科大讯飞公司开发的国家普通话水平智能测试系统等等。[2][3]与传统测评相比,具有交互性、实时性、公正性和便捷性等特点,能够提高测评效率,保障测评安全和提供个性化评价,[4]还能为适应性学习支持系统和智能教学系统提供测评支持。
目前,绝大多数教学平台都支持测评功能,但是在教学课件中测评功能却需要单独开发,对于一线教师而言很难实现。
一、KAEL的可行分析
1.开发定位
知识自动测评类库(Knowledge Automatic Evaluation of Library,以下简称KAEL)基于AS3.0技术进行开发,对知识测评应用提供支持。通过配置型代码完成各类功能,只需基本的Flash知识就能够完成复杂的测评功能。
信息技术环境下,知识测评的题型主要包括填空题、选择题、问答题、连线题、分类题等。这类题型模式较为固定,与技能测评相比,共性是利于抽象。AS3.0是Flash最新版本的脚本语言,具有面向对象语言的基本特性。Flash在教学过程中被广泛应用,便于KAEL的推广和使用,能够提供强大的扩展能力和二次开发能力。
2.应用体系
由于类库的封装性和通用性以及Flash的ActiveX特性,以KAEL为核心类库层向外扩展出三个开发逻辑层,分别是二次开发层、应用开发层和系统集成层,如图1所示。其中核心类库层和应用开发层是完成基本测评功能的必要开发逻辑层;二次开发层和系统集成层是对基本测评功能进行拓展、整合的可选开发逻辑层。
类库核心层的功能是类库开发者对KAEL进行设计、优化、升级。二次开发层的功能是二次开发者根据各自的特殊需求对KAEL改进算法和扩展类库,实现提高测评精度、增加题型、提供外部程序接口等功能。应用开发层的功能是应用开发者调用KAEL进行AS3.0交互程序设计、调试、输出,根据教学需要使用KAEL完成习题、测验、例题教学、调查问卷、教育游戏等交互功能。系统集成层的功能是其他软件开发者将基于KAEL开发的Flash应用程序嵌入到各自的程序中,可以与其进行数据交换。其他软件开发者除应该掌握所用的开发软件外,还应该熟悉Flash应用程序的数据传递和接口调用功能,将基于KAEL开发的Flash应用程序嵌入到PPT、网页、Director、VB、VC、.NET等程序中,配合所用开发软件的数据库存储、网络共享、实时交互等功能构建出功能更加丰富的教学应用。
3.主要优势
(1)降低技术难度。Flash在教学中的应用越来越广,知识自动测评功能对大多数教育者而言技术难度较高,尤其是问答题、连线题和分类题。即便能够实现类似的功能,多存在代码兼容性低、可移植性差、编写代码时间长等问题。KAEL封装了各类题型测评的算法,有效地解决了以上问题,可以集中精力进行教学设计。
(2)提高开发效率。在软件工程中强调代码的重用性,最具代表性的就是类库。[5]各种专业类库使开发者直接调用类库的各种功能快速地完成软件开发,不必花费更多的时间去研究具体的实现过程。但是在Flash还没有知识自动测评类库,KAEL提供了知识测评基本题型功能的类库,通过少量代码调用即可实现相应功能。
(3)应用途径广泛。在教学过程中会用到课堂练习、考试、教学游戏,甚至问卷调查,这些看上去不同的应用以前往往各自是一个单独的开发体系。KAEL可以将这些应用归纳为一个体系,抽象出了各类题型的呈现特征和判断特征,并根据教学模式的要求将这些抽象特征变化出不同的教学应用形式。
(4)支持平台丰富。新型媒介技术不断推出,其具有的传播优势必将其应用到教育领域。[6]个人电脑、平板电脑、智能手机等媒介都已进入教育领域,虽然其操作系统各不相同,但都支持Flash播放器,所以KAEL可以实现一次开发跨平台应用。此外,KAEL可以使用Flash和Flex这两种工具进行开发。
二、KAEL的体系结构
1.静态结构
静态结构是把代码中的函数、类或者模块抽象为节点,并把代码块之间的关系抽象为边所构成的网络模型。采用逆向工程方法对其组织结构进行分析,反映出软件系统的整体性质。代码的结构并不是随机和无序的,越来越复杂的代码体系都展现出“小世界”[7]和“无尺度”[8]的特性。在设计中引入静态结构,可以使代码的设计利于控制和管理。
根据对各类练习题、测验和考试的特点系统地综合分析,将测试和评价过程经过抽象处理分为四种类型:评价类、问题类、题型类和题项类。评价类是对测评数据进行统计和分析的类;问题类是抽象出各题型的基本属性和方法的类,作为题型类和评价类之间的数据交换中介;题型类是在问题类派生出的用于反馈答题操作过程和判断答题结果的子类;题项类是用于进行鼠标操作和接收键盘输入答案的类。
根据以上四种类型的功能,静态结构的设计如图2所示。在程序运行过程中,学习者通过键盘输入方式或者基于题项类的鼠标操作方式将答题结果传递给问题类的子类——题型类。由题型类判断出答题结果的得分传递给评价类,由评价类统计出相关数据,得出评价结果。
2.评价类
评价类中只有一个assessment类,统计答题时间、答题数量、总分、得分、平均正确率、各知识点正确率等基本属性,在导入外部数据的基础上还可以统计出标准分、平均分、方差、标准差等扩展属性。根据统计结果,与预先设置的定性评语进行匹配,得出综合的定性评价。还可以根据需要使用exportXML()方法将统计数据和评价导出为XML格式供外部程序调用。
3.问题类
问题类中只有一个question类,保存分值、得分和知识点等属性。其中知识点属性是可选属性,如果教育者需要对学习者的知识点掌握情况进行详细的统计和评价,就需要将所有题目的知识点进行分类。由于各类题型的判断和显示方式各不相同,所以question类中用于判断答案的judge()方法和显示答案的show Answer()方法会在派生类中被重载,以适应不同题型的算法。
4.题型类
题型类在问题类基础上派生出的8个子类题型,实现各题型的逻辑功能。determin类是对判断题的抽象;fill类是对填空题的抽象;radio类是对单选题的抽象;check类是对多选题的抽象;assort类是对分类题的抽象;connect类是对连线题的抽象;discourse类是对简答题、问答题、作文题等类型的需要大量文字作答题型的抽象,提供了自动判断答案和人工判断答案两种方式;creat类是对设计、绘画、作曲等开放性较强的创作题型的抽象,它只提供接收得分的接口,答题方式需要根据具体问题在应用开发层单独设计或者在二次开发层进行扩展。
5.题项类
题项类共有7个类,实现题型类答案的交互操作。fillBlank类实现填空题答案的输入;radioOption类实现单选题的选项;checkOption类实现多选题的选项;assortOption类实现分类题的分类项;assortArea类实现分类题的分类区域;connectOptionList类实现连线题的连线项分类列表;connectOption类实现连线题的连线项。
三、KAEL的关键算法
1.分类题算法
分类题至少需要一个分类区域(assortArea类实例),通过分类项(assortOption类实例)的坐标判断其所属分类,多个分类区域的重叠区域可以实现交集的功能。
假设在分类题中有n个分类项p和m个分类区域q,分类项有l(l10)个正确分类区域k,s为分值,该分类题的得分为S=
C(pn,kj)sj。其中C(pn,kj)用来判断分类项在正确的分类区域内,相等时返回值为1,否则返回值为0。C(pn,kj)的算法描述如下:
输入:分类项pn,正确分类区域kj。
输出:判断结果。
步骤1:获取pn的坐标(pxn,pyn)。
步骤2:获取kj的坐标(kxj,kxy)、宽度w和高度h。
步骤3:如果kxj
连线题至少需要两组连线项列表(connectOptionList类实例),当相邻两组连线项(connectOption类实例)列表中都有已经被选择的连线项时,在两项之间自动画出一条连接直线。连线题不仅可以实现1→l的连接功能,还是可以实现1→n的连接功能。
假设在连线题中有组连线项列表,连线项数量依次为m1、m2、m3……mn,p为连线项,q为连线项的答案,s为分值,该连线题的得分为S=
C(pj,qj)sj。其中C(pj,qj)用来判断与pj连线的连线项和qj是否相等,相等时返回值为1,否则返回值为0。C(pj,qj)的算法描述如下:
输入:连线项pj,连线项的答案qj。
输出:判断结果。
步骤1:获取连线项pj的连线项lj。
步骤2:如果lj等于qj,返回值为true,否则返回值为false。
3.问答题算法
问答题一般采用语言叙述的方式,由于每个人的答题表达方式不同,很难与标准答案完全一致,因此需要对答案进行语句相似度判断。从语句相似度算法的区别上可分为三类:第一类是基于词频统计的句子相似度计算方法;第二类是基于语义库的词语语义相似度计算方法;第三类是基于句子语法结构的相似度计算方法。[9]这三种算法各有利弊:第一类算法精度不高,实现难度低;第二类算法需要语义知识库的支持,实现难度高;第三类算法精度和实现难度居中。
KAEL采用第三类算法实现对问答题的相似度判断,首先是判断关键字(包括关键字的同义词)所在的句子,然后判断关键字所在句子与关键字所在答案句子的相似度,并根据相似度权重计算出得分。
假设在问答题中,p是输入答案,根据标点符号被拆分成p1、p2、p3……pm。q是标准答案,根据标点符号被拆分成q1、q1、q3……qm,答案中的关键字及其权重值用括号括起来。关键字的权重值为w,填写在关键字后面,当有l个关键字时,wl=1,wl取值范围是0
输入:输入答案p,标准答案分句qi。
输出:分数权重W。
步骤1:将标准答案分句中的关键字及其权重值分离出来,存储在数组k和数组w中。
步骤2:在p中搜索k[n]。如果没有搜索到返回值为0。
步骤3:如果搜索到k[n],s=0,将qi中k[n]所在句子的字符进行逐字拆分后存储在数组l[m]中。然后遍历数组l[m]在p中搜索l[t]+l[t+1],每搜索到一次s++。完成遍历后,W=W+s/m*w[n]。
四、KAEL的应用开发
1.添加题型
以连线题为例,添加两组共8个题型元件,分别作为连线题的左侧项和右侧项。将元件类型设置为影片剪辑,设置属性中的类和基类。进入元件内部,使用文本工具输入问题文字,根据需要也可以添加图形。
2.配置题型
选择题型元件所在的关键帧,在“动作”面板中编写配置代码,引入KAEL类库,将题型元件与题型类关联,配置相关属性。
import kael.assessment;
var as:assessment=new assessment();
addChild(as);
var c=new connect();
as. addQuestion(c);
var colA=new connectOptionList(c);//初始化连线项列表A
addChild(colA);
for(i=0;i<=7;i++){//初始化连线项
this[“ca”+i]. init (colA);
}
ca0.answer=4;//设置答案序号
ca1.answer=2;
ca2.answer=0;
ca3.answer=3;
ca4.answer=5;
ca5.answer=7;
ca6.answer=1;
ca7.answer=6;
var colB=new connectOptionList (c);//初始化连线项列表B
addChild(colB);
for(j=1;j<=7;j++){//初始化连线项
this[“cb”+j]. init (colB);
}
3.调用评价
添加显示评价的元件,将元件类型设置为按钮,设置元件的实例名称和显示内容,在“动作”面板中添加调用代码,“答案”按钮单击事件时显示答案和评价的代码。
showAnswer.addEventListener(MouseEvent.CLICK, showAnswer_onclick);
function showAnswer_onclick(event:MouseEvent):void {
c. showAnswer();
as. showAssessment (“1,2,10”);
}
测试运行时,通过鼠标单击进行连线(绿色线)。连线完成后单击“答案”按钮,显示正确答案的连线(红色线)和评价结果。如果有错误提示,则根据提示排错、修改代码。
五、结语
在信息技术的教学环境中教学测评的发展较为滞后,有效地解决这个瓶颈问题才能充分发挥出信息技术的作用。KAEL作为一种快速构建知识测评的计算机辅助测评系统的工具,其自身不决定测评的内容和反馈形式,完全根据教育者的需求辅助构建测评应用。这些应用能够在课堂教学、网络教学、移动教学等教学环境下提供知识测评反馈,根据反馈结果进行教学方法和学习方法的调整,以促进学习者的学习。
参考文献:
[1]Lowry R. Computer Aided Self Assessment - An Effective Tool[J].Chemistry Education Research and Practice 2005,6(4):198-203.
[2]黄荣怀,刘黄玲子,李向荣.计算机辅助评价的发展趋势[J].电化教育研究,2002(5):19.
[3]何克抗,许骏.计算机辅助测评(CAA)研究新进展——技能性非客观题的自动测评[J].开放教育研究,2005(2):79.
[4]Q. He & P. Tymms.A computer-assisted test design and diagnosissystem for use by classroom teachers[J].Journal of Computer Assisted Learning 2005(11):419-429.
[5]陈华,杨鹤标,徐向英.基于OOR的基础类库的研究及其应用[J].计算机工程与设计,2004(9):74.
[6]黄荣怀.关于教育技术学领域中的若干关键技术[J].中国电化教育,2005(4):6.
[7]D J Watts,S H Strogatz.Collective dynamics of small-world networks[J].Nature,393,1998:440-442.
[8]A-L Barabasi,R Albert.Emergence of scaling in random networks[J].Science,286,1999:509-512.
[9]郭扉扉,尹文生.改进型单向贴近度主观题自动评分算法的研究[J].计算机工程与科学,2011(7):173.
(编辑:王天鹏)
5.题项类
题项类共有7个类,实现题型类答案的交互操作。fillBlank类实现填空题答案的输入;radioOption类实现单选题的选项;checkOption类实现多选题的选项;assortOption类实现分类题的分类项;assortArea类实现分类题的分类区域;connectOptionList类实现连线题的连线项分类列表;connectOption类实现连线题的连线项。
三、KAEL的关键算法
1.分类题算法
分类题至少需要一个分类区域(assortArea类实例),通过分类项(assortOption类实例)的坐标判断其所属分类,多个分类区域的重叠区域可以实现交集的功能。
假设在分类题中有n个分类项p和m个分类区域q,分类项有l(l10)个正确分类区域k,s为分值,该分类题的得分为S=
C(pn,kj)sj。其中C(pn,kj)用来判断分类项在正确的分类区域内,相等时返回值为1,否则返回值为0。C(pn,kj)的算法描述如下:
输入:分类项pn,正确分类区域kj。
输出:判断结果。
步骤1:获取pn的坐标(pxn,pyn)。
步骤2:获取kj的坐标(kxj,kxy)、宽度w和高度h。
步骤3:如果kxj
连线题至少需要两组连线项列表(connectOptionList类实例),当相邻两组连线项(connectOption类实例)列表中都有已经被选择的连线项时,在两项之间自动画出一条连接直线。连线题不仅可以实现1→l的连接功能,还是可以实现1→n的连接功能。
假设在连线题中有组连线项列表,连线项数量依次为m1、m2、m3……mn,p为连线项,q为连线项的答案,s为分值,该连线题的得分为S=
C(pj,qj)sj。其中C(pj,qj)用来判断与pj连线的连线项和qj是否相等,相等时返回值为1,否则返回值为0。C(pj,qj)的算法描述如下:
输入:连线项pj,连线项的答案qj。
输出:判断结果。
步骤1:获取连线项pj的连线项lj。
步骤2:如果lj等于qj,返回值为true,否则返回值为false。
3.问答题算法
问答题一般采用语言叙述的方式,由于每个人的答题表达方式不同,很难与标准答案完全一致,因此需要对答案进行语句相似度判断。从语句相似度算法的区别上可分为三类:第一类是基于词频统计的句子相似度计算方法;第二类是基于语义库的词语语义相似度计算方法;第三类是基于句子语法结构的相似度计算方法。[9]这三种算法各有利弊:第一类算法精度不高,实现难度低;第二类算法需要语义知识库的支持,实现难度高;第三类算法精度和实现难度居中。
KAEL采用第三类算法实现对问答题的相似度判断,首先是判断关键字(包括关键字的同义词)所在的句子,然后判断关键字所在句子与关键字所在答案句子的相似度,并根据相似度权重计算出得分。
假设在问答题中,p是输入答案,根据标点符号被拆分成p1、p2、p3……pm。q是标准答案,根据标点符号被拆分成q1、q1、q3……qm,答案中的关键字及其权重值用括号括起来。关键字的权重值为w,填写在关键字后面,当有l个关键字时,wl=1,wl取值范围是0
输入:输入答案p,标准答案分句qi。
输出:分数权重W。
步骤1:将标准答案分句中的关键字及其权重值分离出来,存储在数组k和数组w中。
步骤2:在p中搜索k[n]。如果没有搜索到返回值为0。
步骤3:如果搜索到k[n],s=0,将qi中k[n]所在句子的字符进行逐字拆分后存储在数组l[m]中。然后遍历数组l[m]在p中搜索l[t]+l[t+1],每搜索到一次s++。完成遍历后,W=W+s/m*w[n]。
四、KAEL的应用开发
1.添加题型
以连线题为例,添加两组共8个题型元件,分别作为连线题的左侧项和右侧项。将元件类型设置为影片剪辑,设置属性中的类和基类。进入元件内部,使用文本工具输入问题文字,根据需要也可以添加图形。
2.配置题型
选择题型元件所在的关键帧,在“动作”面板中编写配置代码,引入KAEL类库,将题型元件与题型类关联,配置相关属性。
import kael.assessment;
var as:assessment=new assessment();
addChild(as);
var c=new connect();
as. addQuestion(c);
var colA=new connectOptionList(c);//初始化连线项列表A
addChild(colA);
for(i=0;i<=7;i++){//初始化连线项
this[“ca”+i]. init (colA);
}
ca0.answer=4;//设置答案序号
ca1.answer=2;
ca2.answer=0;
ca3.answer=3;
ca4.answer=5;
ca5.answer=7;
ca6.answer=1;
ca7.answer=6;
var colB=new connectOptionList (c);//初始化连线项列表B
addChild(colB);
for(j=1;j<=7;j++){//初始化连线项
this[“cb”+j]. init (colB);
}
3.调用评价
添加显示评价的元件,将元件类型设置为按钮,设置元件的实例名称和显示内容,在“动作”面板中添加调用代码,“答案”按钮单击事件时显示答案和评价的代码。
showAnswer.addEventListener(MouseEvent.CLICK, showAnswer_onclick);
function showAnswer_onclick(event:MouseEvent):void {
c. showAnswer();
as. showAssessment (“1,2,10”);
}
测试运行时,通过鼠标单击进行连线(绿色线)。连线完成后单击“答案”按钮,显示正确答案的连线(红色线)和评价结果。如果有错误提示,则根据提示排错、修改代码。
五、结语
在信息技术的教学环境中教学测评的发展较为滞后,有效地解决这个瓶颈问题才能充分发挥出信息技术的作用。KAEL作为一种快速构建知识测评的计算机辅助测评系统的工具,其自身不决定测评的内容和反馈形式,完全根据教育者的需求辅助构建测评应用。这些应用能够在课堂教学、网络教学、移动教学等教学环境下提供知识测评反馈,根据反馈结果进行教学方法和学习方法的调整,以促进学习者的学习。
参考文献:
[1]Lowry R. Computer Aided Self Assessment - An Effective Tool[J].Chemistry Education Research and Practice 2005,6(4):198-203.
[2]黄荣怀,刘黄玲子,李向荣.计算机辅助评价的发展趋势[J].电化教育研究,2002(5):19.
[3]何克抗,许骏.计算机辅助测评(CAA)研究新进展——技能性非客观题的自动测评[J].开放教育研究,2005(2):79.
[4]Q. He & P. Tymms.A computer-assisted test design and diagnosissystem for use by classroom teachers[J].Journal of Computer Assisted Learning 2005(11):419-429.
[5]陈华,杨鹤标,徐向英.基于OOR的基础类库的研究及其应用[J].计算机工程与设计,2004(9):74.
[6]黄荣怀.关于教育技术学领域中的若干关键技术[J].中国电化教育,2005(4):6.
[7]D J Watts,S H Strogatz.Collective dynamics of small-world networks[J].Nature,393,1998:440-442.
[8]A-L Barabasi,R Albert.Emergence of scaling in random networks[J].Science,286,1999:509-512.
[9]郭扉扉,尹文生.改进型单向贴近度主观题自动评分算法的研究[J].计算机工程与科学,2011(7):173.
(编辑:王天鹏)
5.题项类
题项类共有7个类,实现题型类答案的交互操作。fillBlank类实现填空题答案的输入;radioOption类实现单选题的选项;checkOption类实现多选题的选项;assortOption类实现分类题的分类项;assortArea类实现分类题的分类区域;connectOptionList类实现连线题的连线项分类列表;connectOption类实现连线题的连线项。
三、KAEL的关键算法
1.分类题算法
分类题至少需要一个分类区域(assortArea类实例),通过分类项(assortOption类实例)的坐标判断其所属分类,多个分类区域的重叠区域可以实现交集的功能。
假设在分类题中有n个分类项p和m个分类区域q,分类项有l(l10)个正确分类区域k,s为分值,该分类题的得分为S=
C(pn,kj)sj。其中C(pn,kj)用来判断分类项在正确的分类区域内,相等时返回值为1,否则返回值为0。C(pn,kj)的算法描述如下:
输入:分类项pn,正确分类区域kj。
输出:判断结果。
步骤1:获取pn的坐标(pxn,pyn)。
步骤2:获取kj的坐标(kxj,kxy)、宽度w和高度h。
步骤3:如果kxj
连线题至少需要两组连线项列表(connectOptionList类实例),当相邻两组连线项(connectOption类实例)列表中都有已经被选择的连线项时,在两项之间自动画出一条连接直线。连线题不仅可以实现1→l的连接功能,还是可以实现1→n的连接功能。
假设在连线题中有组连线项列表,连线项数量依次为m1、m2、m3……mn,p为连线项,q为连线项的答案,s为分值,该连线题的得分为S=
C(pj,qj)sj。其中C(pj,qj)用来判断与pj连线的连线项和qj是否相等,相等时返回值为1,否则返回值为0。C(pj,qj)的算法描述如下:
输入:连线项pj,连线项的答案qj。
输出:判断结果。
步骤1:获取连线项pj的连线项lj。
步骤2:如果lj等于qj,返回值为true,否则返回值为false。
3.问答题算法
问答题一般采用语言叙述的方式,由于每个人的答题表达方式不同,很难与标准答案完全一致,因此需要对答案进行语句相似度判断。从语句相似度算法的区别上可分为三类:第一类是基于词频统计的句子相似度计算方法;第二类是基于语义库的词语语义相似度计算方法;第三类是基于句子语法结构的相似度计算方法。[9]这三种算法各有利弊:第一类算法精度不高,实现难度低;第二类算法需要语义知识库的支持,实现难度高;第三类算法精度和实现难度居中。
KAEL采用第三类算法实现对问答题的相似度判断,首先是判断关键字(包括关键字的同义词)所在的句子,然后判断关键字所在句子与关键字所在答案句子的相似度,并根据相似度权重计算出得分。
假设在问答题中,p是输入答案,根据标点符号被拆分成p1、p2、p3……pm。q是标准答案,根据标点符号被拆分成q1、q1、q3……qm,答案中的关键字及其权重值用括号括起来。关键字的权重值为w,填写在关键字后面,当有l个关键字时,wl=1,wl取值范围是0
输入:输入答案p,标准答案分句qi。
输出:分数权重W。
步骤1:将标准答案分句中的关键字及其权重值分离出来,存储在数组k和数组w中。
步骤2:在p中搜索k[n]。如果没有搜索到返回值为0。
步骤3:如果搜索到k[n],s=0,将qi中k[n]所在句子的字符进行逐字拆分后存储在数组l[m]中。然后遍历数组l[m]在p中搜索l[t]+l[t+1],每搜索到一次s++。完成遍历后,W=W+s/m*w[n]。
四、KAEL的应用开发
1.添加题型
以连线题为例,添加两组共8个题型元件,分别作为连线题的左侧项和右侧项。将元件类型设置为影片剪辑,设置属性中的类和基类。进入元件内部,使用文本工具输入问题文字,根据需要也可以添加图形。
2.配置题型
选择题型元件所在的关键帧,在“动作”面板中编写配置代码,引入KAEL类库,将题型元件与题型类关联,配置相关属性。
import kael.assessment;
var as:assessment=new assessment();
addChild(as);
var c=new connect();
as. addQuestion(c);
var colA=new connectOptionList(c);//初始化连线项列表A
addChild(colA);
for(i=0;i<=7;i++){//初始化连线项
this[“ca”+i]. init (colA);
}
ca0.answer=4;//设置答案序号
ca1.answer=2;
ca2.answer=0;
ca3.answer=3;
ca4.answer=5;
ca5.answer=7;
ca6.answer=1;
ca7.answer=6;
var colB=new connectOptionList (c);//初始化连线项列表B
addChild(colB);
for(j=1;j<=7;j++){//初始化连线项
this[“cb”+j]. init (colB);
}
3.调用评价
添加显示评价的元件,将元件类型设置为按钮,设置元件的实例名称和显示内容,在“动作”面板中添加调用代码,“答案”按钮单击事件时显示答案和评价的代码。
showAnswer.addEventListener(MouseEvent.CLICK, showAnswer_onclick);
function showAnswer_onclick(event:MouseEvent):void {
c. showAnswer();
as. showAssessment (“1,2,10”);
}
测试运行时,通过鼠标单击进行连线(绿色线)。连线完成后单击“答案”按钮,显示正确答案的连线(红色线)和评价结果。如果有错误提示,则根据提示排错、修改代码。
五、结语
在信息技术的教学环境中教学测评的发展较为滞后,有效地解决这个瓶颈问题才能充分发挥出信息技术的作用。KAEL作为一种快速构建知识测评的计算机辅助测评系统的工具,其自身不决定测评的内容和反馈形式,完全根据教育者的需求辅助构建测评应用。这些应用能够在课堂教学、网络教学、移动教学等教学环境下提供知识测评反馈,根据反馈结果进行教学方法和学习方法的调整,以促进学习者的学习。
参考文献:
[1]Lowry R. Computer Aided Self Assessment - An Effective Tool[J].Chemistry Education Research and Practice 2005,6(4):198-203.
[2]黄荣怀,刘黄玲子,李向荣.计算机辅助评价的发展趋势[J].电化教育研究,2002(5):19.
[3]何克抗,许骏.计算机辅助测评(CAA)研究新进展——技能性非客观题的自动测评[J].开放教育研究,2005(2):79.
[4]Q. He & P. Tymms.A computer-assisted test design and diagnosissystem for use by classroom teachers[J].Journal of Computer Assisted Learning 2005(11):419-429.
[5]陈华,杨鹤标,徐向英.基于OOR的基础类库的研究及其应用[J].计算机工程与设计,2004(9):74.
[6]黄荣怀.关于教育技术学领域中的若干关键技术[J].中国电化教育,2005(4):6.
[7]D J Watts,S H Strogatz.Collective dynamics of small-world networks[J].Nature,393,1998:440-442.
[8]A-L Barabasi,R Albert.Emergence of scaling in random networks[J].Science,286,1999:509-512.
[9]郭扉扉,尹文生.改进型单向贴近度主观题自动评分算法的研究[J].计算机工程与科学,2011(7):173.
(编辑:王天鹏)