Java 编程题自动评分技术的研究与实现(一)

本文探讨了Java编程题自动评分技术,融合程序查错、局部纠错、反射机制的黑盒测试和知识要点匹配等技术,实现动态测试与静态分析相结合的评分方法。针对可编译和不可编译的考生程序,分别采用了不同的评分策略,并通过实验验证了该技术的合理性与准确性。
摘要由CSDN通过智能技术生成
    目前计算机程序设计语言考试中 编程题的自动评分技术仍然不完善,该技术是实现计算机在线考试及自动阅卷的关键和难点所在,因此许多研究者致力于寻找一种程序的中间表示形式(比如系统依赖图、抽象语法树)来进行源码分析并匹配评分,这种方法是将程序整体作为比较对象,不仅内存占用率高,而且实现难度大,同时也会牺牲灵活性。
    本文融合了程序查错及局部纠错技术、基于反射机制的黑盒测试技术、知识要点的正则表达式匹配评分技术等关键技术,实现了Java编程题自动评分技术及原型系统。评分方式兼顾了可执行代码的动态测试与源程序的静态分析,实现了对不同的考生程序采用以下两种评分方法:
    (1)对于可以通过编译的考生程序,利用 Java 反射机制提取考生程序的相关信息进行黑盒测试,给出测试分,再结合语法分、结果分,计算出总得分。
    (2)对于无法通过编译的考生程序,利用本地 jdk 包中的编译器编译考生程序,然后进行查错并局部纠错,每纠正一个错误都要重新编译以消除虚假错误。
    对于纠错后能顺利通过编译的考生程序,采用第一种评分方法。对于无法纠错的考生程序,则采取放弃纠错,根据错误种类适当给出语法分,再结合知识要点匹配情况计算总得分。
    实验结果表明,本文所实现的 Java编程题自动评分技术提高了试题评阅过程的合理性和准确性,且具有较好的灵活性
    1.1 研究背景
    随着人类进入信息时代,信息技术作为生产力中最活跃的因素改变着社会的方方面面,网络以其独特的方式介入到社会的各个领域,给人们的行为方式带来巨大影响。
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值