首页 > 范文大全 > 正文

在线考试系统的设计实现及应用

开篇:润墨网以专业的文秘视角,为您筛选了一篇在线考试系统的设计实现及应用范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

内容摘要:分析了传统考试方式存在的问题,提出在线考试系统设计思想,阐述了系统的体系结构,包含的功能与组件,设计中涉及的试卷生成、自动阅卷、与其它系统之间的接口等关键问题及解决方案,并说明了在此基础上系统的实现过程。

关键词:在线考试系统 自动阅卷 试卷生成

引言

考试是检验学习效果的一种有效手段。传统考试方式是教师人工出题,教务部门印刷试卷,组织考试,然后是学生参加考试,最后考试结束后由教师手工阅卷。这种方式存在一些问题:首先,试卷由教师手工编制、批阅,教师的工作量很大且容易出错;其次,题目分散于各教师手上,难以实现教师之间的信息共享;再次,学生平时很少有机会接触到相关的习题,不利于学生巩固所学知识;最后,笔试消耗大量纸张,不利于环保。传统考试方式在今天仍然占主导地位,然而随着计算机技术的发展,其改革亦是大势所趋,在线考试系统就是一个很重要的发展方向。

在线考试系统将传统考试方式的大部分过程实现自动化,尽量减少人工干预。试卷根据题库中的内容自动生成,题库由教师平时积累,录入到系统中。学生在计算机上作答,结果提交给服务器。考试结束后,系统自动批改客观题,主观题由教师人工批改,形成最终的考试成绩。同时,将在线考试系统和教务管理系统融合在一起,直接将考试成绩提交给教务系统。

在线考试系统可采用基于客户机/服务器(Client/Server, C/S)模式,或者采用基于浏览器/服务器(Browser/Server, B/S)模式。B/S模式只需在服务器上安装相关软件,因而具有易部署、易维护的优点,客户机只需安装浏览器即可,对软硬件要求较低。本文采用B/S模式设计实现一个在线考试系统。

一.考试系统分析

完整的考试系统作为一个有机的整体,包含下面几个功能模块[1-3]:

(一)系统管理

系统管理是对系统使用者的管理。系统的使用者包含系统管理员、教务人员、教师和学生。可以执行添加、删除、编辑用户属性等操作。为了方便管理,将用户划分到不同的组下面,系统权限以组为单位划分,每个用户都应分配到一个或多个合适的组下面,用户拥有的权限就是其所在所有组的权限之和。比如可以将班级名称作为组名称来建立一个组,以后可以统一为此班级的所有学生分配相同的权限。

(二)教务管理

教务管理模块可添加删除课程信息、指定课程的考试开始时间和结束时间、指定试卷出题的教师以及各班级学生应该参加哪些课程的考试等,这部分工作应该由教务人员来完成。

(三)题库管理

题库管理模块提供题目编辑功能。教师可以在此处编辑题目信息,每个教师只能编辑自己添加的题目。题目除本身内容之外,还包括所属单元(章节)、涉及的知识点、难度及估计完成时间等辅助信息,以帮助系统自动生成试卷。题目类型包括单选题、多选题、判断题、填空题和综合题等几种。题目可以单个编辑,也可以批量上传题目,批量上传的题目要求按预定的格式编辑,存放在文本文件或word文档中,然后提交服务器处理。系统基于接口编程,因此可以很方便的扩展接收其它类型的文件。

(四)试卷管理

该模块用来生成试卷。每份试卷包含若干大题,每大题又包含若干小题,试题可由教师从题库中手工选择,也可由系统自动生成。系统提供试卷模板编辑功能,可预先编辑好试卷模板,设定试卷包含多少大题,每个大题分值,大题题型,包含多少小题,从课程的哪些单元选择多少小题,每个小题涉及的知识点、难度多少及估计完成时间等,教师可从试卷模板中选择一种,由系统自动生成试卷。

