移动端在线考试系统设计与实现
2019-05-24陈尚书文斌
陈尚书 文斌
摘 要:高速移动通信网络的迅速发展为在线考试系统移动化提供了条件。基于B/S架构,将变化的遗传算法运用于在线考试系统设计;采用PHP开发,实现移动端用户管理、题目管理、试卷管理,以及移动端在线考试自动组卷、在线考试、试卷批改等功能;引入Bootstrap框架,通过功能的化繁与适配,实现同一代码下移动端在线考试系统功能。
关键词:移动考试系统;遗传算法;自适应;PHP;Bootstrap
DOI:10. 11907/rjdk. 182297
中图分类号:TP319 文献标识码:A 文章编号:1672-7800(2019)005-0117-05
Abstract: The rapid development of high-speed mobile communication network accelerates the mobility of online examination system. This study is mainly based on the B/S architecture, applying the changed genetic algorithm to the design of online examination system. It adopts PHP development to realize the management of mobile end users, title management and examination paper management, as well as the automatic grouping, online examination and examination paper marking in the online examination of mobile end. The Bootstrap framework is introduced to realize the online examination function of mobile terminal online examination system under the same code through the transformation and adaptation of functions.
Key Words: online examination system in mobile terminal; genetic algorithm; self-adaption; PHP; Bootstrap
0 引言
隨着移动通信网络的飞速发展及智能手机的普及,在线考试范围逐步扩大,非普通教育的在线测试考试系统出现在日常教学中。网络在线考试以其跨越传统课堂时间和空间、方便、快捷的优势日益为大家所接受[1]。
美国是最早将计算机技术运用到教育中的国家,大家熟知的托福、思科认证、微软认证等考试均采用在线考试系统,1993年研究生入学考试(GRE)亦采用在线考试技术[2]。我国随后跟进,开始了相关算法与技术的研究。随着国内网络技术的快速普及,各大考试系统平台逐步投入研发并上线。其中中央电大考试平台是远程教育的典范,还有大家熟知的全国计算机等级考试(NCRE)等职业资格认证考试等,商业领域的在线考试也逐步推广[3]。众多高校利用校园网构建了在线考试系统平台,但其使用仍处于研究和探索阶段[4]。
在线考试系统主要采用两种体系结构:①C/S(客户端/服务器)体系结构,适合在局域网下进行在线考试,需要特定的机房与电脑才能登陆考试系统,如计算机等级考试、职业技能考试以及行业考试等比较正式的考试;②B/S(浏览器/服务器)体系结构考试系统。是在Web 环境下的在线考试系统,考生只需在连接到互联网的计算机上登录即可进行答题测试[5],如一些学校、培训机构教学管理系统中的考试模块,但它们对移动设备均不友好。当前较为前沿的支持移动端在考试系统有考试酷[6]、云测库[7]、考试云[8]等,它们主要采用成熟的在线表单及数据统计技术生成试卷,有一定的行业测试题库,但这些软件更多偏向在线测试及练习。
一般情况下考试系统题库需求较小,按照一定的算法可以抽出满足一定约束条件的试卷。但有些科目考试范围较广、题库需求过大,这时系统可能会进入无限循环进而导致系统瘫痪,最终无法成功抽卷。本研究基于B/S架构,采用PHP开发,将遗传算法理论运用于在线考试系统的设计与制作,通过设计试题分类调用、同时检索,实现了便捷快速的在线自动组卷、在线考试、试卷批改等功能;引入Bootstrap框架,通过功能的化繁与适配,实现同一代码下的移动端在线考试系统功能。
1 技术概述
1.1 系统运行环境
本系统采用phpStudy集成开发而成。phpStudy是一个免费开源的集Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer的环境套件包,可简单快捷地在Windows环境下安装,并可在可视化窗口中进行简单设置,附带的phpMyAdmin系统能便捷管理MySQL数据库[9]。
PHP(Hypertext Preprocessor)是一种运行在服务器上的脚本语言,是1994年Rasmus Lerdorf[10]通过对C、Java、Perl这3种语言结合与改进后创建的一种新的面向对象的编程语言,主要用于Web开发。PHP可将请求发送到Apache服务器,然后在Apache服务器解释执行之后将HTML代码返回到浏览器,它也可嵌入到HTML代码中,控制HTML的输出及动态变化。PHP的函数健全,包括文本处理、图像处理、进程控制、数据库管理、压缩归档等功能模块。
MySQL是目前使用最广泛的开源数据库,也是Web应用方面最好的RDBMS(Relational Database Management System,关系型数据库管理系统)之一[11]。MySQL可使用标准的SQL语句添加、删除及修改数据库中的内容。
1.2 遗传算法
遗传算法(Genetic Algorithm, GA)是一种模拟生物在自然环境中遗传和进化过程中形成的一种自适应的全局化概率搜索求解算法,最早由美国Michigan大学的J·Holland[12]教授于1975年开始系统研究。该算法避开问题求解过程中复杂的模式转换,不考虑遗传过程中的细节问题,通过创建初始种群的复制、交叉以及变异操作解决问题,所以在多条件最优化求解中应用很多,如人工智能、数据挖掘等。
遗传算法遵循达尔文生物进化论,通过优胜劣汰及变异方式求出最优解,核心内容由编码、初始群体设定、适应度函数设计、遗传操作设计及控制参数设定5个基本要素组成[13]。遺传算法首先要创建并初始化一个群体,然后通过算法对种群中的染色体进行评价并计算它们的适应度值,从而使适应度更好(即数值更低)的染色体被选中的概率更大。随后对选取的染色体进行交叉杂交,创建新的个体,如此循环直到所规定的迭代数并输出符合要求的结果,如图1所示。
2 考试系统总体设计
移动端考试系统采用Web开发中常用的三层结构,即表示层(USL)、业务逻辑层(BLL)、数据访问层(DAL),如图2所示。用户通过网页操作向服务器发送Request请求,待服务器接收到GET或POST请求后对数据执行逻辑操作。服务器可向数据库发送一次或多次SQL请求,数据库将查询结果返回给服务器,然后服务器通过HTTP响应将数据推送到用户所使用的浏览器中显示。
2.1 系统功能框架
通过对考试系统功能需求分析,得到如图3所示的功能结构。系统包含用户管理模块、基于遗传算法的自动组卷模块、查看试卷模块、批改试卷模块、试题模块、考试模块、成绩查询模块。
2.2 数据库设计
数据库(Database)是整个软件应用的根基,是储存和管理数据的仓库,虽然表现为虚拟状态,但对实际操作具有很大影响。良好的数据库设计是计算机系统有效运行的关键要素,对系统的功能和扩展性起着决定性作用[14]。考试的所有数据,如试卷信息、试题信息、答案、成绩、学生信息等等,都需要存储在数据库中。同时,还需要在数据库中执行关系数据库SQL(structured query language)语句实现查询功能[15]。
(1)数据库表设计。数据库表是一系列二维数组的集合,用来代表和储存数据对象之间的关系。它由纵向的列和横向的行组成,数据库表的设计是实现在线考试系统十分重要的部分,表的设计直接影响系统的效率、功能和扩展性[16],一个好的数据库表设计能极大减小后期维护难度。本系统建立用户表(user)、课程表(course)、试题类型表(type)、试题表(item)、试卷表(paper)、试卷题目表(paper_item)、成绩表(score)、成绩详情表(score_detail)等8个数据库表,尤其在试题表(item)列名中设计了diffculty(难度)、accuracy(正确率)等参数,增强了系统的实用性。具体试题表(item)及字段见表1。
(2)数据库关系设计。为满足在线考试组卷、内容及查询的关键词内外部匹配,需要对相关数据库表进行数据库关系设计。
试题表(item)中创建了3个外键记录试题全部信息,其数据库关系为:课程号(courseid)对应课程表中的课程号(courseid),添加者(teacherid)对应用户表中的用户编号(userid),试题类型(typeid)对应试题类型表中的试题类型(typeid)。
试卷表(paper)中创建了两个外键记录试卷的全部信息:课程号(courseid)对应课程表中的课程号(courseid),添加者(teacherid)对应用户表中的用户编号(userid)。
成绩表(score)中创建了两个外键记录每个考生全部试卷的得分,分别是试卷编号(paperid)对应试卷表中的试卷编号(paperid),用户编号(userid)对应用户表中的用户编号(userid)。
试卷试题表(paper_item)中创建了两个外键记录每张试卷的全部试题,试卷编号(paperid)对应试卷表中的试卷编号(paperid),试题编号(subjectid)对应试题表中的试题编号(subjectid)。
成绩详细表(score_detail)中创建了两个外键记录每张考生做过的试卷试题,成绩编号(scoreid)对应成绩表中的编号(scoreid),试题编号(subjectid)对应试题表中的试题编号(subjectid)。
2.3 遗传算法自动组卷设计
遗传算法将每个可能的解看作群体(所有可能解的集合)中的一个个体,并将每个个体编码成字符串的形式,根据预定的目标函数对每个个体进行评价后给出一个适应度值,其优良特性使其在科研领域应用广泛[17]。但传统的遗传算法存在一些问题,如易形成末成熟收敛、搜索后期效率较低等[18]。本系统自动组卷算法采用一种改进遗传算法,在算法选择运算上采用精英策略,确保适应度高的个体获得较低的交叉概率[19]。传统的遗传算法组卷系统通常将试卷看作一个整体,设计比较复杂,导致组卷时间长。本系统采用试卷分类调用同时检索的遗传算法组卷模式,即针对不同题型同时执行遗传算法的组卷模式,提升了组卷效率和准确性。
(1)数学模型设计。每套试题都有不同的目的要求,有的是巩固所学知识,有的是查找掌握知识缺漏,有的是拔高知识水平等等,每次组卷的指标会有所不同。因此,在组卷之前应先建立智能组卷控制指标[20]。
(3)组卷步骤。分为3步:①初始化种群。收到用户指定的知识点、难度、正确率等参数后,系统会把符合条件的题目分类抽取并将全部试题放入list矩阵中。随后根据设定的题目数量,从list矩阵中随机抽取相应数目的试题,将题目编号放入select中,并计算每道试题的适应度存放在数组f中;②变异。选择适应度值最大(适应度最差)的题目,在矩阵list中随机抽取一题代替它。如果新抽取的题目适应度比原来的适应度值大,则继续随机抽取试题。若连续4次不能找到合适的试题则退出;③遗传。在变异过程中会自动将适应度值小(适应度更好)的题目遗传至下一代,重复30次变异遗传步骤后输出试题结果。
2.4 移动设备适配
(1)Bootstrap框架。Bootstrap是Twitter公司一款开源的前端框架,具有良好的跨浏览器兼容性。Bootstrap预设了多种常用的样式集以及多种JavaScript 插件,对移动设备拥有一定的友好性[23]。Bootstrap拥有较为全面的网格系统,通过媒体查询(@Media)方式认知屏幕或浏览器的宽度,并由此改变长、宽的样式布局,还可运用较为方便的方式在小屏幕中将非必要功能隐藏,合并多个模块以适应不同大小屏幕上的更优布局与用户操作习惯。
(2)功能化繁与适配。让系统页面适应移动设备的使用,最重要的一点就是简洁明了,将最复杂的功能用最简单而又易懂的页面展示出来并非易事。考试系统管理功能富集,每个页面需要显示多种信息,包括支持富文本编辑,实现查看、修改、调整参数等功能,但受屏幕尺寸限制的移动设备页面必须化繁为简,实现路径有两种:①隐去非必要信息,删除不必要的信息,如在试题页面中,有编号、题型、题目、答案、课程、章节、分值、知识点、抽题次数、正确率、难度、出题教师、操作这13种信息需要展示,而在移动设备上难以全面展示,可将诸如编号、答案、出题教师等非必要信息隐去;②归类显示。将题目信息中题型、课程作为归类条件归类显示,从而减少页面信息。
2.5 非功能性需求设计
考虑到用户的信息安全性,本系统对所有用户密码均采用MD5算法进行数据加密,有效避免了用户在登陆过程中被非法分子盗取账户及密码的风险。
3 考试系统功能实现
3.1 用户管理
本考试系统用户管理功能,包括用户注册及登陆、管理员对用户的管理等等。系统有学生、教师、管理员3种用户,不同用户的权限不同,系统会自动判断用户类型并登陆至相应的界面。
为保证每个用户的唯一性,防止相同用户名情形出现,本系统采用AJAX方法与后台交互,实时判断用户名是否与数据库中已存在的数据重合。
考试系统中,管理员还具备核对教师账号、冻结和解冻账号功能。核对后的教师账号才能登陆,冻结的账号则被封锁,不能登陆。
学生进入系统后,可在导航栏中进入考试界面,选择考试试卷并参与测试。测试设计有时间限制,在测试中以倒计时方式显示,考生若中途退出考试则成绩为空。考试结束时,系统将强制切换页面并结束本次测试。测试者可以使用手机或电脑通过浏览器登陆,方便进行随堂测试。考试界面如图4所示。
3.2 考试计时
考试倒计时使用JavaScript进行控制。先从数据库中读取考试时间输出到页面,再使用DOM读取页面中的时间,并按秒刷新显示行进时间,若时间为0则强制提交试卷。
3.3 试题管理
考試系统需要不断扩充新题目完善题库,保持测试效度,因此试题增添和修改是必不可少的功能。教师和管理员可以进入试题管理界面查看考题并修改考题,或者直接新增考题。新增试题需要先选择好课程、题型、分数、难度、章节、知识点、正确率等参数,再填入试题详细内容及答案即可提交。系统会根据登陆信息自动加入出题者信息,并随表单一并提交。
3.4 试卷管理
本系统试卷管理包括自动组卷、手动组卷两种形式。自动组卷需3步完成:①设置课程、试题数量、总分等信息;②设置知识点、难度、正确率等多项指标与权值,如图5所示;③系统将自动组成试卷并预览部分内容,填入试卷标题与考试时间即可提交生成试卷。
手动组卷并不复杂,教师可根据自身特定需求添加拟测试题目组成试卷,如图6所示。
本系统自动组卷与手动组卷可结合使用,比如某类题型可由教师手动出卷,然后补充到自动组卷中,这时两种方式可自由组合。
由于系统不能准确判断填空题及主观题的对错,所以需要教师进行在线批改,给出最终得分。教师可浏览学生提交的试卷列表,看到学生参与的考试、当前得分、是否已批改过等信息,然后选择试卷进行批改。教师可根据当前学生的答题情况修改相应得分,提交并得出最后成绩。
4 结语
随着信息技术和移动互联网的迅猛发展,共享优质在线教育资源逐渐普及,科学、便捷、有效的在线考试系统需求越来越大。本系统通过改进遗传算法自适应函数设计编写的自动组卷算法,大大提高了组卷效率和系统操作效率;采用B/S架构及自适应网页实现手机在线考试系统功能;综合运用PHP、MySQL及网页数据交互、数据库处理等知识与技术,并加入AJAX异步处理、Bootstrap架构,提升移动端在线考试系统的安全性和易用性。
使用中深入研究发现,移动设备在线考试系统功能模块如试卷修改功能、在线考试时主观题的答题编辑器功能等还有欠缺,需进一步完善。
参考文献:
[1] YANG T, RONALD M C, YANG B, et al. Three-dimensional stability of landslides based on local safety factor[J]. Journal of Mountain Science,2016,13(9):1515-1526.
[2] 六维论文网. 在线考试系统国内外研究水平与现状发展趋势[EB/OL]. [2017-05-06]. http://www.lwfree.cn/yanjiu/20170506/6415.html.
[3] 百度文库.在线考试系统设计方案[EB/OL]. [2018-07-01]. https://wenku.baidu.com/view/4f7089b789eb172ded63b7ce.html?re=view1
[4] 高欣,张建莉,刘环,等. 移动终端在线考试系统的设计与实现[J]. 软件工程,2017,20(2):34-37.
[5] 朱杰. 在线考试系统的发展现状与趋势[J]. 无线互联科技,2014(4):76-77.
[6] 考试酷[EB/OL]. https://www.examcoo.com/.
[7] 云测库[EB/OL]. http://www.yunceku.com/.
[8] 考试云[EB/OL]. http://www.kaoshiyun.com.cn/.
[9] 邹国强. phpStudy网站搭建工具在电子数据取证工作中的应用[J]. 广东公安科技,2017,130(4):13-14.
[10] 菜鸟教程. PHP教程[EB/OL]. [2014-04-21]. http://www.runoob.com/php/php-tutorial.htmlW3Cschool.
[11] 黄缙华. MySQL入门很简单[M]. 北京:清华大学出版社,2011.
[12] 陈国良,王煦法,庄镇泉,等. 遗传算法及其其运用[M]. 北京:人民邮电出版社,1996.
[13] 拓守恒. 基于遗传算法智能组卷的J2EE考试系统的设计与实现[J]. 西华大学学报,自然科学版,2010,29(5):31-37.
[14] 王璐,计算机软件数据库的设计原则与方式[J]. 电子技术与软件工程,2017(4):175-176.
[15] 林子雨,杨冬青,王腾蛟,等. 基于关系数据库的关键词查询[J]. 软件学报,2010,21(10):2454-2475.
[16] 赵宣容. 计算机软件数据库设计的重要性以及原则探讨[J]. 电子技术与软件工程,2015(17):209-210.
[17] 严峻. 一种改进的基于成熟前收敛判断的自适应遗传算法[J]. 南京邮电学院学报:自然科学版,1999,19(1):35-38.
[18] 田涛. 在线考试系统设计与实现[D]. 成都:电子科技大学,2013.
[19] 张京杰,姜丽芬,花季伟,等. 改进遗传算法在供热系统中的应用[J]. 天津师范大学学报:自然科学版,2018,38(1):64-69.
[20] 李紫蔓. 基于改进遗传算法的在线考试智能组卷系统[D]. 郑州:郑州大学,2013.
[21] 刘英. 遗传算法中適应度函数的研究[J]. 兰州工业高等专科学校学报,2006,13(9):1-4.
[22] 张思才,张方晓. 一种遗传算法适应度函数的改进方法[J]. 计算机应用与软件,2006,23(2):108-110.
[23] 李胜良,李隐峰,曹诗翠. 基于PHP框架的会议论文投稿系统设计[J]. 电子科技,2014,27(1):131-134.
(责任编辑:杜能钢)