摘要:构建自动评分系统, 是现阶段VB课程教学的必然发展趋势, 但是以软件质量度量方法、动态分析方法、源程序分析比较方法等单一方法所研发设计的自动评分系统, 存下较大的局限性, 难以保证评分结果的准确性。基于此, 文章提出了一种动态分析方法和源程序分析比较方法相结合的VB程序自动评分系统设计方法, 利用VB编译系统参数通过对试卷进行自动批阅得到对应结果, 再与多个设定好的答案进行对比, 根据对比结果给出具体的试卷评分, 进而可以有效确保自动评分结果的准确性。
关键词:VB程序; 自动评分系统; 设计; 实现; 实践应用;
无纸化考试在教学活动中变得越来越常见, 经过长期研究和实践应用, 有关选择题、填空题等客观题的无纸化考试模式已经相对成熟, 自动评分系统也在不断完善。但是对于有着较强主观性的程序设计语言编程题, 自动评分系统仍处于探索阶段, 影响了无纸化考试模式的全面推行。为解决这种问题, 便需要加大对程序设计语言编程题自动评分和系统的研究力度, 综合系统设计研发难度及运行效率等因素, 提高自动评分系统的可操作性, 充分发挥其在程序语言类课程教学过程中的辅助作用。
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程序自动评分系统中仅采用一种自动评分方法时, 是无法有效发挥系统利用价值的。所以, 此次研究中在设计自动评分系统时, 运用了动态分析法和源程序分析比较法两种方法, 在两者相互配合下, 避免了单一自动评分方法所存在的缺陷, 既可以解决程序无法编译所造成的系统程序无法执行问题, 最大限度地保证评分结果的客观性和精准新, 又能够克服源程序分析比较法效率过低的弊端, 快速完成对学生试卷的批量批阅。
图1 VB程序自动评分系统评分功能实现流程
3.2、程序自动编译
在对学生所编写的VB程序进行自动评分时, 应先对其进行自动编译, 这是确保整个自动评分系统功能有效发挥的基础与前提。对于该环节的实现, 需要考虑两点问题, 分别为VB程序的批量编译, 以及利用一个VB程序去编译另外一个VB程序。对于VB程序的批量编译, 可以借助数据库记录集的指针完成。学生所上传的VB程序文件夹, 在命名时所用名称为自己的学号, 而学生学号是包含在在自动评分系统数据库表项中的, 所以, 可以以学生学号作为依据, 采集得到学生程序路径, 并通过使指针进行移动来改变程序路径, 完成对VB程序的批量处理, 得到对应的编译结果。VB程序自动评系统在对学生程序进行自动编译时, 需要通过VB命令行选项中的/make projectname标签, 发布VB编译名称, 同时会生成一个常数便于执行运行命令, 在系统的中的存储装置中保存编译结果[5]。VR程序经过make后, 在输出文件时, 其路径会在/out dir path标签上显示出来。此时, 便可以顺利完成对学生程序的批量化自动编译, 为系统下一步运行操作提供基础。
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.