(五)考试管理

此处的考试是广义上的考试,包含正式考试,一般指期末考试,由学校统一组织;模拟考试,是教师对教学效果的阶段性检验,由各任课老师自行组织;单元练习,学生可自由选择单元习题作为练习,以此巩固平常所学知识。使用各类型的考试前,指定考试使用的试卷或者开放练习的习题。

(六)个人事务

该模块提供系统的用户应该完成的工作入口。比如对于学生,在此处列出应该参加的考试;对于教师,给出教师应该批改的试卷等。

除了以上主要功能之外,系统还提供了课程管理、查询统计、信息等模块。课程管理用于编辑各课程的单元信息,单元包含的知识点等,实现对题库的细化管理。查询统计可以查询考生成绩,并且给出考试结果的统计结果,比如优秀率、不及格率等信息。信息模块主要用来考试信息和考试注意事项等。

用户登录后,系统根据其所属组,以菜单形式显示该用户可以访问的模块。用户在使用具体功能时,系统会进一步检查其权限,以保证系统的安全性。

二.系统设计中关键问题

(一)用户密码加密

考虑到考试系统的特点,数据库中只实现用户密码的加密。加密算法采用信息-摘要算法5(Message-Digest Algorithm 5, MD5)。登录界面可选择使用HTTP协议或者HTTPS协议,用户登录时,系统将用户提交的密码加密后与保存在数据库中的加密后的用户密码作比较,从而判断用户是否合法。

(二)试卷生成

考试之前必须先生成试卷,目前常用的试卷生成算法通常有从题库中随机选题的随机算法,回溯法,遗传算法等[4-6]。本文采用随机算法,结合教师指定的试卷中各题目的难度、所属单元、知识点等属性,从题库中随机选择满足属性的题目,实践中取得了满意的效果。同一次考试一般采用同一份试卷,所有学生看到的卷面都是一样的。为了减少学生作弊的可能性,参考全国大学英语等级考试将试卷分AB卷的作法,在将试卷下发给学生前,作一些处理。具体的作法是将每大题的所有小题顺序随机打乱,对于选择题可进一步调整选项的位置,系统记录下调整后的试卷与原始试卷的对应关系。学生提交试卷后,根据此对应关系还原成对原始试卷的答案。

(三)考试实施

正式考试时,将同一个班的学生组织到一个机房,学生提前通过浏览器访问系统,考试开始之前,系统预先将试题下发到各客户机,但是直到考试时间到了,才将试题呈现在浏览器上,这样做可以避免考试开始时同时下发试卷所造成的服务器负担及网络拥塞。因为时间是考试的重要因素,这里不使用客户机的系统时间,而是通过服务器来同步各客户机的考试时间。考试过程中,为了避免学生因为某些原因(比如误操作或系统掉电)丢失考试结果,设定系统每隔3分钟自动保存考试结果,保存在后台自动进行,学生不会察觉到这个操作,因而不会受干扰。重新进入考试时,系统会作自动判断,取出保存的部分考试结果。一旦考试结束时间到,系统禁止学生答题并自动提交最终考试结果。

(四)自动阅卷

试卷中的客观题可以由系统自动阅卷。主观题的自动阅卷涉及到自然语言理解等课题,目前实现起来较困难。一些研究者对此作了一些工作,比如基于语句结构及语义相似度计算主观题评分算法[7],填空题的自动评分[8]等等。本文综合考虑之后决定,对于综合类的主观题,采用人工阅卷方式。同时经观察发现,许多填空题的答案比较简短且单一,可通过简单的串比较或模式匹配来判断其正确性,因此可在很大程度上实现填空题的自动阅卷。比如考虑下面的例子:

(1)C语言提供了 种循环语句。此题答案为3,没有其它可能正确的回答了,可用学生回答结果与正确答案作串比较判断其正确性。

