我的任务是为一所小型大学开发在线考试软件,我需要采取措施防止作弊...
你对如何做到这一点有什么想法?
我想可能禁用所有 IE / firefox 选项卡,或者一些如何记录互联网活动的方式,以便我知道他们是否正在谷歌搜索 anwsers...是否有任何现实的方法可以从 flex / web 应用程序中执行此类操作?
我的任务是为一所小型大学开发在线考试软件,我需要采取措施防止作弊...
你对如何做到这一点有什么想法?
我想可能禁用所有 IE / firefox 选项卡,或者一些如何记录互联网活动的方式,以便我知道他们是否正在谷歌搜索 anwsers...是否有任何现实的方法可以从 flex / web 应用程序中执行此类操作?
简而言之,如果是在线考试(假设他们使用自己的计算机参加考试),则没有现实的方法可以做到这一点。
是否可以全屏打开浏览器窗口?您还可以检查窗口是否失去焦点并启动一个计时器,在一小段时间后停止测试。
@Chuck - 一个好主意。
如果测试是在 Flash/Flex 中创建的,您可以强制用户使应用程序全屏以开始测试(全屏模式必须由用户启动)。然后,您可以在 flash 退出全屏模式时侦听 Flash 事件,并采取您想要的任何适当的操作(结束测试、惩罚用户等)。
blog.flexexamples.com有一个创建全屏应用程序的示例。
随机问题和大量问题会有所帮助。即使是相同的问题(比如改变数字并计算结果)随机化也有帮助。但是,这些都不能防止作弊。
在第一种情况下,如果池足够大,以至于没有两个学生得到相同的问题,这意味着学生将在几个学期的课程中编制一个问题列表。(教授们提出这么多问题也是一项艰巨的工作,我作为助教不得不这样做,这并不有趣。)
在第二种情况下,您只需要一个聪明的学生来解决一般情况,其余的人只需接受该答案并插入值即可。
在线审查系统与这些策略中的任何一种都可以很好地配合使用(对作弊没有好处)。在线测试?他们不会工作。
最后,至于防止谷歌搜索......祝你好运。即使您的应用程序可以完全锁定机器。用户总是可以运行虚拟机或第二台机器并做他们想做的任何事情。
我的学校一直有Lockdown browser的下载链接,但我从未参加过需要它的课程。您可能可以通过用户代理检查强制学生使用它,但它可能会通过一些努力被欺骗。
监考是防止某人作弊的唯一方法。所有其他方法可能会让大多数人不值得付出努力,但不要忽视这样一个事实,即某些类型的人为了作弊会付出两倍的努力来作弊,而不是让他们诚实地学习。
他们是否总是在测试机器上进行测试,或者他们能够在网络上的任何机器上进行测试?如果是特定的机器,只需使用 hosts 文件来防止它们上网。
如果它是任何机器,那么我会考虑让测试后端更改运行测试的机器的防火墙规则,这样机器就无法进入互联网。
由于您无法阻止他们使用 google,因此您必须确保他们没有时间使用 google。将问题放在图像中,这样他们就无法复制和粘贴(每次显示图像名称时随机化)。
让问题更长(100 字或更多),你会发现人们宁愿回答问题也不愿在 google 中重新输入整个问题。
给他们很短的时间。像30-45秒。是时候阅读问题了,思考片刻,然后单击 A、B、C、D、E、
(刚从 CSUN 毕业,我可以告诉你 scantron 测试工作。)
对于论文问题?做一个反向谷歌查找(意味着一旦他们点击提交就将他们的答案输入谷歌),看看你是否得到完全匹配。如果是这样,你知道该怎么做。
我可能会实现一个简单的 winforms(或 WPF)应用程序,其中包含一个浏览器控件——它被锁定在您的站点中。然后,您可以删除浏览器的链接并锁定工作站,以便它们只能打开您的应用程序。
当然,这假设您可以控制学生参加考试的工作站。
作为一名教师,我可以告诉你,最好的方法是让人工审查答案。考虑到课程的上下文、学生的预期知识水平、教科书的内容等,一个人可以感觉到复制/粘贴或没有意义的答案。
一台计算机可以做一些事情,比如检查答案的统计相似性,但你确实需要一个人来进行最终审查(或者,构建一个大规模的统计处理人工智能堆栈,其成本是人工审查成本的 10 倍,而且不会一样好 ;-))
不,浏览器旨在限制网站或应用程序对系统造成的损害。您可能可以通过 Java、activex 控件或自定义插件来实现您的目标,但除此之外,您将无法“观察”他们在系统上所做的事情,更不用说对其进行控制了。(想想如果你能!我可以在这个网页上放一个间谍,如果你打开它,我可以看看你打开了哪些其他网站?)
即使你能做到这一点,在虚拟机中使用浏览器也能让他们在测试期间使用一台计算机进行浏览,如果你能解决这个问题,他们可以简单地使用图书馆计算机,旁边有笔记本电脑,或者阅读书上的东西。
现实情况是,这种不受监控的测试要么必须被视为“开卷”或“荣誉”测试。您必须以参考无法帮助解决问题的方式设计测试问题,这也意味着每个学生都需要获得略有不同的测试,因此他们无法串通并生成密钥。
您必须开发在他们的计算机上运行的应用程序,但即使那样您也无法轻松解决 VM 问题,并且根本无法解决并排计算机或书籍问题。
-亚当
这将解决您的问题。http://www.neuber.com/usermonitor/index.html 这将允许您在测试期间和之后查看学生的浏览器历史记录以及在测试期间查看他们的屏幕。测试期间访问的任何 url 都将被记录,因此当您在他们的成绩单上加上大 F 时,您可以向他们显示日志。:)
没有人可以阻止人们作弊,但每个人都可以收到不同的问题。
我更喜欢你在市场上购买可用的在线脚本作为它的起点。这将节省您的时间、成本和测试工作。
以下是我使用过的优秀脚本之一,它的工作方式非常有魅力。以此为基础,我使用计算机自适应测试开发了一个拥有 1000 多个用户的在线测试门户。
http://codecanyon.net/item/online-skills-assessment/9379895
对于希望开发在线考试系统的人们来说,这是一个很好的起点。
我在他们的支持下定制了脚本。
随机化问题,从一家大银行问一组随机的问题......计算答案......
除非您的意思是入侵您的网站,否则这是一个不同的问题。
除了让应用程序完全在用户的机器上运行之外,我不相信有办法确保他们不会在谷歌上搜索答案。即使这样,也很难检查所有可能的漏洞。
我参加过使用基于网络的测验软件的课程,并且曾经为一所小型大学工作。对于基本的作弊预防,我会说随机化问题。
尝试将 SMS 消息添加到组合中。
我同意亚当的观点,即使有我建议的限制,作弊仍然是微不足道的。这些只是“尽力而为”的建议。
您唯一的希望是严格的学校荣誉守则和对进行考试的房间进行人工监考。
正如许多其他海报所说,您无法控制学生的计算机,当然也不能阻止他们使用第二台计算机或 iPhone蜂窝设备)可以绕过网络上的任何 DNS 或防火墙,因为它使用蜂窝提供商的网络,而不是大学的网络。
祝你好运; 你会需要它。
禁止他们使用任何无线设备或笔记本电脑并对机器进行键盘记录?
您可以强制执行测试可用的小时间窗口。这可能会减少知道答案的学生可以自由地帮助不知道答案的学生的机会(因为他们都需要同时参加考试)。
如果它与数学有关,请为不同的学生使用不同的数字。一般来说,尝试为不同的测试副本设置不同的问题。
如果你要设计整个课程:试着做一些在线作业,这样你就可以为每个学生建立一个档案,比如统计分析他们使用某些常用单词和标点符号的频率。有些学生经常使用分号;例如,其他人从不。当他们参加考试时,您会很清楚是否真的是他们在打字。
你也可以问几个你知道他们不知道的问题。例如,列出 10 个问题,并说他们必须回答 10 个问题中的任何 6 个。但根据课堂上没有教过的材料制作 3 个问题。如果他们选择其中的 2 或 3 个,你就有充分的理由怀疑。
最后,使用算法来比较相似的答案。做一个简单的哈希来摆脱小的变化。例如,将答案散列到小写 3-gram(一行 3 个单词)列表中,按字母顺序排列,然后查找不同用户之间的许多冲突。这听起来像是一种显而易见的技巧,但作为一名教师,我可以向你保证,这会抓住数量惊人的作弊者。
可悲的是,真正的麻烦是实际上对作弊者实施惩罚。在我教过的大学里,如果学生反对你的惩罚(比如考试不及格),管理部门通常会给学生一些回报,比如积极的成绩变化。我想这是因为学生(的父母)已经向大学支付了很多钱,但作为老师仍然很沮丧。
全屏建议的有效性非常有限,因为用户总是可以使用第二台计算机或带多显示器的第二个屏幕来执行他们的查找。最后,最好只是假设学生会作弊,然后不要将在线测试算作任何重要的事情。
如果测试对学生有帮助,他们将在受控环境中监考的期末/期中考试中做得更好。否则,为什么要让他们摆在首位...
制作问题和答案的 jpeg 图像,这样您就无法将文本块复制并粘贴到搜索引擎或 IDE(如果是编码测试)中。这与回答每个问题的时间限制相结合,比如三分钟,使得作弊变得更加困难。
我赞同盖伊所说的话。我们还创建了一个基于 Flex 的考试系统,该系统托管在 .NET 内置的自定义浏览器中。自定义浏览器全屏启动,所有工具栏都被隐藏,快捷方式被禁用。
这是有关如何使用 C# 和 VB.NET 创建自定义浏览器的教程。