一种在线评测系统中代码错误的分类、形式化描述和检测方法

来源 :北京大学 | 被引量 : 0次 | 上传用户:yan19891989
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来,在线评测系统被广泛的应用到程序教学中。对程序正确性严格、精确的评测以及快速的结果反馈让程序教学变得更加高效、便捷,学生和老师从中受益匪浅。但对于一些初学者而言,虽然可以很快就知道自己程序的正确性结果,但是如果当其真正面对评测系统反馈答案错误时,他们往往不知道该如何处理。  这个问题在已经拥有近10年教学经验的POJ上同样无可避免。计算概论或者程序设计实习课程的学生在POJ上做作业或者练习时,当其得到Wrong Answer的反馈之后,往往不知所措。他们希望系统能够给出错误的原因或者进一步改正的提示。为了实现这一功能,POJ系统需要对用户的程序有更深层次的理解,也就是“以指导为目的的程序理解”。  本文重点关注的问题是如何分析得到用户的Wrong Answer代码的具体出错原因。这项问题的研究目标是当用户的代码遇到Wrong Answer的时候,系统能够给出这份代码的错误原因,但由于这个目标的难度很大,本文尚且达不到这个目标。本文的目标是针对已有错误代码和正确代码的用户,给出其错误原因,统计分析同一题目的错误分布,给后续用户在遇到Wrong Answer时一个整体的错误原因分析的参考。  这一问题的难点在于代码出错的原因多种多样,即使同一种错误也有不同的表现形式。  本文提出了一种代码错误的分类,形式化描述和检测的方法。该方法首先通过人工观察分析,将常见的错误分为了7大类,18小类,然后在此基础上提出了一套规则将错误分类进行形式化的描述,最后通过语法树分析等方法将描述一一实现,完成代码错误的自动检测。  本文工作的完成将有助于POJ系统在“以指导为目的的程序理解”问题上进一步深入研究。同时在计算概论和程序设计实习等课程的教学中,也有助于对学生进行纠错式指导,对老师提供题目错误类型统计指导,从而更好的促进课程的教学。  
其他文献
近年来,互联网用户更多的聚焦于数据本身,而不在意数据的位置。现有的以IP为中心的互联网架构与用户的上网需求之间存在着越来越大的鸿沟。于是,研究者提出一种新的互联网架构—
为了能更加准确地对计算机系统的安全风险进行评估,特开发此网络模拟攻击系统(Network Attack Imitating System,简称NAIS).该系统集弱点扫描和无损的漏洞验证功能与一体,能
随着网络的迅速发展,企业级分布式应用系统的研究开发正成为计算机领域一个令人关注的焦点.现代企业的业务涉及面广、需求多变、可靠性要求高,所以企业级软件通常是大型的、
随着中国加入WTO,占我国企业总数99%以上的中小企业面临着更为激烈的市场竞争,而提高竞争力的有效手段是进行企业的信息化建设。建立企业网站是企业信息化建设的重要内容和手段
移动对象的近邻查询在地理信息系统、移动计算和基于位置的电子商务等方面有着广泛的应用,如何及时有效地回答移动对象发出的查询请求是目前国际上一个新的研究热点.静态近邻
随着社交网络在国内外的迅速崛起,人们在网络中发布信息越来越方便。然而,网络中海量的社会信息已经严重过载,用户从中获得感兴趣的信息需要很大的交互负担。基于地理位置的社会
国家重点实验室在我国的科研活动中占有重要地位.对于国家重点实验室国际竞争力及其管理工作,我国在这方面的研究还比较薄弱.研究和评估国家重点实验室的国际竞争力具有重要
该文以数字视频数据为基础,采用数据挖掘技术对基于内容的视频分类和检索进行研究.将这些实际问题抽象为视频数据的准备、基于完整视频特征的视频分类、基于镜头序列的视频分
该文从以下几个方面进行了研究: 1.基于双语词典的句于对齐模型的研究.研究了目前流行的句子对齐模型,在前人的基础上,提出了基于双语词典的句子对齐模型,性能优于传统的基于
首先,该文比较了研究自治系统关系的五种信息获得方式:即whois信息收集法、捕捉BGP路由更新包方式、主动探测方式和BGP路由表采集方式和对等路由器方式,综合比较技术、开销与