(2)型循环的循环体至少执行一次,型循环的循环体可能一次也不执行。此题有两空,且回答顺序不能颠倒,可将学生的2个回答连接成一个串,跟正确答案“直到当”作一次串比较来判断其正确性。

(3)C语言提供了3种控制结构,分别是 、 、 。此题有三空,答案分别是顺序结构、选择结构、循环结构,回答顺序任意。如果学生回答时不加“结构”二字,比如回答成“顺序、选择、循环”也是对的。可将学生的回答连接成一个串,与依据答案生成的正则表达式“顺序(?:结构)?|选择(?:结构)?|循环(?:结构)?”作模式匹配,如果匹配结果为3,且3个回答各不相同则认为回答正确。

为了实现填空题的自动阅卷,教师编辑填空题时需要提供更多的辅助信息,指定答案的类型,比如“唯一答案”、“顺序固定”、“顺序可变”、“多种答案”等等,教师可指定系统生成正则表达式,也可自己输入正则表达式。教师只需简单学习即可掌握此类正则表达式的编写。

根据实际经验,大部分填空题可实现自动阅卷。系统也提供了选项,允许教师手工批阅填空题。

(五)与教务系统的接口

教务管理系统已运行了几年,为了实现信息的共享,也为了整合教学相关系统,考试系统与教务系统的接口必须要仔细考虑好。本系统基于接口编写,应用敏捷方法开发,为扩展打下了良好的基础[9-14]。与教务系统共享的信息包括学生、教师及教务管理人员资料,课程相关信息、班级信息等。正式考试的成绩可直接提交给教务管理系统。

图1考试系统与教务系统的接口

考试系统通过教务系统提供的API访问教务系统的数据。为了隔离教务系统的变化,定义了教务系统访问接口IEduAdmin。IEduAdmin定义了考试系统访问教务系统的所有操作,组件ElecInfoEduAdmin实现了此接口,且ElecInfoEduAdmin的实现依赖于教务系统提供的API。考试系统仅仅依赖于接口IEduAdmin,这样就解除了对教务系统的依赖。

三.系统实现

系统使用B/S模式,采用C#作为服务器端开发语言,基于.net framework 3.5。Web服务器使用IIS7,数据库使用Sql server 2005,服务器安装的操作系统是windows 2008 server R2企业版。

系统采用了多层结构:数据访问层、模型层、业务逻辑层和用户界面层,如图2所示,每层都实现为一个或多个组件(.net平台下的程序集,一般为DLL文件)。模型层定义了考试系统中的所有核心组成对象,包括用户、题目、试卷、课程等等。其它的层均依赖于此层。

据访问层隔离业务逻辑与持久存储之间的耦合,以接口形式提供访问持久存储的能力。使用接口不仅解除了系统各模块间的耦合,也大大提高了系统的可测试性。本系统采用数据库作为持久存储体,使用LINQ(语言集成查询,Language INtegrated Query)编写访问数据库的代码。使用LINQ不仅简化了代码编写,也避免了SQL注入攻击。

图2考试系统各模块及依赖关系

业务逻辑层包含了考试系统中所有的核心处理逻辑,实现在多个组件中,以事务方式完成系统中的业务处理逻辑,比如添加试题、修改试题、删除试题等等。

用户界面层由页面组成。页面是用户和系统交互的接口,在许多用户眼中,界面就是软件。因此,考试系统的页面设计是用户使用起来尽量简单,并且有恰当的提示告诉用户如何操作。用户界面通常是不稳定且易变的,因此系统使用了模型-视图-表示器(Model-View-Presenter,MVP)模式将系统的业务行为和界面分离,这种策略把界面的易变性和业务规则隔离开来,改变界面不会影响到业务逻辑。

页面中使用了异步JavaScript及XML(Asynchronous JavaScript And XML,Ajax )技术。采用Ajax技术极大地减少了网络带宽的压力,也使用户得到了更快的响应速度。比如考试时在后台定时保存考生答案,服务器和客户机之间的时间同步等都是通过Ajax完成的。为了简化Javascript的使用,系统Javascript相关代码均使用了JQuery库。

