Visual Foxpro机考批量阅卷的研究
2014-11-19龚春亚
龚春亚
摘要:交代评分细则及考生成绩细目表的制定,给出批量自动阅卷算法流程。利用表单文件结构特性,给出批阅表单的代码实现;运用正则表达式,给出批阅改错部分程序的代码实现。最后给出批卷应用的实例及分析,验证了阅卷程序的有效性。
关键词:自动阅卷;阅卷系统;VFP阅卷
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)30-7065-04
Research on Automated Marking Technology for VFP Operation Tests
GONG Chun-Ya
(Department of Information Enginerring , Nanjing Normal University Taizhou College,Taizhou 225300, China)
Abstract:With VFP toolkit, the solution on automatic assessment of vfp operation tests is given. The standard for evaluation is designed as table,and the structrue of score table is given.The program flow chart is proposed.The codes for form and correction part are presented. Finally,example of automated assessment result is presented,which proves efficency of the system.
Key words:automatic marking; automatic assessment; assessment of vfp programs
近年来,采用计算机实现无纸化考试己成趋势,相关技术涉及题库的建立与维护,试卷的智能组卷以及智能批阅。其中试卷智能批阅技术的研究意义非凡。目前客观题的自动阅卷技术己相对成熟,如选择题和判断题等利用计算机阅卷早己超越了人工阅卷,但主观题的阅卷技术还在起步阶段[1]。国外的相关研究始于对学生用自然语言书写的文章进行自动评分,有的进入实用阶段,如Project EssayGrade(PEG) a Page[2],LSA(Latent Semantic Analysis)[3]等。由于编程语言的词法和语法的诸多限制,使编程题的分析易于自然语言,现有的自动评分方法有,动态分析方法和静态分析方法两种[4]。
目前针对VFP编程环境的自动阅卷技术,国内已有部分学术积累。周松[5]对VFP中表单、菜单、数据库等文件的结构和记录特征做了剖析,指明阅卷方向;白素兰[6]提出要点匹配算法用于答案的判定,为降低误差率做出参考。但是对于VFP机考整卷批阅系统的研究,国内文献见诸较少,结合工作需求,提出机考整卷批量评阅解决方案并加以实现。经验证,能对全班学生机考文件进行自动评分,直接产生机考得分细目表,用于学期成绩的评定。
1 阅卷程序开发的准备
阅卷系统需要完成两项准备工作:首先分析操作题结构和分值分布,制定自动阅卷评分细则;其次设计并创建得分明细表,以记录考生得分信息。
1.1 评分细则的制定
参照江苏省二级VFP考试,上机操作分五大模块:项目,查询,菜单,表单和改错。由于题型的差异,有必要在细化分值标准的同时,给出针对不同题型该采取何种技术手段批阅。因篇幅限制,只列出数据库表操作部分的评分细则及对应机器阅卷技术要点,见表1。
1.2 建立考生得分细目表
设计考生得分细目表结构如表2。
2 批量阅卷算法
阅卷对象是成批的考生操作题压缩包,需事先将其解压到指定的文件夹.阅卷程序遍历考生文件夹,对考生成绩进行判定,完毕将考生准考证号、分值等信息自动录入得分细目表,方便日后查看及统计。给出算法思路,流程见图1。
3 阅卷模块核心代码的实现
VFP操作题自动阅卷的顺利进行,关键在于数据库文件(*.DBC)、菜单文件(*.MNX)、表单文件(*.SCX)均以数据表文件的结构组织,通过use命令可读至工作区[5]。而查询部分(*.qpr)及改错部分(*.Prg)文件均是文本文件格式,可以将其读入内存变量,进而判断相关特征是否满足,以给分。
下面通过表单及改错部分阅卷细节展示机器阅卷的实现:
3.1表单操作的批阅
考题要求:编写新添加的命令按钮的click事件代码,其功能是释放表单(按钮名为command1,表单文件名为fx.scx)
阅卷代码如下:
if file("fx.scx")
use "fx.scx"
biaodan=….. &&此刻略去部分代码,biaodan变量记录表单部分累计得分
SCAN FOR objname= 'Command1' &&搜索表单中的'Command1
if [thisform.release]$ lower(methods)
biaodan = biaodan + 2 &&若写对退出脚本则全分
else
biaodan = biaodan + 1 &&若写不出给一分,因为添加按钮也要得分
endif
ENDSCAN
Endif
3.2改错部分的批阅endprint
首先定义函数isMatch,供批阅程序调用,返回值.T.意味着某项改错要求得到满足。
Function isMatch(patrn, strng)
regEx = CreateObject("VBScript.RegExp") &&建立正则表达式对象
Matches = regEx.Execute(strng) &&执行搜索
RetStr=""
For Each Match in Matches &&遍历匹配集合
RetStr=RetStr+Match.Value
Next
if len(RetStr)>0
return .T.
else
return .F.
endif
Return
当考题要求将一处代码修改为目标串PARAMETERS cStr,给出如下阅卷代码:
if isMatch(lower("PARAMETERS +cStr"),lower(stuAnswerContent))
gaicuo = gaicuo +2.5 &&匹配成功给分
endif
其中变量stuAnswerContent存储待批阅程序代码;函数isMatch实参,能有效防止考生因输入多余的空格或书写大小写混用的标识符而导致的识别出错。
4 实验分析
选取园艺系物理系本科学生的138 份《VFP》上机操作压缩包,试题总分为40分,进行自动批改。最终的批卷结果见图2。
从考生操作题得分样表看,成绩分布与学生个体差异相符。部分学生有些项目几乎未得分,手工进入该考生文件夹,发现数据库DBC文件,数据库表DBF文件已损坏,甚至还有表单SCX文件损坏无法处理的情况出现,可见代码能对文件损毁情况进行自动识别。对优秀学生的答题,也进行手工核查,机器评分结果与手工评分结果相差无几。可见程序代码实现基本符合阅卷的要求。
进一步分析138名学生的得分信息,算得考生操作题得分率,见图3。
从图3可以看出,考生感到最难做的题型是数据库查询部分,其次是数据库扩展属性的设置及改错。这些数据的及时取得为今后教学的改进指明了方向,使教师能投入更多的精力至教学思路的挑战,方法的完善上。
5 结论
初步实现VFP课程考试上机操作整卷的批阅,一定程度上减轻教师负担。目前系统在下列方面还待完善:
1) 程序代码与标准答案没有实现分离,导致模块的重用性低,每次开考须修改阅卷程序;可以尝试通过xml建立操作题答案库,届时还需开展答案xml文件的自动生成技术的研究。
2) 正则表达式的使用能很大程度上减少主观题误判,但如何应对VFP中四个字母缩写的问题,以提高程序的适应能力,是下一步的研究方向。
参考文献:
[1] 高思丹,袁春风.主观试题的计算机自动批改技术研究[J].计算机应用研究,2004(2):181-185.
[2] Jill Burstein, Martin Chodorow, Claudia Leacock. Automated essay evaluation:the criterion online writing service[J]. AI Magazine,2004(3):27-36.
[3] Dharmendra Kanej iya,Arun Kumar,Surendra Prasad.Automatic evaluation of students answers using syntactically enhanced LSA[C]. Human Language Technology Conference. Proceedings of the HLT NAACL 03 workshop Building educational applications using natural language processing, 2003(4):53-60.
[4] 佘石泉.编程题自动阅卷技术的研究[D].长沙:中南大学,2007.
[5] 周松.Visual FoxPro上机操作考试自动阅卷系统的设计与实现[J].淮海工学院学报,2003,12(2):22-24,31.
[6] 白素兰.Visual FoxPro程序设计题自动阅卷技术的研究与实现[D].沈阳:沈阳工业大学,2005.
[7] 田甜,张振国.主观题自动阅卷技术研究[J]. 计算机工程与设计,2010,31(16):3697-3699,3704.
[8] 贾宗维,王晓芳.Visual FoxPro 程序设计主观题自动阅卷系统设计思路[J].山西农业大学学报:自然科学版,2008,28(1):99-101.
[9] 彭作民.EXCEL文档自动阅卷评分算法设计.南京师范大学学报:工程技术版,2007,7(3):70-73.
[10] 巨同升.C 语言程序自动阅卷系统的改进[J].山东理工大学学报:自然科学版,2010,24(5):52-54.endprint
首先定义函数isMatch,供批阅程序调用,返回值.T.意味着某项改错要求得到满足。
Function isMatch(patrn, strng)
regEx = CreateObject("VBScript.RegExp") &&建立正则表达式对象
Matches = regEx.Execute(strng) &&执行搜索
RetStr=""
For Each Match in Matches &&遍历匹配集合
RetStr=RetStr+Match.Value
Next
if len(RetStr)>0
return .T.
else
return .F.
endif
Return
当考题要求将一处代码修改为目标串PARAMETERS cStr,给出如下阅卷代码:
if isMatch(lower("PARAMETERS +cStr"),lower(stuAnswerContent))
gaicuo = gaicuo +2.5 &&匹配成功给分
endif
其中变量stuAnswerContent存储待批阅程序代码;函数isMatch实参,能有效防止考生因输入多余的空格或书写大小写混用的标识符而导致的识别出错。
4 实验分析
选取园艺系物理系本科学生的138 份《VFP》上机操作压缩包,试题总分为40分,进行自动批改。最终的批卷结果见图2。
从考生操作题得分样表看,成绩分布与学生个体差异相符。部分学生有些项目几乎未得分,手工进入该考生文件夹,发现数据库DBC文件,数据库表DBF文件已损坏,甚至还有表单SCX文件损坏无法处理的情况出现,可见代码能对文件损毁情况进行自动识别。对优秀学生的答题,也进行手工核查,机器评分结果与手工评分结果相差无几。可见程序代码实现基本符合阅卷的要求。
进一步分析138名学生的得分信息,算得考生操作题得分率,见图3。
从图3可以看出,考生感到最难做的题型是数据库查询部分,其次是数据库扩展属性的设置及改错。这些数据的及时取得为今后教学的改进指明了方向,使教师能投入更多的精力至教学思路的挑战,方法的完善上。
5 结论
初步实现VFP课程考试上机操作整卷的批阅,一定程度上减轻教师负担。目前系统在下列方面还待完善:
1) 程序代码与标准答案没有实现分离,导致模块的重用性低,每次开考须修改阅卷程序;可以尝试通过xml建立操作题答案库,届时还需开展答案xml文件的自动生成技术的研究。
2) 正则表达式的使用能很大程度上减少主观题误判,但如何应对VFP中四个字母缩写的问题,以提高程序的适应能力,是下一步的研究方向。
参考文献:
[1] 高思丹,袁春风.主观试题的计算机自动批改技术研究[J].计算机应用研究,2004(2):181-185.
[2] Jill Burstein, Martin Chodorow, Claudia Leacock. Automated essay evaluation:the criterion online writing service[J]. AI Magazine,2004(3):27-36.
[3] Dharmendra Kanej iya,Arun Kumar,Surendra Prasad.Automatic evaluation of students answers using syntactically enhanced LSA[C]. Human Language Technology Conference. Proceedings of the HLT NAACL 03 workshop Building educational applications using natural language processing, 2003(4):53-60.
[4] 佘石泉.编程题自动阅卷技术的研究[D].长沙:中南大学,2007.
[5] 周松.Visual FoxPro上机操作考试自动阅卷系统的设计与实现[J].淮海工学院学报,2003,12(2):22-24,31.
[6] 白素兰.Visual FoxPro程序设计题自动阅卷技术的研究与实现[D].沈阳:沈阳工业大学,2005.
[7] 田甜,张振国.主观题自动阅卷技术研究[J]. 计算机工程与设计,2010,31(16):3697-3699,3704.
[8] 贾宗维,王晓芳.Visual FoxPro 程序设计主观题自动阅卷系统设计思路[J].山西农业大学学报:自然科学版,2008,28(1):99-101.
[9] 彭作民.EXCEL文档自动阅卷评分算法设计.南京师范大学学报:工程技术版,2007,7(3):70-73.
[10] 巨同升.C 语言程序自动阅卷系统的改进[J].山东理工大学学报:自然科学版,2010,24(5):52-54.endprint
首先定义函数isMatch,供批阅程序调用,返回值.T.意味着某项改错要求得到满足。
Function isMatch(patrn, strng)
regEx = CreateObject("VBScript.RegExp") &&建立正则表达式对象
Matches = regEx.Execute(strng) &&执行搜索
RetStr=""
For Each Match in Matches &&遍历匹配集合
RetStr=RetStr+Match.Value
Next
if len(RetStr)>0
return .T.
else
return .F.
endif
Return
当考题要求将一处代码修改为目标串PARAMETERS cStr,给出如下阅卷代码:
if isMatch(lower("PARAMETERS +cStr"),lower(stuAnswerContent))
gaicuo = gaicuo +2.5 &&匹配成功给分
endif
其中变量stuAnswerContent存储待批阅程序代码;函数isMatch实参,能有效防止考生因输入多余的空格或书写大小写混用的标识符而导致的识别出错。
4 实验分析
选取园艺系物理系本科学生的138 份《VFP》上机操作压缩包,试题总分为40分,进行自动批改。最终的批卷结果见图2。
从考生操作题得分样表看,成绩分布与学生个体差异相符。部分学生有些项目几乎未得分,手工进入该考生文件夹,发现数据库DBC文件,数据库表DBF文件已损坏,甚至还有表单SCX文件损坏无法处理的情况出现,可见代码能对文件损毁情况进行自动识别。对优秀学生的答题,也进行手工核查,机器评分结果与手工评分结果相差无几。可见程序代码实现基本符合阅卷的要求。
进一步分析138名学生的得分信息,算得考生操作题得分率,见图3。
从图3可以看出,考生感到最难做的题型是数据库查询部分,其次是数据库扩展属性的设置及改错。这些数据的及时取得为今后教学的改进指明了方向,使教师能投入更多的精力至教学思路的挑战,方法的完善上。
5 结论
初步实现VFP课程考试上机操作整卷的批阅,一定程度上减轻教师负担。目前系统在下列方面还待完善:
1) 程序代码与标准答案没有实现分离,导致模块的重用性低,每次开考须修改阅卷程序;可以尝试通过xml建立操作题答案库,届时还需开展答案xml文件的自动生成技术的研究。
2) 正则表达式的使用能很大程度上减少主观题误判,但如何应对VFP中四个字母缩写的问题,以提高程序的适应能力,是下一步的研究方向。
参考文献:
[1] 高思丹,袁春风.主观试题的计算机自动批改技术研究[J].计算机应用研究,2004(2):181-185.
[2] Jill Burstein, Martin Chodorow, Claudia Leacock. Automated essay evaluation:the criterion online writing service[J]. AI Magazine,2004(3):27-36.
[3] Dharmendra Kanej iya,Arun Kumar,Surendra Prasad.Automatic evaluation of students answers using syntactically enhanced LSA[C]. Human Language Technology Conference. Proceedings of the HLT NAACL 03 workshop Building educational applications using natural language processing, 2003(4):53-60.
[4] 佘石泉.编程题自动阅卷技术的研究[D].长沙:中南大学,2007.
[5] 周松.Visual FoxPro上机操作考试自动阅卷系统的设计与实现[J].淮海工学院学报,2003,12(2):22-24,31.
[6] 白素兰.Visual FoxPro程序设计题自动阅卷技术的研究与实现[D].沈阳:沈阳工业大学,2005.
[7] 田甜,张振国.主观题自动阅卷技术研究[J]. 计算机工程与设计,2010,31(16):3697-3699,3704.
[8] 贾宗维,王晓芳.Visual FoxPro 程序设计主观题自动阅卷系统设计思路[J].山西农业大学学报:自然科学版,2008,28(1):99-101.
[9] 彭作民.EXCEL文档自动阅卷评分算法设计.南京师范大学学报:工程技术版,2007,7(3):70-73.
[10] 巨同升.C 语言程序自动阅卷系统的改进[J].山东理工大学学报:自然科学版,2010,24(5):52-54.endprint