一种智能阅卷方法及系统与流程

文档序号:12674607阅读:533来源:国知局
一种智能阅卷方法及系统与流程

本发明属于计算机技术领域,公开了一种智能阅卷方法及系统。



背景技术:

目前在线考试系统种类较多,但主要分为两类:一是类似于驾照考试,以选择题和判断题等客观题型为主的通用考试系统;另一类是以ACM程序设计大赛为代表的程序设计类比赛专用考试系统。考试系统中的主要技术难点在于满足考核要求的题库、考试监控和阅卷评分。

通常考试系统可以通过从大量题库中进行随机选题组卷等技术方法解决部分监考问题,通过及时保存考试文件等措施防止停电等意外情况造成重大影响。但考试题型是需要重点考虑的问题。

阅卷模式对于不同类型的考试有明显的差异:对于客观题为主的考试完全能实现系统自动阅卷,并且正确性和效率非常高,而对于填空、论述、作文等题型,则大都采取人工阅卷的方式。

程序设计类考试系统有明显不同。对于竞赛系统或各高校的在线评测(OnlineJudge)系统,如北京大学的POJ、浙江大学的ZOJ等,都是以程序运行结果为唯一判断依据,即程序输出与标准答案完全相同则正确,否则即使结果正确,仅是格式不同,也作错误处理。

对于高等院校日常课程教学,无论采用哪种模式都有失偏颇。对于几乎所有高校都开设的C程序设计课程,既不可能只考选择题和判断题,也不宜将学生编写的程序因结果与参考答案不完全一致而直接判为零分。鉴于同一问题用程序实现可能有多种算法或书写方式,使得完全用计算机实现自动阅卷非常困难,因此需要将自动阅卷与人工阅卷相结合,在提高阅卷效率的同时兼顾合理性。



技术实现要素:

针对上述技术问题,本发明提出一种智能阅卷方法及系统,提高阅卷效率同时兼顾合理性。

为达到上述目的,本发明采用的技术方案为:

一种智能阅卷方法,包括以下步骤:

步骤1,读取第i个考生登录信息表中第j道试题的试卷代号;

步骤2,读取并判断输入的答案与参考答案是否相同;

步骤3,若输入的答案与参考答案相同,返回评分;若输入的答案与参考答案不相同,对输入的答案进行测试;

步骤4,反馈批改结果,阅卷结束生成电子试卷和阅卷记录存档信息。

步骤1后进一步包括,判断试题类型;当试题类型为填空题或改错题,判断第k个填空点或改错点是否存在输入的答案,读取试卷对应的源程序文件名、评分参数;读取输入的答案,处理为精简代码(处理为精简代码的步骤为对源程序进行格式化处理,包括将程序中的TAB键转换为空格、删除空行、删除注释、删除无效的多余空格,保留影响程序逻辑性或正确性的空格);

若试题类型为填空题或改错题,步骤2进一步包括,分别读取并判断输入的答案是否为空、是否与原始程序一致或与“填空改错题编译错误表”中已有的精简代码一致,若有,返回0分;若是与参考答案一致或与“填空改错题编译正确表”中已有的精简代码一致,得设置分;否则,执行步骤3。

进一步的,步骤3中对输入的答案进行测试为:自动输入预先设置的一组或多组测试数据,将第k个填空点或改错点输入的答案代入到参考答案相应的行后进行编译运行,对参考答案也进行编译运行,输出运行结果;判断代入每一组数据时,输入的答案运行结果与参考答案运行结果是否都相同;若都相同,则返回得分,并将输入的答案存入“填空改错题编译正确表”中;否则,返回0分,并将输入的答案存入“填空改错题编译错误表”中;后续阅卷过程中有答案在“填空改错题编译正确表”中或“填空改错题编译错误表”中的,直接给予评分。

若步骤1,判断试题类型为编程题,读取试卷对应的源程序文件名、评分参数等,包括读取该试卷所对应的源程序文件名,是否要求考生运行并输出指定的文件,程序完全正确分值,存在结果文件分值,结果文件正确分值等参数。读取输入的答案,处理为精简代码。

上述的阅卷方法中,处理为精简代码的步骤为对源程序进行格式化处理,包括将程序中的TAB键转换为空格、删除空行、删除注释、删除无效的多余空格(保留影响程序逻辑性或正确性的空格)。

当试题类型为编程题,步骤2后进一步包括,精简代码与原始试题是否一样,精简代码与参考答案是否一样,精简代码是否在“编程题编译正确评分表”中,是否在“编程题程序代码评分表”中并已经评分;

若精简代码与原始试题一样,返回0分;

若精简代码与参考答案一样,返回得分;

若精简代码在“编程题编译正确评分表”中,返回得分;

