在线考试系统防作弊策略研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在线考试系统防作弊策略研究
摘要:分析了利用在线考试系统实施考试的过程中可能的作弊方式及其特点,针对各种作弊方式,提出了两种防作弊策略:①自动组卷策略;②将自主开发的具有防作弊功能的ActiveX控件嵌入在线考试系统。两种策略的提出,一方面可减少考生作弊的可能性,另一方面可增强在线考试系统的公平性。
关键词:在线考试系统;防作弊策略;自动组卷;Active X控件0引言
随着互联网技术与现代教育测评技术的不断发展,传统考试模式潜在的弊端越来越突出。同时,在线考试系统成为一个新的发展方向,它减少了传统考试工作量,提高了工作效率,节约了成本[1]。在线考试系统带来便利的同时,传统考试模式中的一些负面因素也被迁移到了在线考试中,考试过程的不安全性就是其中之一。
目前,已存在的考试系统安全性更加侧重于系统本身的安全,如访问控制模块的设计、系统的安全风险防范和数据库加密策略等。如基于角色的访问控制模块设计、防范ASP、SQL和操作系统漏洞的安全风险、加密数据库关键信息等,一般可以通过及时更新安全补丁,进行安全设置等措施降低此类风险[2]。为了确保考试的公平与公正性,在线考试系统的安全研究需要侧重于考试过程中的防作弊策略,这正是本文要研究的内容。
1防作弊策略现状分析
在线考试过程中,要有效防止考生的作弊行为,需要考虑以下几个方面的问题:如何防止邻近考生之间互相抄袭、如何防止考生利用网络、工具软件或可移动存储设备等进行作弊[3]。
对于邻近考生之间抄袭的作弊方式,通常的防范措施是加强监考力度。即便如此,某些考生还是会趁机偷看他人的答案,并且这种做法会增加考试成本,使考试无法达到理想的效果。
针对网络作弊的问题,一些在线考试系统使用Socket编程技术实现监控代理的功能,通过分析数据包,判断该数据包的源地址、目的地址及数据包的内容。它根据事先设定的包过滤规则,一旦发现非法数据包,则切断非法链接,并向连接方发出警告信息,或者隔离该主机以屏蔽其非法访问[4]。这种做法虽然能起到作用,但非常被动,而且只有用户实施了系统禁止的网络连接操作后,才能被监控代理识别并拦截。若有某些恶意用户远程更改系统已设定的包过滤规则、扰乱监控代理的实际功能,将会使考试过程陷入混乱。鉴于上述的因素可知,利用监控代理来防范考试过程中的网络作弊在实际应用中存在漏洞。
针对上述现状,可以从以下两个角度考虑在线考试系统的防作弊策略。
(1)可以考虑采用自动组卷的方式生成试卷,即在保证每个考生拥有相同难度、题型、题量的试卷的情况下,获得不同的题目内容,并且每个考生的试卷是在考试开始后自动生成的。这样做一方面使得
考生在考试过程中受到考试时间与试卷题目不同的限制,极大地减少了考生互相交流或偷看他人试卷的机会;另一方面,有效地防止了试卷提前外泄现象[5]的发生。
(2)对于越发猖獗的网络作弊、本地工具软件作弊以及可移动存储设备的作弊问题,本系统的解决策略是,将一个自主开发的具有特定防作弊功能的ActiveX控件嵌入在线考试系统中,以实现防止考生利用网络、工具软件、可移动存储设备作弊。该控件能够主动禁用考生在客户端机器的某些操作,而不是在作弊行为发生后才进行拦截。
2基于自动组卷算法的防作弊策略
自动组卷是将人工智能技术与人类教育专家的组卷知识和经验(即组卷约束条件)结合起来,运用人工智能的搜索和优化等技术,从试题库中自动选择试题组成试卷,由计算机来完成试卷内容的设计,使得由计算机所生成的试卷达到专家级水平。
当前,许多在线考试系统的自动组卷功能是通过系统管理员设定的试卷约束条件,单一地利用随机函数在试题库中随机抽取题目,这种方法虽然结构简单、实现容易,但是具有很大的不确定性,求解效率不高、不智能,不具有回溯性,容易进入死循环而导致组卷失败[6]。鉴于上述方法的缺陷,本文提出了一种利用背包问题的原理来实现自动组卷的算法。
首先,回顾一下背包问题的基本概念。背包问题是一种组合优化的NP完全问题,该问题可以描述为:给定一个能容纳总重量为W的
背包和n件重量分别为W1,W2,…,Wn的物品,要从这n件物品中挑选若干件恰好装满背包,即使得W1+W2+…+Wm=W,要求找出满足上述条件的解。
其次,我们应该明确的是自动组卷的求解过程实质是一个约束条件的组合优化问题。该约束条件一般是指题型、难度、知识点、分值、估时等因素,如果把每一项看作是局部约束,那么试卷最终要达到各项指标间的平衡,构成了整卷的全局约束条件。
所谓试卷的约束条件,就是试题的属性。这些属性分为必须满足、可调整、可替换3种类型。所有待抽试题可以按照必须满足的条件,如题型、难度,进行分类,每一个分类即构成一个试卷模块,即整个试卷的抽题被分解为若干个试卷模块的抽题,如此一来,对每个试卷模块的抽题限制条件也只剩下可调整的条件和可替换的条件了。
由此得到启发,将背包问题用在解决自动组卷的问题上,即首先将试题库中的所有试题按照试卷必须满足的约束条件(如试题难度、题型)进行筛选,保证了被选出的试题都是符合试卷必须满足的约束条件的。接下来,将选出的试题按照设定的试卷结构进行分类,生成多个待抽取的试题模块,因此每个试卷模块都有与之相对应的试题模块,这样将会减小抽取范围,提高抽取效率。对每个试卷模块都按照背包问题进行处理,即将一个试卷模块中试题的个数看作背包所要求的物品总重量,而与之对应的试题模块中的试题则看作所有的物品。分析可知,完全按照上述方法将背包问题直接移植到自动组卷算法上,会导致一个问题,即总是按照特定的顺序在试题模块中抽取试题
会使得生成的试题不随机,导致不同考生生成相同试卷的几率变大,这违背了我们的初衷。针对这个问题,我们采取的措施是,选取一个随机数作为每次求解的起点,同时采用循环队列的思想遍历所有“物品”,并且下一个试题的抽取也不能按照特定的顺序进行,而是用一个随机数作为下一道试题的序号。该方法可确保不会在背包中重复抽取试题,因为每次从n件“物品”中选出一件加到背包中后,会将该“物品”从所有“物品”中删除。本系统采用的自动组卷算法的整体流程,如图1所示。
图1是对本系统采用的自动组卷算法的整体流程,以下将对其进行说明。
(1)从题库中筛选出符合组卷必须满足条件的试题,过滤掉多余的试题。
(2)将上一步抽取出的试题按照试卷结构进行分类,生成多个待抽取的试题模块。
每个试题模块的抽取过程为:
用一个随机数作为每次求解的起点,同时采用循环队列的思想遍历所有“物品”,代替传统的总是从1开始穷举所有组合的求解。
求解过程中,取下一个试题加到试卷模块中时,并非取直接相邻的下一个试题,而是用一个随机数作为下一个待取的试题序号。由于每次从试题模块中选出一道题加入相应的试卷模块后,都会将该试题从试题模块中删除,因此不会重复抽取。
注:利用上述方法可以枚举出所有的解,为了减少求解个数,增