郑杰
摘要:构建自动评分系统,是现阶段VB课程教学的必然发展趋势,但是以软件质量度量方法、动态分析方法、源程序分析比较方法等单一方法所研发设计的自动评分系统,存下较大的局限性,难以保证评分结果的准确性。基于此,文章提出了一种动态分析方法和源程序分析比较方法相结合的VB程序自动评分系统设计方法,利用VB编译系统参数通过对试卷进行自动批阅得到对应结果,再与多个设定好的答案进行对比,根据对比结果给出具体的试卷评分,进而可以有效确保自动评分结果的准确性。
关键词:VB程序;自动评分系统;设计;实现;实践应用
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)02-0061-02
无纸化考试在教学活动中变得越来越常见,经过长期研究和实践应用,有关选择题、填空题等客观题的无纸化考试模式已经相对成熟,自动评分系统也在不断完善。但是对于有着较强主观性的程序设计语言编程题,自动评分系统仍处于探索阶段,影响了无纸化考试模式的全面推行。为解决这种问题,便需要加大对程序设计语言编程题自动评分和系统的研究力度,综合系统设计研发难度及运行效率等因素,提高自动评分系统的可操作性,充分发挥其在程序语言类课程教学过程中的辅助作用。
1 VB程序自动评分系统开发的重要意义
自动评分是实现无纸化考试的关键环节,改变了传统人工阅卷评分方式,既能够减轻教师工作压力,又可以提高阅卷效率,是促进教学改革发展的一项重要举措。而VB程序试题主观性较强,每个学生所给出的VB程序都存在一定差异,如果采用结果评分法对试卷进行自主批阅,是无法按照设定好的程序完成对试题的评判的,所给出的评分无法代表考生的真实成绩,也不能准确判断出学生对VB语程序设计语言的真实掌握情况。同时,VB课程属于一门公共基础课,每个老师一般都需要负责多个班级教学任务,学生人数较多特点使得VB程课程试卷批阅量较大,专业课程教师不得不耗费大量时间和精力在试卷批阅方面,不利于其他教学活动的开展,整体教学水平和教学质量也会受到影响[1]。通过研究设计开发一套符合VB课程特点、满足试卷自主批阅需求的自动评分系统,能够解决原有自动评分机制存在的缺陷,确保评分结果的客观性和准确性,同时还可以减轻专业课教师的试卷批阅负担,具有重要的现实意义。
2 VB程序自动评分系统功能及运行流程
VB程序自动评分系统由两部分组成,分别为数据管理系统和自动评分系统,这两部分所具备的功能各不相同,数据管理系统主要是负责题库和学生成绩的管理,通过对题库内容作出调整和更改,实现对试卷题目的有力控制,以满足实际考试需求;而自动评分系统主要功能便是按照设定好的程序及规则,对学生试卷进行自动批阅并给出具体评分。VB程序自动评分系统工作时,是按照相应的运行流程进行的,首先先根据学生学号的不同,得到每个学生所上传试卷的路径,然后通过自动编译对学生所提高的VB程序试卷进行批量处理,以文本文档形式,在每个学生试卷所对应的文件夹内生成翻译结果,并在考试结果表中记录存储翻译结果。系统运行下一步设定流程之前,需要先对翻译结果记录情况进行检索,当检索结果分别显示为true和false时,则对应执行下一步操作和逻辑判分。如果执行系统下一步操作,则需要根据学生所编写的VB程序类型,选择与之相对应的方法进行处理[2]。如果进入逻辑判分环节,则需要以文本档案形式读入学生试题答案,与多个答案模板进行对比分析,以匹配度给出最终评分。
另外,对于VB程序自动评分系统来讲,其最为主要的功能便是自动评分。系统运行过程中,以学生学号作为依据,捕获每个学生所编写的VB程序路径,然后通过命令菜单栏中的make一项发出指令,批量编译学生程序,并对应生成文本文件形式的编译结果。如果学生编写的VB程序能够顺利通过编译,则会生成exe格式的可执行文件[3]。然后编译再进行自动运行,结果错误未通过编译的学生程序则需进入逻辑判分环节,对学生试卷给出具体得分。VB程序自动评分系统评分功能实现流程如图1所示。
3 VB程序自动评分系统设计与实现
在设计VB程序自动评分系统时,需要明确具体设计思路,针对其中的关键设计环节进行深入探讨,具体包括程序自动编译、程序自动运行和程序逻辑判断,进而才能顺利完成系统的构建。
3.1 系统设计思路
现阶段无纸考试模式中的自动评分系统,比较常用的评分方法主要包括软件质量度量法、动态分析法、源程序分析比较法等几种。如果使用软件质量度量法对学生VB程序进行自动评分,则在源代码结构分析过程中,很难做到对程序语义的准确理解,影响了评分结果的精准性。如果使用动态分析法或源程序分析比较法,则主要是从语法结构和程序算法两方面进行分析的,一旦学生编写的VB程序出现语法错误或者算法错误时,则将会影响自动评分系统运行程序的执行,难以确保评分结果的客观性[4]。由此可见,VB程序自动评分系统中仅采用一种自动评分方法时,是无法有效发挥系统利用价值的。所以,此次研究中在设計自动评分系统时,运用了动态分析法和源程序分析比较法两种方法,在两者相互配合下,避免了单一自动评分方法所存在的缺陷,既可以解决程序无法编译所造成的系统程序无法执行问题,最大限度地保证评分结果的客观性和精准新,又能够克服源程序分析比较法效率过低的弊端,快速完成对学生试卷的批量批阅。
3.2 程序自动编译
在对学生所编写的VB程序进行自动评分时,应先对其进行自动编译,这是确保整个自动评分系统功能有效发挥的基础与前提。对于该环节的实现,需要考虑两点问题,分别为VB程序的批量编译,以及利用一个VB程序去编译另外一个VB程序。对于VB程序的批量编译,可以借助数据库记录集的指针完成。学生所上传的VB程序文件夹,在命名时所用名称为自己的学号,而学生学号是包含在在自动评分系统数据库表项中的,所以,可以以学生学号作为依据,采集得到学生程序路径,并通过使指针进行移动来改变程序路径,完成对VB程序的批量处理,得到对应的编译结果。VB程序自动评系统在对学生程序进行自动编译时,需要通过VB命令行选项中的/make projectname标签,发布VB编译名称,同时会生成一个常数便于执行运行命令,在系统的中的存储装置中保存编译结果[5]。VR程序经过make后,在输出文件时,其路径会在/out dir path标签上显示出来。此时,便可以顺利完成对学生程序的批量化自动编译,为系统下一步运行操作提供基础。endprint
3.3 程序自动运行
对于VB程序自动评分系统的应用来讲,程序自动运行的实现难度较大,是系统构建过程中需要重点考虑的环节,具体应对以下三方面进行详细分析。第一,应先判定可以自动运行以及无法自动运行的程序有哪些,对两者进行界定加以区分,判定依据为数据库中考试结果记录表中的翻译结果表项。实际判定过程中,需要先对表项中的每行翻译结果进行逐一查看,根据具体数据分别做出true和false两种不同判断,如果程序判定结果为true,则程序通过自动运行在所对应文件夹中找到exe文件;如果程序判定结果为false,则系统下一步运行需执行逻辑判分操作。第二,将测试数据导入到系统中,并实现部分按钮的自动点击。对于VB程序来讲,可以利用其自身窗体中所拥有的控件加以控制,根据该思想,通过复制将学生程序中的窗体添加至空窗体中,此时便可以对学生窗体中的控件采取相应的控制手段。需要注意的是,为了保证窗体控件控制的有效性,要统一规范同一类控件命名规则。当程序窗体完成自动运行后,可以直接将其卸载,然后再根据系统自动运行需求添加新的窗体。第三,获取自动运行结果。将各类数据导入到VB程序自动评分系统中,通过测试得到对应结果并记录在数据库中,然后再与数据库中原本存在的测试记录表进行比较做出判断,完成程序自动运行。
3.4 程序逻辑判断
程序逻辑的判断能够为学生试卷自动评分提供可靠依据,是VB程序自动评分系统的关键所在。程序逻辑判断过程类似于人工阅卷模式中,教师对比参考答案对学生试卷进行评分,在该环节,自动评分系统会将学生程序与模板答案进行对比,根据两逻辑结构匹配性高低,客观给出学生程序评分,进而完成系统整个运行过程[6]。将学生所编写的VB程序导入到自动评分系统后读入数组,然后再对数据库中的模板答案也进行数组读入处理。将学生程序和模板答案程序中的元素进行一一对应比较,其中关键词的匹配是两者之间比较的关键,为控制关键词的先后顺序,可在该环节设置一个循环结构,根据关键词的匹配情况,将学生程序与多个模板答案进行对比。当第一个关键词便无法顺利匹配时,则表示学生程序该模板答案无法匹配,需要再与下一个模板答案进行匹配,经过多次操作后,实现两者有效匹配便可终止系统运行。最后根据学生程序与模板打答案之间可以顺利匹配的关键词数量,对学生程序进行评分,得到最终评分结果。此时便可利用VB程序自動评分系统,完成对学生程序的自动批阅。
4 VB程序自动评分系统研究与设计结果分析及总结
通过研究可以发现,VB程序自动评分系统的设计与实现,所用关键技术主要包括程序自动编译、程序自动运行和程序逻辑判断。首先,对于程序自动编译来讲,需要用到VB中的命令行选项,在数据库中数据集指针的帮助下,对学生进行批量处理,为系统后续操作指令的执行奠定良好基础。其次,对于程序自动运行来讲,需先对翻译结果进行逐行查看,以数据库中考试结果记录表中的翻译结果表项为参照,对程序是否可以自动运行做出判定。在通过复制方法在空白窗体出增加学生程序窗体,根据数据库匹配输出结果。最后,对于程序逻辑判断来讲,分别对学生源程序和模板答案程序进行数组读入处理,逐一匹配两者元素,并构建循环结构控制匹配关键词的先后顺序。
在VB课程教学过程中,通过研究设计VB程序自动评分系统,能够改变传统人工阅卷评分方式,大大减轻了专业课教师的工作任务量,教师有很多的时间和精力开展其他教学活动和研究工作,有利于整体教学效果的提升。并且,将动态分析方与源程序分析比较方法相结合,自动评分方式更加符合VB程序主观性特点,确保了评分结果的客观性和精准性,能够帮助VB课专业教师了解并掌握学生的学习情况,对教学成果做出科学评估,根据学生的得分情况找出教学工作中的不足加以强化,有利于理想教学效果的实现。除此之外,VB自动评分系统的良好应用,为无纸化考试的全面推行提供了基础保障,在推动教学改革和创新过程中发挥着至关重要的作用。这些都是VB程序自动评分系统在VB课程教学中所体现出的优势,由此可见,加大在该方面的研究力度,开发设计并实现VB程序自动评分系统,具有重要的现实意义。
5 结束语
自动评分系统在VB程序试卷批阅中的有效应用,可以在最大化的保证评分结果精准性的前提下,提高试卷批阅效率,减轻教师工作负担,对于教学发展与进步具有促进作用。在VB教学过程中,应充分认识到VB程序自动评分系统研究及设计的重要意义,明确其具体功能及运行流程,分别对程序自动编译、程序自动运行和程序逻辑判断等关键设计环节进行严格把控,进而才能顺利实现VB程序自动评分系统的构建,发挥其在VB课程教学中的辅助作用。
参考文献:
[1] 白金凤.VB程序设计试题自动阅卷系统的设计与实现[D].长春:吉林大学,2014:22-29.
[2] 程欣.VB程序设计考试系统的设计与实现[D].石家庄:河北科技大学,2013:31-36.
[3] 刘瑞军.VB程序自动评分系统的分析与设计[J].宜宾学院学报,2016(6):46-49.
[4] 付亚臣.基于Windows消息机制的VB编程题评分系统的研究与应用[D].大连:大连海事大学, 2012:28-35.
[5] 郑丽敏.Visual Basic程序设计题自动评分系统的设计与实现[C].中国农业工程学会电气信息与自动化专委会、中国电机工程学会农村电气化分会科技与教育专委会2010年学术年会,2012.
[6] 李桂芝,王伟,周长胜.VB课程实践教学辅助系统的设计与实现[J].教育教学论坛,2016(17):220-221.endprint