摘要

在程序设计类课程的教学过程中,对学生代码的分析和检测能够有效反映学生的课堂学习行为和知识点掌握情况。学生书写速度的不同会导致相同周期内程序代码长度不一致,对从时间维度提取代码文件的特征会有一定的影响。本文提出了一种用于检测代码相似度的改进型SimHash算法。首先,将学生代码以时间序列进行收集,统计代码的有效行数和字符数量,并结合整个课堂讲授周期数据计算代码有效性权重;其次,对学生代码进行动态时间规整,使学生代码在相同的周期内长度一致;随后,提取代码文件的SimHash特征,根据代码有效性权重对特征进行加权处理并降维,得到改进型SimHash特征;最后,根据代码文件的改进型SimHash特征,计算代码相似度。实验表明,本文提出的算法能够有效计算代码的相似度。

  • 出版日期2023
  • 单位常州信息职业技术学院