论文部分内容阅读
随着计算机与网络技术的提高与普及,计算机机考、在线测试等广泛应用于社会化考试及网络教育中。随之而来的计算机辅助测评(Computer AssistedAssessment)技术也受到了更多的关注。传统的计算机辅助测评技术更多的应用于标准化考试,对客观题提供了高效便捷的测评。但对于灵活性和创造性较强的程序作业测评,一直以来都更多的依靠人工评判。
本文通过对现有程序代码相似度技术的研究与分析。经过对多种不同测评技术的分析,在现有的代码相似度度量技术基础上进行改进。在现有程序代码相似度的度量技术中,主要有三大类测评技术,第一类是基于程序属性技术的度量,包括应用明考夫斯基距离、余弦定理距离等;第二类是基于程序结构的度量,包括有程序切片度量技术、圈复杂度度量技术等;第三类是基于字符串匹配技术的度量,包括有动态规划法、基于最长公共子序列度量、基于最长公共子串度量、基于编辑距离度量等。每种度量方法均有其各自的优缺点,单独使用每种度量技术均有其不足之处,因此需对度量技术进行改进。
本文主要针对广东工业大学计算机学院可视计算实验室开发的AnyviewC程序作业系统进行测评技术的扩展研究。首先,对AnyviewC现有编译器扩展程序属性分析抽取模块,基于对程序作业的词法、语法和属性分析,抽取相关属性。然后,总结各种度量技术的优势与不足。引入权重的概念,运用多种权重分析方法,如单位加权法、加权平均法、等量加权法、多元回归法、矩阵运算法、层次分析法、模糊综合评判法进行分析,建立多种代码相似度度量技术的综合分析模型,扩展了程序作业系统对程序作业的测评方式,并提高了测评的准确性和全面性。最后,在程序作业测评的实验分析中,抽样分析了众多作业系统中的模板程序和学生程序,进行了系统测评和人工复核的方法比较分析,取得了较好的一致性。
将系统测评模块应用到作业系统中,起到了辅助教师检测、评价和监督学生学习的效果,为开展程序设计基础和数据结构等课程的教学改革、教学质量分析等提供了新的分析工具,为改进教学质量作了进一步的支持。