代码查重

1. 代码查重

根据咱们自身情况,我在斯坦福大学代码查重系统Moss基础上弄了一个代码查重,已上线。所有同学的代码会进行一一匹配,以下是一个测试例子:

image-20220623165611491

Moss系统可以给出这两位同学的代码相似的行数(12行),重复代码占总代码的比例。

2. 判定谁抄袭谁

Moss给出的结果,没有判定谁抄袭谁。

我们这样处理,以文件的最后修改时间(modify time)为准。文件系统记录了一个文件的最后一次访问时间(access),最后一次修改时间(modify,改变文件内容),最后一次改变时间(change,改变i节点信息,如更改权限、所有者),举例如下:

root@jmu-cs:/home/u202021121055/os_exp/exp4_sync_pv# stat process_synchronization_pv.c
  File: process_synchronization_pv.c
  Size: 517             Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 920433      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 2058/u202021121055)   Gid: (201112/ class12)
Access: 2022-05-30 20:01:37.871111755 +0800
Modify: 2022-05-17 21:28:54.445252434 +0800
Change: 2022-05-17 21:28:54.453252551 +0800
 Birth: -

假设,同学1自己写了代码,同学2抄袭了同学1的代码。但同学1源码文件的修改时间比同学2晚,那么判定同学1抄袭同学2。因此,为了防止吃亏,牢记下列几点:

[!Warning]

  • 如果不确定自己的代码是否还需要修改,代码不要给其他同学(万一拿到你代码的同学先上传到服务器呢)
  • 自己代码都调试好了,上传到服务器,如果代码流露出去,你就不要再改代码了(否则你的修改时间在他人之后,你成了抄袭的人,离了大谱)
  • 也就是说,你让别人抄,你无罪,但你要保护好自己
  • 鼓励同学之间相互交流,但不鼓励你直接给人代码,你可以给TA讲讲思路,帮TA调试代码。

3. 重复比例多少判定为抄袭

取决于到时候的查重比例结果,目前暂定为:查重比例超30%,视为抄袭。

本文系Spark & Shine原创,转载需注明出处本文最近一次修改时间 2022-06-23 17:34

results matching ""

    No results matching ""