湖南省大学生研究性学习和创新性实验计划项目结题报告.docx
《湖南省大学生研究性学习和创新性实验计划项目结题报告.docx》由会员分享,可在线阅读,更多相关《湖南省大学生研究性学习和创新性实验计划项目结题报告.docx(20页珍藏版)》请在第一文库网上搜索。
1、湖醋寻生财酹诩醐新的脸倒项目结题报告项目名称:ACM竞赛程序源代码复制检测系统的设计与实现项目编号:学生姓名:刘洋易长庚刘慧凤曾嘉佩所在学校和院系:湖南第一师范学院信工院项目实施时间:2014年6月一2016年3月指导教师:田祖伟联系电话:填表日期:2016年3月30日湖南省教育厅2016年制一、基本情况项目名称ACM竞赛程序源代码复制检测系统的设计与实现立项时间2014年6月完成时间2016年3月项 目 主 要 研 究 人 员一序号.姓名学号专业班级所在院 (系)项目中的分 工1刘洋12计科1 班信工院算法设计2易长庚12计科1班信工院代码实现3刘慧凤13计科1 班信工院代码实现4曾嘉佩13
2、计科1 班信工院系统测试二、研究成果简介项目研究的目的、意义;研究成果的主要内容、重要观点或对策建议;成果的创新 特色、实践意义和社会影响;研究成果和研究方法的特色。限定在2000字以内。1、项目研究的意义通过几代人的不懈努力,人类最伟大的发明之一计算机,已经成为了人们 生活中不可或缺的必备工具,也间接地成为了社会衡量和选取人才的标准之一。因 此,现代初高等教育也在不断地加强青少年的计算机高级应用水平,几乎所有高校 都已开设或正在筹备开设计算机软件应用或计算机程序设计类学科课程。但是,不少学生出于对程序设计的懒惰甚至惧怕心理,在面对程序设计类作业 时,采取各种手段复制抄袭网络上或同学朋友的源代
3、码,以应付老师和学校的检查。 这种行为严重影响了学校的教学质量,而且极不利于学生提高自身的计算机应用水 平,减少了毕业求职时的筹码。针对上述现象,国外教育机构的调查结果表明:有高达85.4%的学生承认抄袭 过别人的编程作业。随着程序源代码的抄袭现象越来越普遍,抄袭手段越来越多样 化,单纯地依靠学校和老师对学生的思想教育和人工辨别检测已难以抑制抄袭现象 的蔓延,高等院校急需更高效、准确的检测方法来检测抄袭行为,遏制抄袭现象地 继续发生。但是,判断程序源代码是否抄袭是一项耗时、复杂的工作,若一个班级 有n名学生,就必须对其所有的n份作业进行n(n-l)2次对比判断,尤其是当程序 设计类作业的难易程
4、度不同时,即无法准确查出抄袭者,又无法确保因难易程度等 因素的不同而造成的误判断,往往只能依靠老师的经验和检查的仔细程度来大致控 制检测的准确率,这无疑增加了老师的工作时间和复杂度,且收效甚微。利用高效 率的程序源代码抄袭检测工具才能有效地解决这个问题,因此,开发ACM竞赛程序 源代码复制检测系统具有一定的实用价值。2、研究成果的主要内容(1)程序源代码抄袭检测技术、抄袭手段分类及应对不同情况的分级处理方法, 现有检测系统原型及其主要算法研究。程序源代码抄袭检测主要是通过对比两段程序源代码,计算这两段程序源代 码之间的相似度并得到一个0.0到1.0之间的相似度值,再通过设置阈值(可由系 统自动
5、计算或用户设置)来划分出是否有抄袭行为嫌疑的程序代码片段,进而判断 目标程序源代码中是否存在抄袭行为。目前较常用的程序源代码检测技术一般为 属性计数法和结构度量法两种。属性计数法是统计程序源代码中所包含的各种属性(即成员变量),并将其映 射到给定的向量空间中,再计算这两段程序源代码之间的相似度值。但该方法即使 在向量维度上进行优化,准确度仍然较低,误判断较多。VerC。等人也指出“单纯 地增加向量的维数并不能减少检测的错误率,提高检测精度”。结构度量法是将程序源代码进行预处理成特殊的数据序列,再利用相似度计算 公式计算出相似度值。相比属性计数法,该方法可将程序源代码中的结构和语义加 入检测判断
6、过程,提高检测准确度。基于结构度量法的检测算法通常包括以下两个步骤:1)程序源代码预处理。即将程序源代码进行标准格式化、注释和冗余空白字符 过滤、关键字标识符替换、常量替换、数据类型等价替换和统一大小写等。目前常用的预处理方法包括:基于String的方法、基于TOken的方法和基于 AGT (Abstract Grammar Tree,抽象语法树)的方法等。基于String的算法,即将程序源代码以行为单位分割成若干字符串的集合,每 个程序代码片段包含相邻的字符串,判断两两程序代码片段的字符串是否相同,再 根据程序代码片段相似度判断是否存在抄袭行为。该算法检测准确率不高,代表算 法有1995年B
7、aker提出的参数化匹配算法。基于TOkell的算法,即对程序源代码进行词法分析,生成TOkeIl序列,再对比 检测两段程序源代码的TOken序列中相同的片段。该算法效率很高,但准确度仍然 较低。基于AGT的算法,即利用工具对程序源代码进行词法语法分析,得到该段程 序源代码的抽象语法树,判断两段程序源代码的抽象语法树中的子树是否相似,再 根据相似子树的相似性判断相似度。该算法准确度较高,但冗余较大,效率较低。2)相似度计算。即对程序源代码预处理后,得到其对应的数据序列,再根据 两段程序源代码的数据序列进行相似度计算。目前常用的相似度计算方法有向量模 型法和字符串匹配算法两类,如点阵图法、序列匹
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 湖南省 大学生 研究性学习 创新 实验 计划 项目 报告
![提示](https://www.001doc.com/images/bang_tan.gif)