- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于代码相似度的隐含学生行为模式挖掘.pdf
第6 期 计 算 机 教 育
90 2017 年6 月10 日 Computer Education
教育与教学研究
文章编号 :1672-5913(20 17)06-0090-05 中图分类号:G642
基于代码相似度的隐含学生行为模式挖掘
徐雅静,李 通,刘玉涛
(北京邮电大学 信息与通信工程学院,北京100876)
摘 要:针对学生在编程中出现的代码拷贝问题,提出用一种改进的分段最长公共子序列匹配算法分
析代码相似度,进一步挖掘隐藏在相似代码背后的学生之间合作关系以及行为模式,对于如何了解、
干预和避免学生抄袭行为的扩散以及正确评价学生的编程能力进行积极有益的探索。
关键词:代码相似度;行为模式挖掘;合作关系挖掘;LCS(大于3个,小于8个)
0 引 言 效检测代码的相似度。
计算机编程类课程一直以来面临一个难以解 1 代码相似度检测
决的问题——代码拷贝问题,该问题严重影响教
师对于教学中学生程序设计能力和编程实践水平 计算机教学中代码算法复杂度及代码长度相
的评估,进而影响教师有效针对学生编程情况的 对有限,对于同一题目会有大量学生进行算法设
一系列教学设计。随着计算机科学在人工智能、 计和编程。学生常用的10 种抄袭手段包括逐字
程序理解等领域的发展,各种代码相似度检测的 拷贝、更改注释语句、更改空白区域、重新命名
方法相继提出,如基于Token 比较的方法[1] 、基 标识符、改变代码块的顺序、改变代码块中语句
[2] [3] 的顺序、改变表达式中操作符和操作数的顺序、
于文本检测的方法 、基于语法树 的方法、基
于依赖关系图的方法[4] 等,这些方法在检测类 更改数据类型控制逻辑、增加冗余的语句和变
型、时间复杂度等方面都存在不同程度的局限 量、用等价的控制结构替换原有控制结构[6] 。我
性[5] 。因此,我们提出一种针对轻量级代码检 们通过分析学生代码,发现其中较为高级的代码
测的可忽略间隙的分段最长公共子序列 (gapped 拷贝形式 “用等价的控制结构替换原有控制结
and segmented longest common sequence, GS-LCS ) 构”应该不属于抄袭。基于上述分析,我们提出
算法,该方法考虑了学生代码拷贝的习惯,能有 的GS-LCS 算法步骤如图1 所示。
预处理 标准化 Hash GS-LCS 算法 计算相似度
源文件
初始化 生成匹配表 回溯 更新
图 1 代码相似度检测流程
1.1 预处理、标准化、Hash Hash 3 个步骤将源代码转换为Hash 数字序列,
代码相似度检测流程中的预处理、标准化、 进行CS-LCS 算法的匹配,如图2 所示。
基金项目: 国家自然科学基金资助项目。
第一作者简介:徐雅静,女,副教授,研究方向为机器学习和模式识别,xyj@bupt.edu.cn。
万方数据
第6 期
文档评论(0)