四.应用

系统设计完成后,首先将其应用于武汉职业技术学院计算机学院C语言考试,收集学生及教师关于使用系统的反馈,进一步改进系统的操作方式及功能模块,为今后在其它科目使用在线考试系统提供参考。仅将考试系统应用于C语言考试,可以避免一开始就推广使用可能出现的潜在的问题。

系统部署在计算机学院局域网,结构如图3所示。考试时,学生以班级为单位在同一个机房考试。每班级学生人数一般不超过48人,每机房配置有48台PC机。服务器部署在机房管理办公室,考虑到试用阶段考试规模有限,将Web服务器和数据库服务器部署在同一台硬件服务器上,此硬件服务器为一台IBM专用服务器。如果考试系统在全院推广开来使用,由于期末考试时间集中,参加考试的科目及班级数量较大,一台服务器负载可能太重,拟采用Web服务器集群技术,集群服务器数量取决于实际应用的情况。为了减少资金投入,可以配置高端的普通PC机作为服务器使用,就能够组成高可伸缩性、高可靠性及透明性的Web服务集群,完全可以承担考试系统任务。另一方面,可考虑采用消息队列(Microsoft Message Queue, MSMQ)技术解决考试结束时,学生同时提交答案时造成的网络拥塞及服务器压力。

图3考试系统部署图

通过2011-2012学年第2学期的C语言期末考试应用在线考试系统,无论教师还是学生对于在线考试这种方式反应都是非常好的。对于教师而言,除了前期建立题库的工作量之外,在随后的应用中,极大地减轻了工作量。

五.结论

目前在线考试系统基本上将传统考试的大部分工作自动化,下一步的主要研究工作是实现综合主观题的自动阅卷。相比于传统考试方式,在线考试有多方面的优势,随着信息化技术的进一步发展,必将逐步取代传统考试方式。

参考文献:

[1]李伟为.基于2.0的在线考试系统的设计与实现[J].计算机应用与软件,2011,28(9):163-166

[2]陶夏,陈洪亮.基于ASP的电路在线考试系统的设计和实现[J].实验室研究与探索,2008,27(7): 83-86

[3]韩萌,王移芝,王嘉树.基于Web的通用在线考试系统的设计与实现[J].计算机工程与设计,2008,29(21):5608-5610

[4]吴英.智能在线考试系统中遗传算法组卷的设计和实现[J].制造业自动化,2011,33(2):215-217

[5]高兴媛,古辉.在线考试系统自动组卷技术的研究与实现[J].计算机与现代化,2011(3):156-158

[6]陈晓东,王宏宇.一种基于改进遗传算法的组卷算法[J].哈尔滨工业大学学报, 2005,37(9):1174-1176, 1248

[7]贾电如,李阳明.基于语句结构及语义相似度计算主观题评分算法的研究[J].微型机与应用,2009,28(5)

[8]梁振球.填空题自动评分系统的研究与实现[J].计算机系统应用,2007(2):109-111

[9]Matthew 3.5高级程序设计[M].博思工作室,译.北京:人民邮电出版社,2008

[10]Martin Fowler.Patterns of Enterprise Application Architecture[M].北京:人民邮电出版社,2009

[11]Robert C Martin,Micah Martin.敏捷软件开发-原则、模式与实践(C#版)[M].北京:人民邮电出版社,2008

[12]Dino Esposito,Andrea Saltarel

Architecting Applications for the Enterprise[M].北京:人民邮电出版社,2009

[13]温昱.一线架构师实践指南[M]. 北京:电子工业出版社,2009

[14]Peter Eeles, Peter Cripps.架构实战:软件架构设计的过程[M].北京:机械工业出版社, 2010

王念桥,男,武汉职业技术学院讲师。