抄袭与查重¶
禁止抄袭
你提交到 GitLab 上的 所有代码 将被作为查重的依据,进行横向和纵向的交叉查重,代码库包括了本实验框架启用以来的所有代码。恶意篡改 Git Commit 时间也视为作弊(比如在 DDL 之后把时间调到 DDL 之前)。请三思而后行!
- 第六章 学术不端、违反学习纪律的行为与处分
- 第二十一条 有下列违反课程学习纪律情形之一的,给予警告以上、留校察看以下处分:
- (一)课程作业抄袭严重的;
- (二)实验报告抄袭严重或者篡改实验数据的;
- (三)期中、期末课程论文抄袭严重的;
- (四)在课程学习过程中严重弄虚作假的其他情形。
- 第二十一条 有下列违反课程学习纪律情形之一的,给予警告以上、留校察看以下处分:
请同学们三思而后行。
设置熔断措施:如果某一年出现抄袭同学往届代码比例超过阈值,则下一年替换作业内容。
下面是一些关于抄袭与查重的常见问题:
如何参考网上的代码?
按照下列步骤进行:
- 理解网上的代码,理解其工作原理
- 把代码复制到本地,对其进行修改或重构
-
在源码中按照如下格式标记:
// Adapted/Copied from <url> from <author name> on <date> // <brief description of what the code does>
如果原样复制了代码,并没有进行修改,则标记为
Copied
;如果在原代码的基础上做了修改,则标记为Adapted
。样例:
// Adapted from https://docs.rs/colored/latest/colored/ from @mackwic and @kurtlawrence on 2023-07-01 // A utility function to display something in colorful characters in terminal fn display_something() {}
-
在 HONOR-CODE 文件中添加如下内容:
我在 <date> 参考了 <author name> 在 <url> 编写的代码,引入到了 <code.rs> 代码中。
什么时候可以不标注来源:
- 多次引用同一份代码时,第一次必须标注,其余可以不标注
- 在第三方库文档中出现的常见用法,可以不标注
我可以参考哪些代码呢?
原则是:
- 不可以大篇幅地复制代码,除非某个特定问题只有唯一的解法,例如要绕过一个难以解决的 BUG,自己没有办法给出一个其他的解决方法
- 不可以复制同届或往届同学的直接对应作业的代码,即使同学的代码公开在网上
- 可以参考自己或者同学在其他课程中开发的代码,但是不能原封不动复制过来,需要针对作业内容进行修改
抄袭是怎么判定的?
我们首先将使用工具进行自动化查重,并根据结果与相关同学进行面谈,最终由课程教师给出判定。判定的标准是“代码的相似程度是否超出了(不交流具体代码的)正常范围”。由于“是否直接发送代码”是我们无法验证的行为,用这个标准处理是不现实的。对于“大范围交流某次作业的过多实现细节”或者“口述每一行、函数的每一个参数用法和形式”这样的情况,客观后果和“直接发送代码”并无区别。
这是希望同学们完全独立完成作业,不能交流吗?
我们依然持续鼓励同学间的交流和帮助,但直接发送代码(无论是否完整、是文本或截图)、直接帮助同学编写代码、以过细的粒度指导同学(如口述每一行、函数的每一个参数用法和形式,这样的行为极其容易导致大片重复)都是不可取的。
我完全独立地完成了作业,只是因为好心教了其他同学导致出现了代码雷同
非常感谢你为助教分担答疑任务,但我们不鼓励直接对代码形式进行教学。尤其考虑到具体实现会限制其他同学的思路,并不对同学培养解决问题的能力具有显著的作用。希望你下次可以把相应的文档发送给他,并且解释的时候尽量屏蔽自己具体实现细节。这对答疑的同学提出了更高的要求,但我们也相信这对双方都是更难但更有收获的方式。
我可以用 GitHub Copilot、ChatGPT 等人工智能的方法进行代码补全完成作业吗?
可以,但请仔细阅读AI 工具使用原则和场景,避免出现课程组不允许的行为,否则将可能以抄袭查重处理。