程序作业自动测评的研究与实现
【摘要】:近年来计算机辅助测评(CAA)领域受到了更多的关注,但所解决的多为客观题测评问题,而主观题由于灵活性和创造性强等因素,一直没有出现很好的测评方案。程序作业属于主观题,与自然语言相比,由于程序设计语言的规范性强,多义性少,加之学生程序主要是中小程序,可作为主观题测评领域的一个研究出发点和突破点。
本文研究学生程序作业的计算机辅助评价。在本工作室研发的编程学习可视化环境基础上,通过扩充基于程序作业标准答案模板的测评技术,实现对学生程序作业的计算机辅助评价,既有利于程序设计语言初学者更快更好地理解掌握程序设计的基本概念和方法,也有利于减轻教师批改程序作业的负担,增强学生程序测评工作的客观性、准确性和实时性。
本课题的主要研究目标是程序测评系统的设计和实现。在该系统中,采用源码特征比较的方案,将学生程序与存储在题库中的模板程序集依次比较,然后根据基于相似度概念的评分规则得出对学生程序完成程度和质量的测评结果。在学生程序与模板程序比较前需要对二者进行一系列信息提取和结构转换工作。输入源程序后通过语法分析主要建立起对程序控制结构的信息树,称作扩展语法树(EST);在EST的基础上通过对数据流向的分析,建立起扩展流图(EFG)作为过渡;在EFG基础上通过对程序基本块的划分,对各子块的控制和数据依赖关系分析,以及使用一些规范化规则等技术,得到了程序特征属性图(PFSG)。之后的程序评价过程是基于程序对等结构和程序等价结构的概念,对学生程序和模板程序的PFSG进行的。
本文的内容组织如下:第一章介绍自动测评相关技术背景、现状和意义,并介绍本课题的研究点;第二章介绍整个测评系统的总体架构和处理过程;第三章提出程序对等结构和等价结构的概念,并分析了需要从程序中提取的信息;第四章讨论测评系统中数据结构的选用;第五章介绍表达式、条件语句和循环语句等程序结构规范化技术;第六章介绍变量跟踪技术和比较评分技术;第七章以一个实际的例子说明如何使用模板程序测评学生程序的整体过程。
【关键词】:程序的测量与评价 对等结构 等价结构 程序结构规范化 程序结构比较 【学位授予单位】:广东工业大学
【学位级别】:硕士
【学位授予年份】:2005
【分类号】:TP311.11
【DOI】:CNKI:CDMD:2.2005.093031
【目录】:
- 摘要4-6
- ABSTRACT6-8
- 目录8-11
- CONTENTS11-14
- 第一章 绪论14-25
- 1.1 本文研究背景14-18
- 1.1.1 程序测试技术现状15
- 1.1.2 程序理解技术现状15-17
- 1.1.3 其他相关技术现状17-18
- 1.2 本文研究点18-25
- 1.2.1 基于模板的程序测评19-20
- 1.2.2 实验对象20-21
- 1.2.3 实验语言21-24
- 1.2.4 测评结果24-25
- 第二章 程序作业测评系统结构25-37
- 2.1 总体系统结构25-26
- 2.2 本文基于的编译技术简介26-31
- 2.2.1 已有工作基础26
- 2.2.2 基于散列技术的符号表简介26-31
- 2.3 程序测评处理过程31-37
- 2.3.1 程序信息提取32-34
- 2.3.2 程序结构规范化34-36
- 2.3.3 程序结构比较36-37
- 第三章 等价结构的提出37-47
- 3.1 程序结构等价性及程序结构分解37-44
- 3.1.1 程序结构的对等性37
- 3.1.2 程序结构分解及信息提取讨论37-43
- 3.1.3 程序结构等价性和异构43-44
- 3.2 等价性定义的合理性说明及实现辅助44-47
- 第四章 程序测评数据结构47-57
- 4.1 对需要提取信息存储方式的讨论47-51
- 4.2 程序特征结构图51-52
- 4.3 扩展语法树结构52-55
- 4.4 变量信息表55-57
- 第五章 程序结构规范化技术57-76
- 5.1 表达式规范化技术57-62
- 5.1.1 赋值表达式57-58
- 5.1.2 逻辑表达式58-59
- 5.1.3 算术表达式59-61
- 5.1.4 关系表达式61-62
- 5.1.5 一元表达式62
- 5.2 条件语句规范化技术62-67
- 5.2.1 if语句处理62-64
- 5.2.2 switch语句处理64-66
- 5.2.3 条件表达式的处理66-67
- 5.3 循环语句规范化技术67-72
- 5.3.1 三种表达式的信息提取方法67
- 5.3.2 for语句处理67-69
- 5.3.3 while语句处理69-70
- 5.3.4 do-while语句处理70-72
- 5.3.5 多层混合嵌套处理72
- 5.4 语句综合处理72-76
- 5.4.1 中间变量的消除73
- 5.4.2 语句次序的处理73-74
- 5.4.3 无用、不可达语句的删除74-75
- 5.4.4 函数处理75-76
- 第六章 程序比较及评分技术76-87
- 6.1 变量跟踪技术76-78
- 6.1.1 变量信息表的构造76
- 6.2.2 跟踪技术实现76-78
- 6.2 程序错误分类78-79
- 6.3 评分规则79-82
- 6.4 程序比较及评分过程82-87
- 6.4.1 程序比较过程82-85
- 6.4.2 程序评分过程85-87
- 第七章 例子分析87-95
- 结论95-97
- 参考文献97-100
- 攻读学位期间发表的学术论文100-101
- 独创性声明101-102
- 致谢102
全文下载:
CAJ格式
不支持迅雷等加速下载工具,请取消加速工具后下载
|
|
|
|
| 1 |
王宇颖,李永浩,孙志岗,苏小红;代码多样化消除规则的研究[J];哈尔滨工业大学学报;2005年04期 |
| 2 |
韩良秀,韩良杰,沈备军,吴定一;基于Java环境面向对象软件质量度量的一些研究[J];华东理工大学学报;1999年01期 |
| 3 |
钱树人;程序设计语言的语义理解及语境分析[J];计算机研究与发展;1994年07期 |
| 4 |
李必信,郑国梁,李宣东,张勇翔,梁佳;软件理解研究与进展[J];计算机研究与发展;1999年08期 |
| 5 |
周高嵌;彭四伟;;源代码在线评测系统中剽窃检测技术的研究与实现[J];计算机与信息技术;2005年12期 |
| 6 |
周欣,孙家骕,杨芙清;青鸟C++程序理解工具[J];计算机工程;2000年11期 |
| 7 |
王成;刘金刚;;一种改进的字符串匹配算法[J];计算机工程;2006年02期 |
| 8 |
梅宏,吴穹,袁望洪,杨芙清;Smalltalk程序理解辅助系统BDCom-ST[J];计算机学报;2000年08期 |
| 9 |
李莹,张琴燕;程序理解[J];计算机应用研究;2001年06期 |
| 10 |
张文典,任冬伟;程序抄袭判定系统[J];小型微型计算机系统;1988年10期 |
|