代码查重
1. 代码查重
根据咱们自身情况,我在斯坦福大学代码查重系统Moss基础上弄了一个代码查重,已上线。所有同学的代码会进行一一匹配,以下是一个测试例子:
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%,视为抄袭。