基于频谱分析的C程序反馈方法研究及应用
发布时间:2023-04-16 17:45
随着代码的自动评测技术在教学领域的应用越来越广泛,国内许多高等院校都在着手开发适合于本校教学需要的支撑系统。C语言程序设计课程作为学习编程的入门课程,大多受众不具备编程基础,缺乏熟练调试的能力,修正代码错误是学生中存在的普遍难题。而ACM赛制专用的黑盒评测技术反馈有限,用户只能获取评测结果与语法错误,无法有效指导学生定位代码中的逻辑错误。长此以往,反馈不足的弊端会逐渐消磨学生深入解决问题的兴致,削弱测试驱动型学习带来的益处。为了让竞赛性质的自动评测技术更好的契合程序设计类课程的教学需求,改善评测反馈不足的现状,本文针对C程序的逻辑错误反馈方法展开研究工作,主要研究及开发工作包括三个方面。首先,研究了自动化错误定位技术在代码评测方向的应用,将基于频谱的轻量级定位技术与C语言教学需要相结合,提出了基于频谱分析的C程序反馈模型。通过分析反馈模型在本校Online Judge(OJ)系统的实际数据集上的定位效果,说明了该模型可以大幅缩减错误代码的审查范围,能够为学生查找程序逻辑错误提供有效指导。其次,应用基于频谱分析的C程序反馈模型,设计并实现了一个基于web的C语言实验支持系统。该系统能够指...
【文章页数】:78 页
【学位级别】:硕士
【文章目录】:
摘要
Abstract
1 绪论
1.1 研究背景与意义
1.2 国内外研究现状
1.2.1 国外研究现状
1.2.2 国内研究现状
1.3 本文主要研究内容
1.4 本文结构安排
2 基于频谱分析的错误定位技术
2.1 相关定义
2.2 错误定位思想
2.3 基本操作流程
2.4 度量公式
2.5 实例详解
2.6 本章小结
3 基于频谱分析的C程序反馈方法
3.1 基于频谱分析的C程序反馈模型
3.2 基于频谱分析的C程序反馈实现
3.2.1 程序插桩
3.2.2 信息收集
3.2.3 可疑度计算
3.3 模拟实验与结果分析
3.3.1 评估标准
3.3.2 实验环境
3.3.3 实验数据
3.3.4 实验结果与分析
3.4 本章小结
4 基于程序评测及反馈的C语言实验支持系统
4.1 系统需求分析
4.1.1 功能性需求
4.1.2 非功能性需求
4.2 系统概要设计
4.2.1 功能模块设计
4.2.2 数据库逻辑设计
4.2.3 软件架构设计
4.3 主要功能模块实现
4.3.1 登录模块实现
4.3.2 用户模块实现
4.3.3 题目模块实现
4.3.4 评测模块实现
4.3.5 实验模块实现
4.3.6 反馈模块实现
4.4 本章小结
5 程序在线评测的安全性研究
5.1 学生程序评判过程中存在的安全问题
5.2 在线判题的安全体系结构设计
5.2.1 源代码层面限制
5.2.2 应用进程级别限制
5.2.3 防止用户重复提交
5.2.4 用户数据加密
5.3 关键技术实现
5.3.1 代码合法性检查
5.3.2 函数去抖
5.3.3 令牌拦截
5.3.4 用户数据加密与源码文件哈希
5.4 测试与评价
5.5 本章小结
6 总结与展望
6.1 研究工作总结
6.2 工作展望
致谢
参考文献
攻读硕士学位期间主要研究成果
本文编号:3791569
【文章页数】:78 页
【学位级别】:硕士
【文章目录】:
摘要
Abstract
1 绪论
1.1 研究背景与意义
1.2 国内外研究现状
1.2.1 国外研究现状
1.2.2 国内研究现状
1.3 本文主要研究内容
1.4 本文结构安排
2 基于频谱分析的错误定位技术
2.1 相关定义
2.2 错误定位思想
2.3 基本操作流程
2.4 度量公式
2.5 实例详解
2.6 本章小结
3 基于频谱分析的C程序反馈方法
3.1 基于频谱分析的C程序反馈模型
3.2 基于频谱分析的C程序反馈实现
3.2.1 程序插桩
3.2.2 信息收集
3.2.3 可疑度计算
3.3 模拟实验与结果分析
3.3.1 评估标准
3.3.2 实验环境
3.3.3 实验数据
3.3.4 实验结果与分析
3.4 本章小结
4 基于程序评测及反馈的C语言实验支持系统
4.1 系统需求分析
4.1.1 功能性需求
4.1.2 非功能性需求
4.2 系统概要设计
4.2.1 功能模块设计
4.2.2 数据库逻辑设计
4.2.3 软件架构设计
4.3 主要功能模块实现
4.3.1 登录模块实现
4.3.2 用户模块实现
4.3.3 题目模块实现
4.3.4 评测模块实现
4.3.5 实验模块实现
4.3.6 反馈模块实现
4.4 本章小结
5 程序在线评测的安全性研究
5.1 学生程序评判过程中存在的安全问题
5.2 在线判题的安全体系结构设计
5.2.1 源代码层面限制
5.2.2 应用进程级别限制
5.2.3 防止用户重复提交
5.2.4 用户数据加密
5.3 关键技术实现
5.3.1 代码合法性检查
5.3.2 函数去抖
5.3.3 令牌拦截
5.3.4 用户数据加密与源码文件哈希
5.4 测试与评价
5.5 本章小结
6 总结与展望
6.1 研究工作总结
6.2 工作展望
致谢
参考文献
攻读硕士学位期间主要研究成果
本文编号:3791569
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3791569.html