若精简代码不在“编程题编译正确评分表”中,判断试题是否要求输入的答案编译运行并输出指定的结果文件:(1)若是,执行步骤3;(2)否则,判断精简代码是否在“编程题程序代码评分表”中:①若在,返回评分;②若不在,执行步骤3。

进一步的,步骤3中对输入的答案进行测试为:自动输入预先设置的一组或多组测试数据,对输入的答案进行编译运行,对参考答案也进行编译运行,输出运行结果,判断代入每一组数据时,考生运行结果与参考答案运行结果是否一致;若都相同,则返回得分,并将输入的答案存入“编程题编译正确评分表”中;否则,给定分值,并将输入的答案存入“编程题程序代码评分表”中。

上述的阅卷方法中,步骤2、3后仍然判断试题是否要求考生编译运行并输出指定的结果文件,若是,调用结果文件判分模块:如果结果文件不存在,结果文件得0分;如果结果文件存在,得结果文件存在分;如果文件内容又正确,再得内容正确分。若试题不要求考生编译运行并输出指定的结果文件,则只需判断试题输入的答案是否为正确答案,并返回得分。

一种智能阅卷系统,包括采集模块,读取第i个考生登录信息表中第j道试题的试卷代号;判断模块,判断输入的答案与参考答案是否相同;测试模块,若输入的答案与参考答案不相同,通过存储的预先设置一组或多组测试数据,编译运行输入的答案,对输入的答案进行测试;存档模块,用于反馈批改结果,阅卷结束生成电子试卷和阅卷记录存档信息。

上述的智能阅卷系统,还包括参考答案数据库,存放试题的试卷代号及对应的参考答案;填空改错题编译正确表数据库,存放输入的经测试后给予正确分的答案;填空改错题编译错误表数据库,存放输入的经测试后返回0分的答案;编程题编译正确评分表数据库,存放输入的经测试后给予正确分的答案;编程题程序代码评分表数据库,存放输入的经测试后给予相应分值的答案。

还包括试题类型判断模块,判断试题为填空题或改错题、编程类题目,分别调用填空题和改错题阅卷模块、编程题阅卷模块;精简代码模块,对于输入的答案,进行格式化处理,包括将程序中的TAB键转换为空格、删除空行、删除注释、删除无效的多余空格(保留影响程序逻辑性或正确性的空格)操作,得到精简代码。结果文件判分模块,对输入的答案进行判分,并将得分返回。

本发明具有以下有益效果:本发明的阅卷方法及系统能够实现主观题、客观题的智能评阅,大大缩短了阅卷周期,节约了人力物力,同时降低人工阅卷时易出现的错批情况;而且,统一阅卷时,考生大量增加的情况下,阅卷时间增加很少。由于本发明的阅卷方法具有学习能力,因此阅卷的正确性和公平性都得到了明显提高。

附图说明

图1为本发明实施例的智能阅卷方法流程图。

图2为本发明实施例的填空题及改错题智能阅卷方法流程图。

图3为本发明实施例的编程类题智能阅卷方法流程图。

图4为本发明实施例的编程类阅卷评分流程图。

图5为本发明实施例的编程类阅卷测试答案流程图。

具体实施方式

为了便于本领域技术人员的理解,下面结合实施例与附图对本发明作进一步的说明。

本实施例的阅卷方法及系统:

(1)围绕C程序设计课程,实现考试环节所有功能,包括题库建立、设定组卷规则、考试(含监考)、阅卷评分、生成电子试卷;

(2)按照C程序设计课程考核要求,试卷通常有选择、程序阅读、程序填空、改错、编程等题型,对每个考生实现随机选题组卷或指定题目组卷;

(3)考试中能根据需要开放或限制使用编程环境,如选择、程序阅读题应限制使用编程环境,而程序填空、改错、编程题则允许考生在编程环境中进行调试,以便通过运行程序得到正确结果;

(4)对于客观题(选择题)实现自动评阅;对于阅读程序题可根据考生提交的答案种类设定分值后自动评阅;对于程序填空、改错等答案可能不唯一的题型通过语句比对、代码代入程序运行等方式进行自动评阅,对于一种答案只进行一次评阅,自动完成其他相同答案的评阅;对于编程题则按对于不同的输入,运行结果与预期答案是否一致(自动评阅)、能否编译运行(人工干预评阅)、源代码逻辑分析(人工干预评阅)给予不同的分值。

(5)当有大量考生时,可以设定分组并行评阅,指定老师评阅特定题号,最后将评阅结果合并;评阅流程可以设置匿名状态进行(即老师看不到评阅学生信息);评阅结束生成电子试卷和评阅记录存档。

