动静态结合的程序自动评阅技术研究及系统实现

来源 :四川师范大学 | 被引量 : 3次 | 上传用户:gbyljk008
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在线考试系统中对于主观编程题通常采用动态评阅方式:编译并执行预先设置的测试用例,根据运行结果与用例预期输出是否一致评阅程序。动态评阅方式在程序无法编译的情况下不能给出相应的分数,这对于程序的评判是不客观的。因此,本文在对国内外程序自动评阅技术研究的基础上,通过分析教师手工评阅过程,提出了一种采用动静态结合的程序自动评阅方法。该方法从程序的“值”(动态)和“内容”(静态)两个角度评判程序,使得程序的评阅更加客观、准确和全面。动态评阅方式主要借助于相应的编译工具,检查程序有无语法错误,根据能否得到正确输出结果给出相应的得分。而静态评阅方式对程序进行分析,主要包括程序的词法分析、语法分析、语句提取和学生程序与参考程序的相似度计算。词法分析阶段使用flex工具产生了一个词法分析器。flex使用正则表达式对关键字、标识符、运算符、界符、注释等进行了识别。语法分析阶段使用bison工具产生了一个语法分析器。bison使用文法产生式描述编程语言的书写规则。本文以C语言为例,将词法分析器与语法分析器结合使用,提取了程序中词法、语法正确的语句。参考程序与学生程序相似度的计算主要分为四个部分:预处理、标准化、中间表示形式、相似度算法。在预处理过程中,删除了注释、连续换行、连续空格等与程序本质无关的部分。为了减少程序的多样化表达,使得相似度结果更为准确,提出了一些标准化规则。为了充分表达程序的语法结构,本文选取程序控制流图为中间表示形式,对控制流图采取深度优先遍历方式,并求取学生程序与参考程序遍历结果之间的最长公共子序列,从而计算出相似度,对学生程序进行静态评阅方式评分。基于以上技术设计并实现了一个在线考试系统。系统具有管理员、教师、学生3种角色,可以实现选择题、判断题、编程题的自动评阅。对于程序的评阅,实现了动静态结合的评阅方式。通过分析学生程序在手工评阅、动态评阅、动静态结合评阅方式下的得分,验证了本文提出的动静态结合的评阅方法的评分能更接近教师手工评阅得分。该方法使得程序的评阅更客观、合理,减轻了教师手工评阅的工作量,也对程序智能评阅技术研究有一定的借鉴作用。
其他文献
近年来,随着微机电系统、片上系统、无线通信技术和低功耗嵌入式等技术的飞速发展,无线传感器网络被广泛应用于军事,医疗,环境监测,智能家居等领域,作为连接人类生活与物理世
雾和霾是影响户外视觉认知能力的常见因素。在雾天条件下,由于空气中气溶胶粒子的存在,使得目标物体反射光和周围环境光被吸收或散射,导致图像对比度降低、成像模糊、细节信
随着移动互联网的飞速发展,电子商务数据出现爆炸式增长,人们面临着越来越严重的"信息过载"问题。"信息过载"是指人们无法从海量的数据中快速准确的定位到自己所需要的信息,
下一代的电力系统称之为智能电网(Smart Grid,SG)。先进的网络通信技术可以实现SG经济、快速的数据传输,但智能电网通信网络(Smart GridCommunication Networks,SGCN)仍然面临着
基于稀缺标记样本的半监督学习作为传统半监督学习的一个重要领域,主要研究当样本集中标记样本与未标记样本数量存在严重不平衡性时,如何获得优秀的鲁棒分类器的问题。区别于一
丰富互联网应用(Rich Internet Applications)是一种新型Web技术,它能够为互联网的用户带来丰富的体验。RIA目前已经成为Web技术领域研究的热点,深深地影响了Web应用。RIA为
电力绝缘子泄漏电流是表征绝缘子运行状态的重要数据,能够科学地表征绝缘子绝缘水平。但为了分析其高频特性,采样数据量需要很大,其庞大的采集数据量给数据通信和存储造成了严重的负担。数据压缩方法能够有效减小数据量,降低传输带宽要求。根据现有数据压缩方法,结合泄漏电流数据特征,提出了利用EMD(empirical mode decomposition)对数据进行分解,并用分形理论对泄漏电流数据进行压缩和恢复
随着网络技术的不断发展,远程监控系统在隧道监控方面的应用也越来越显现出它的优势,远程监测与控制、故障诊断、决策支持等功能为隧道交通的安全运营提供了有力手段和切实保
随着网络技术的发展与进步,网络时代的人工之智能对许多领域的发展起到了重要的作用。而移动Agent作为分布式人工智能技术与网络技术发展的必然结果,成为当前人工智能研究的热
面向对象的状态转移给软件性能造成的影响历来是测试领域研究的重点。本文在论证UML状态图能够通过描述状态而发现软件性能问题的基础上,提出了一种基于UML状态图的性能测试