2024年3月16日发(作者:)

在线考试系统的实现与创新

作者:朱曼

来源:《职业·下旬刊》 2011年第8期

文/朱 旻

随着计算机技术、数据库技术和网络技术的飞速发展,教育信息化水平对培养面向信息化

社会创新人才起到了至关重要的作用。计算机辅助教学(CAI)已经渗透到教学的各个环节,其

对教学所起到的积极作用,备受各类大中院校的重视。考试作为教学中的重要一环,如何公平、

公正、客观地评价学员的实际学习情况,指导学员的后续学习,也是CAI研究的一个方向。相

对于传统的纸面考试,基于网络的计算机考试在出卷、考试、评分、统计等多个必要步骤上都

有自己特有的优势,可以显著减轻教师的工作负担,提高效率,提高考试灵活性和公正度。由

此可见,基于网络的计算机考试一定会成为未来考试的发展方向。

现阶段基于网络的应用软件架构主要有C/S(客户端/服务端)和B/S(浏览器/服务端)两

种类型。C/S架构尽管功能强大,但维护和管理成本太高。以笔者接触到的试点高校网络教育

部分公共基础课全国统一考试为例,每次考试所需各级服务端和客户端程序的安装和调试工作,

就要花费超过一周的时间。随着浏览器技术的发展和普及,B/S架构的应用范围不断扩大,基

于此架构开发的在线考试系统,体现出了安装部署简单、功能扩展方便的优势。此外,结合

AJAX等客户端交互技术,B/S架构也在一定程度上弥补了相对于C/S架构来说在性能和功能上

的不足,成为未来网络考试系统的主流架构。

目前,基于B/S架构的在线考试系统的功能主要集中在对传统考试题型,如单选题、多选

题、是非题、填空题、文字题的随机抽题和自动评卷上,功能上还远没有达到理想的效果,稳

定性和数据安全上还有很大的潜力。基于以上考虑,笔者近期开发了一个在线考试系统,主要

在系统功能设计与实现上力求有所创新,其大致包含以下三个方面的目标:第一,考题智能分

级、满足多种考试需求的随机抽题、各种题型的快速导入等一些考试系统中使用到的算法的实

现或改进;第二,更好地解决基于B/S架构的考试系统的稳定性和数据安全问题,更好地实现

实时保存和自动恢复,解决B/S架构中会话易丢失,浏览器易崩溃等稳定性问题;第三,实现

Office办公自动化考试的完全自动随机出题,支持办公自动化考试的随机组题,自动评卷,把

对操作题的支持引进到B/S架构在线考试系统中来,扩大考试系统的应用范围。该系统采用微

软Microsoft Visual Studio 2008作为开发工具,使用C#语言进行开发,数据库使用

Microsoft SQL Server 2000Enterprise Edition。下面笔者对其中的一些主要设计,做必要的

文字介绍。

一、基于错误率的难度分级机制

这是笔者结合自身的实际使用经验,设计出的考题分级机制。在笔者所设计的系统中,题

库维护着一个错误率计数,每道试题在考生答题后将会自动更新错误率,初始值为1,正确

+0.5,错误-0.5,部分正确+0.25(针对多选)。当积累一定考试记录后,可通过该计数值获得

更加准确的分级数据依据;然后,配合系统中的难度分级百分比参数(如“高、中、低”对应

错误率的分布百分比,“1,0.8,0.5”意味着错误率80%-100%位置为难度高;50%-79%为难度

中;低于50%为难度低),很容易得到每道试题的难度级别。在系统中,结合以上得到的难度

级别,教师可以在创建试卷时选择考试策略,如高(提高)、中(强化)、低(巩固),有效

提高考试效果,做到考试有的放矢。

二、快速导入试题功能

在该系统中,有一个很有特色的快速导入试题功能,主要是针对题量偏大的选择题、是非

题等题型而设计的。因为具备题量充分的试题库,是一个成功考试系统的必要前提。笔者在测

试该功能时,曾很轻松地把网上搜索到的数千道选择题在半小时之内成功导入了试题库,没有

出现试题错误匹配、缺项、乱序等问题,取得了非常好的效果。其原理是根据试题输入者在导

入前所做的简单标注和相关正则信息让程序批量处理待导入试题,自动区别出题干、选项和答

案,并分别存入数据库。在这一过程中,需要解决的问题很多。例如,遇到选项次序混乱时,

能够重新对选项进行排序;遇到残缺试题时,能够及时终止或跳过,遇到重复试题时也必须丢

弃;遇到试题中已经包含答案时,需要找到并把答案提取出来,最后将题中答案清空以便导入

等。

三、自动定时保存试卷功能

这个功能对于B/S架构考试系统意义重大。相对于C/S架构来说,B/S架构在保障程序稳

定性和数据安全性方面,要困难许多。此外,让正在紧张考试的考生手动点击保存已经完成的

数据是不合理的,通常考生很容易忽略这个环节,但当遭遇页面甚至浏览器意外崩溃时,没有

保存数据就意味着前功尽弃。过去这种自动保存的要求只能在C/S架构上实现,但Ajax等客户

端技术的出现,在B/S架构上也可以很方便地设计出具有自动定时保存试卷功能的在线考试系

统。笔者在设计中采用了Ajax+序列化的技术,将考试数据手动保存到数据库的同时,又提供

了一个可以设定时间间隔的自动定时保存到远端数据文件的途径,实现了在数据库崩溃的情况

下也能正常读取数据的双轨机制,提高了系统的数据安全性。MicrosoftVisual Studio 2008

加入了 Ajax的支持,通过添加Timer、ScriptManager、UpdatePanel等几个控件,就

能够很方便地实现定时无刷新的页面操作。把试卷中各种题型的答题信息封装在名为

ExamResult的类中,保存即实现对ExamResult类对象的序列化操作,而还原即实现把存储数

据反序列化到ExamResult类对象的操作。

四、支持办公自动化考试

以往的B/S架构考试系统,大多仅仅支持单选题、多选题、是非题、填空题、文字题等传

统题型的随机抽题和自动评卷。笔者设计的支持办公自动化(以微软office系列为例)考试随

机抽题和自动评卷的思路和方法,扩展了B/S架构考试系统的应用范围。

首先,开发需引入Office 2003 PIA(主Interop程序集),根据由Office 2003公开的

接口和类来以托管代码进行编程做二次开发。笔者所设计的考试流程是:输入考试素材(原始

文件、图片文件、声音文件等);系统根据考试项目抽取素材中的待考核对象(原始文件);

随机抽取系统内设的知识点(可手工设定抽取范围);生成一个总体的操作要求序列;根据总

体的操作要求序列生成规定数量的具体的试题要求序列和相对应的试题要求文字描述;考生登

录后随机抽取某套试题并进行考试,完成后上传;用试题要求序列检测学员上传的考卷并将检

测结果返回。目前,该系统已经能够很好地处理Word2003、Excel2003的在线考试,

PowerPoint2003、Access2003还在进一步开发和完善中。

五、考试成绩分析

考试成绩分析是提高考试效果的一个重要环节,对教师的后续教学有着重要的意义。笔者

为此设计了多种考试成绩分析项目,包括饼图分析、标准分分布图分析、标准分表、题型平均

答对率分析等。通过这些分析,弥补了一般考试系统考后只有成绩的不足,得到了远比成绩更

加重要的一些分析数据,指导了教师后续的工作。

(作者单位:华东师范大学、上海市徐汇区业余大学)