智能阅卷系统包括采集模块,读取第i个考生登录信息表中第j道试题的试卷代号;判断模块,判断输入的答案与参考答案是否相同;测试模块,若输入的答案与参考答案不相同,对输入的答案进行测试;存档模块,用于反馈批改结果,阅卷结束生成电子试卷和阅卷记录存档信息;系统还包括参考答案数据库,存放试题的试卷代号及对应的参考答案;填空改错题编译正确表数据库,存放输入的经测试后给予正确分的答案;填空改错题编译错误表数据库,存放输入的经测试后返回0分的答案;编程题编译正确评分表数据库,存放输入的经测试后给予正确分的答案;编程题程序代码评分表数据库,存放输入的经测试后给予相应分值的答案。

流程图如图1所示:

步骤1,读取第i个考生登录信息表中第j道试题的试卷代号;

步骤2,读取并判断输入的答案与参考答案是否相同;

步骤3,若输入的答案与参考答案相同,返回评分;若输入的答案与参考答案不相同,对输入的答案进行测试;

步骤4,反馈批改结果,阅卷结束生成电子试卷和阅卷记录存档信息。

具体实现方法为:

(1)关于填空题和改错题的评阅

对于每个考生,根据预先设定的题型表和题号读取相应程序,根据题型表确定填空点或改错点,如果输入答案为空白或与原始程序相同,则意味着考生没做该题;如果与参考答案完全一样则判定正确;其他情况则须将考生编写的语句逐条代入参考答案程序中进行编译运行,根据运行结果判定代码的正确性。流程图见图2。

(2)关于编程题的评阅

对于编程题,预先对除基本框架以外的各考核点(编译运行、结果输出、正确性等)设定一定的分值,以便评阅时给予相应分值。

如图3,对于所有考生的程序,依次进行以下流程的评阅:

①对源程序进行格式化处理,包括将程序中的TAB键转换为空格、删除空行、删除注释、删除无效的多余空格(保留影响程序逻辑性或正确性的空格)等操作;

②将格式化处理后的程序与原始框架程序比较,如果相同,说明考生没有编写任何代码,代码分为0分;否则与参考答案程序比较,如果相同,说明考生代码完全正确,得到全部代码分;

③查找“编程题编译正确评分表”,如有一致代码,给予正确分;

④查找“编程题程序代码评分表”,如有一致代码,给予相应分值;

⑤考生程序运行结果与参考答案程序运行结果比对,如相同,给予全部代码分的同时,将该程序存入系统“编程题编译正确评分表”中;

⑥人工阅卷,给定程序分值,同时将该程序存入系统“编程题程序代码评分表”中。

⑦若精简代码不在“编程题编译正确评分表”中,判断试题是否要求输入的答案编译运行并输出指定的结果文件:(1)若是,根据结果文件是否存在及结果文件是否正确,返回得分。

更具体的:如图4,步骤1,判断试题类型;当试题类型为编程题,读取第i个考生登录信息表中第j道试题的试卷代号,读取试卷对应的源程序文件名、评分参数等,包括读取该试卷所对应的源程序文件名,是否要求考生编译运行并输出指定的文件,程序完全正确分值,存在结果文件分值,结果文件正确分值等参数。读取输入的答案,处理为精简代码。

步骤2,读取并判断输入的答案与参考答案是否相同;精简代码与原始试题是否一样,精简代码是否在“编程题编译正确评分表”中,若精简代码不在“编程题编译正确评分表”中,判断试题是否要求输入的答案编译运行并输出指定的结果文件:若是,判断考生运行的结果文件与参考答案运行的结果文件是否一样,并评分;否则,判断精简代码是否在“编程题程序代码评分表”中并已经评分;

如图5,步骤3,若输入的答案与参考答案不相同,对输入的答案进行测试;通过重定向输入语句输入预先设置的一组或多组测试数据,对输入的答案进行编译运行,对参考答案也进行编译运行,通过重定向输出语句输出运行结果,判断代入每一组数据时,考生程序运行结果与参考答案运行结果是否都相同,若都相同,则返回得分,并将输入的答案存入“编程题编译正确评分表”中;否则,给定部分代码分,并将输入的答案存入“编程题程序代码评分表”中。

其中,可以记录参考答案的编译运行结果,除首次对输入的答案进行测试时,对输入的答案和参考答案都进行编译运行外,仅对输入的答案编译运行,并与参考答案的编译运行结果进行比较判断。

步骤2、3后仍然判断试题是否要求考生编译运行并输出指定的结果文件,若是,调用结果文件判分模块:如果结果文件不存在,输出结果文件分得0分;如果结果文件存在,得结果文件存在分;如果文件内容又正确,再得内容正确分。

步骤4,反馈批改结果等。阅卷结束生成电子试卷和阅卷记录存档信息。

填空题、改错题和编程类题的阅卷模块可相互调用。

本实施例的阅卷系统使得阅卷工作量由原来的每班级4小时左右(每班以40人计)缩短至30分钟左右,而且,统一阅卷时,考生大量增加的情况下,阅卷时间增加很少。同时阅卷的正确性和公平性都得到了明显提高。

以上的实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1