本发明专利技术公开了基于程序语言教学实践平台的代码抄袭检测方法及系统,该方法包括:获取两个作业代码,基于作业代码内容进行匹配对比,确定两个作业代码的相似度;对所述相似度进行处理,获取两个作业代码的最终代码抄袭检测结果,所述对所述相似度进行处理包括将第一参数作用于所述相似度数据,所述第一参数基于学生在编辑作业代码时的编辑操作特征生成。本发明专利技术结合具体的语言教学实践使用场景,结合学生在编辑作业代码时的编辑操作特征,对代码文本的相似度进行进一步整合,使得与教学场景相结合的作业代码抄袭结果更加精准。结合的作业代码抄袭结果更加精准。结合的作业代码抄袭结果更加精准。
【技术实现步骤摘要】
基于程序语言教学实践平台的代码抄袭检测方法及系统
[0001]本专利技术涉及程序语言教学
,具体涉及基于程序语言教学实践平台的代码抄袭检测方法及系统。
技术介绍
[0002]随着社会科技的进步和发展,智能教学也更多的应用于各大高校之间。在实践教学场景中,由于学生数量远远多于教师数量,导致教师的作业批改时间在整个教学时间中占比较大,而现有的教学实践平台虽然提供了作业批改功能,但是教师往往还需要花费很多时间用于排查学生的作业代码抄袭情况。学生在线提交作业后,教师需要对每一份作业进行审阅,而作业代码抄袭的现象在教学过程中屡禁不止,因此本专利技术用于批改作业前,对提交的作业做代码抄袭对比,得出可能的作业代码抄袭样本,以减少教师排查时间,减轻教师负担。
[0003]已有的专利技术多是对代码或加工后的代码进行语义、特征分析,对变量、函数重命名、重构、修改代码格式特征进行检测,可以大致分为两个阶段:转换代码格式和确定代码相似度。首先将代码经过无关项剔除,以某种算法将代码包装成待对比代码,其次对待对比代码进行相似度比对,最终获得代码相似度对比结果。
[0004]现有的作业代码抄袭检测方案只是简单的对作业代码进行相似度对比检测,没有结合具体的使用场景,导致对比检测结果脱离实际,缺乏现实意义,更不具有连续性。所以现有的作业代码抄袭检测方案仅仅是从代码相似度进行分析,并不结合学生的实际行为,如日常表现、作业提交时间等,所得数据程式化,供给教师的参考意义不大。
技术实现思路
[0005]针对上述现有技术存在的问题,本专利技术提供了一种基于程序语言教学实践平台的代码抄袭检测方法及系统,不仅完成了学生作业代码相似度的检查,更融合学生的作业表现及长期表现,提高最终抄袭结果的可信度。
[0006]为达到上述目的,本申请实施例的技术方案是这样实现的:
[0007]一方面,本申请实施例提供基于程序语言教学实践平台的代码抄袭检测方法,包括:
[0008]获取两个作业代码,基于作业代码内容进行匹配对比,确定两个作业代码的相似度;
[0009]对所述相似度进行处理,获取两个作业代码的最终代码抄袭检测结果,所述对所述相似度进行处理包括将第一参数作用于所述相似度数据,所述第一参数基于学生在编辑作业代码时的编辑操作特征生成。
[0010]在一种可选的实施例中,所述第一参数的生成还基于学生的历史抄袭行为特征和教师对学生的抄袭可能性评分。
[0011]在一种可选的实施例中,所述第一参数的获取包括:
[0012]基于学生在编辑作业代码时的编辑操作特征,计算学生编辑作业过程的第一抄袭可信度参数;
[0013]基于学生的历史抄袭行为特征,计算学生的第二抄袭可信度参数;
[0014]基于教师对学生的抄袭可能性评分,计算学生的第三抄袭可信度参数;
[0015]基于第一抄袭可信度参数、第二抄袭可信度参数、第三抄袭可信度参数融合得到第一参数。
[0016]在一种可选的实施例中,所述学生在编辑作业代码时的编辑操作特征包括:
[0017]键盘输入操作、拷贝和粘贴操作、代码静态分析操作、作业调试操作、作业运行操作、作业保存操作、作业提交操作;
[0018]所述第一抄袭可信度参数a3为:
[0019]其中,学生拷贝粘贴代码次数p1,程序语言教学实践平台对作业代码所做的静态分析结果p2,是否做过在线调试运行p3以及在线调试运行结果p4,作业提交时间p5。
[0020]在一种可选的实施例中,所述对所述相似度进行处理,获取两个作业代码的最终代码抄袭检测结果X(M,N),包括:
[0021]X(M,N)=Y(M,N)S(A
M
,A
N
),其中,M为一个作业代码,N为另一个作业代码,Y(M,N)为作业代码M和N的相似度,A
M
和A
N
分别为作业代码M和N的第一参数。
[0022]在一种可选的实施例中,所述获取两个作业代码,包括:
[0023]基于所有学生提交的作业代码,通过作业对应的测试例对代码进行通过测试;
[0024]获取测试结果,将测试结果相同的作业封装在同一个代码文件中,以相互独立的命名空间分隔,并附加学生信息作为空间名;
[0025]在同一代码文件中获取两个学生提交的作业代码。
[0026]在一种可选的实施例中,所述基于作业代码内容进行匹配对比,确定两个作业代码的相似度,包括:
[0027]对两个作业代码封装在两个相互独立的工作空间中;
[0028]将作业代码进行格式转化和无关数据清洗;
[0029]将作业代码中文本不同但语义相同的词句编译为相同文本,获取中间代码;
[0030]对两个中间代码通过LCS函数进行相似度对比,获取两个作业代码的相似度。
[0031]再一方面,本申请实施例提供基于程序语言教学实践平台的代码抄袭检测系统,包括:
[0032]作业代码文本相似度分析模块,用于获取两个作业代码,基于作业代码内容进行匹配对比,确定两个作业代码的相似度;
[0033]作业代码抄袭检测模块,用于对所述相似度进行处理,获取两个作业代码的最终代码抄袭检测结果,所述对所述相似度进行处理包括将第一参数作用于所述相似度数据,所述第一参数基于学生在编辑作业代码时的编辑操作特征生成。
[0034]又一方面,本申请实施例还提供一种电子设备,所述电子设备包括:
[0035]处理器;
[0036]用于存储处理器可执行指令的存储器;
[0037]其中,所述处理器通过运行所述可执行指令以实现上述基于程序语言教学实践平台的代码抄袭检测方法。
[0038]又一方面,本申请实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被处理器执行时实现上述基于程序语言教学实践平台的代码抄袭检测方法的步骤。
[0039]本专利技术的基于程序语言教学实践平台的代码抄袭检测方法及系统,具备如下有益效果:
[0040]1、本专利技术是为语言教学实践课程提交作业的场景程序化,针对学生提交的课程作业统一由程序做初步筛选,通过作业代码抄袭检测算法来完成抄袭对比检测,为教师批改作业节省人工评审时间,提高作业批改效率,增加作业代码抄袭的检测准确率,遏制不良学习习惯,提高教学质量。
[0041]2、本专利技术不同于现有技术中仅通过代码文本的相似性分析确定是否抄袭,在对代码文本的相似性计算后,还结合具体的教学实践使用场景,结合学生在编辑作业代码时的编辑操作特征,比如复制和粘贴操作等、作业提交时间等因素,对代码文本的相似性进行进一步整合,使得与教学场景相结合的作业代码抄袭结果更加精准。
[0042]3、本专利技术对代码文本的相似性进行进一步整合,还加入了教师对于学生的抄袭行为可能性评判和学生的历史抄袭行为特征,统筹后得到最终的抄袭结果,使得与教学场景相结合的作业代码抄袭结果更加精准。
附图说明...
【技术保护点】
【技术特征摘要】
1.基于程序语言教学实践平台的代码抄袭检测方法,其特征在于,包括:获取两个作业代码,基于作业代码内容进行匹配对比,确定两个作业代码的相似度;对所述相似度进行处理,获取两个作业代码的最终代码抄袭检测结果,所述对所述相似度进行处理包括将第一参数作用于所述相似度数据,所述第一参数基于学生在编辑作业代码时的编辑操作特征生成。2.根据权利要求1所述的基于程序语言教学实践平台的代码抄袭检测方法,其特征在于,所述第一参数的生成还基于学生的历史抄袭行为特征和教师对学生的抄袭可能性评分。3.根据权利要求2所述的基于程序语言教学实践平台的代码抄袭检测方法,其特征在于,所述第一参数的获取包括:基于学生在编辑作业代码时的编辑操作特征,计算学生编辑作业过程的第一抄袭可信度参数;基于学生的历史抄袭行为特征,计算学生的第二抄袭可信度参数;基于教师对学生的抄袭可能性评分,计算学生的第三抄袭可信度参数;基于第一抄袭可信度参数、第二抄袭可信度参数、第三抄袭可信度参数融合得到第一参数。4.根据权利要求3所述的基于程序语言教学实践平台的代码抄袭检测方法,其特征在于,所述学生在编辑作业代码时的编辑操作特征包括:键盘输入操作、拷贝和粘贴操作、代码静态分析操作、作业调试操作、作业运行操作、作业保存操作、作业提交操作;所述第一抄袭可信度参数a3为:其中,学生拷贝粘贴代码次数p1,程序语言教学实践平台对作业代码所做的静态分析结果p2,是否做过在线调试运行p3以及在线调试运行结果p4,作业提交时间p5。5.根据权利要求2所述的基于程序语言教学实践平台的代码抄袭检测方法,其特征在于,所述对所述相似度进行处理,获取两个作业代码的最终代码抄袭检测结果X(M,N),包括:X(M,N)=Y(M,N)S(A
M
,A
N
),其中,M为一个作业代码,N为另一个作业代码,Y(M...
【专利技术属性】
技术研发人员:李兆鹏,顾建平,王柏,
申请(专利权)人:安徽中科国创高可信软件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。