原文丨NY Times
编译丨温璐菲
普渡大学的H. E. Dunsmore教授给班上的学生布置了一个简单的作业,要求学生写出可以从本机访问另一台电脑上的网页的代码。然而,教授发现班里两名学生作业中,有近100行一模一样的代码。这究竟是巧合,还是舞弊?
作为一位经验丰富的计算机科学教授,Dunsmore在仔细检查了他们的作业后,发现了确凿的证据:
boolean done = true;
while (!done) {
证据就是这个!done。感叹号“!”指的是否定“not”,那么这个程序翻译过来就是“not true”,就让程序忽视了接下来的代码,导致出错。在一个450人的班级中,只有他们两犯了这个致命的错误。

Dunsmore先生说:“这是他们之间存在抄袭现象的有力证据,之后,两名学生都承认了错误。”
全国范围内,大学生对计算机科学课程的热情日益高涨,他们认为,这是获得Facebook或者Google这样的大公司,以及估值百万的创业公司的职位的敲门砖。然而,这股热潮也带来了不容小觑的副作用:高校中的高科技抄袭现象愈演愈烈,学生们从自己的朋友那里或者网络上直接剽窃代码。
来自加州大学伯克利分校的电子工程和计算机科学学院的Randy H. Katz教授表示:“关于这个现象,学院内部以及业界都有诸多讨论。”在一年里,在他带的一个700个学生的班级中,有100人左右被指违反了课程准则,抄袭代码。
现在,教授计算机科学的教授会在每个课程的开头严肃给出禁止抄袭的警告,而且会使用软件来标记抄袭情况。他们也揭露了许多疑似抄袭的例子。
在布朗大学,去年违反学术准则的49个案例中,有超过半数的都是在计算机科学学科作弊的。
即使在Google、Snapchat和无数互联网翘楚的创始人的母校——斯坦福大学, 2015届计算机科学班级中,20%的学生都有过疑似作弊的行为。
哈佛大学的Computer Science 50已经成为了该校的品牌课程,有自己的T-Shirt,有视频课程,还有一大批在线观众。然而,在去年秋季,该班级里仍有超过60名学生被指控学术不诚信。
在采访中,教授和学生表示,原因其实很明显。
对于参加课程的某些学生来说,编程还是很有难度的。学生要花费很多时间在课程作业上,绞尽脑汁,但是互联网上(GitHub)却早已经有了学长学姐们上传的每个难题的正确答案。
Harvard CS50 课堂
Jackson Wagner在2015年上了哈佛大学的上述CS课程(他未被指控抄袭)。他表示:“学生们花费大量时间,挣扎着完成习题集,而另一个唾手可得的选项就是从互联网上轻松复制下来。这就是人们抄袭的原因了。”
程序员之间的合作精神鼓励共享代码,但是在课堂中,这种行为是无法被接受的。教授们也允许学生们讨论问题,但是不可以分享代码,这项规定让“作弊”的定义更加模糊了。
耶鲁的执行委员会上也承认在去年秋天,有五名学生被指控抄袭代码(虽已撤诉)。
德语教授兼委员会主席Paul North说:“通常来说,那些规则太复杂了,相比之下,写代码显得非常简单了。”
在普渡大学,作弊的处罚可能只是那次作业得分为0,或者期末考试的等级下降一等。情节更严重或者屡犯会导致挂科,甚至停学。 
在许多高校,计算机科学课程已经变成了学术不诚信的重灾区。但是许多计算机科学的教授坚决否认自己的学生更容易作弊。近年来,许多其他的学科里也出了许多作弊丑闻,包括哈佛大学的政府学以及达特茅斯大学的体育、宗教和伦理课程。
虽然对于大多数人来说,编程差不多算是一门外语,但是抄袭的定义确实由英文写成的。有时候,当代码执行的是常规的任务,或者实在无法用其他方法呈现,仅几行代码雷同是可以接受的,但是除此之外的情况就需要警惕了。
布朗大学的计算机科学副主席Thomas Deoppner表示,抄袭者可能会为了掩盖自己的行为,把一些词用同义词换掉,比如把NULL换成0,或者是把原作者给变量命的名换成自己的。他举了个例子:
struct visit_list node;
node.row = row;
node.col = col
node.next = NULL;
抄袭这段代码的人可能会这样写:
struct rooms_visited room;
room.r = r
room.c = c
room.link = 0
通常情况下,反作弊软件会识破这些伎俩。Dr.Aiken开发的软件MOSS可以检测软件的相似性;英国公司Codio开发的软件可以检测学生的打字习惯,关于代码来源的问题会随时跳出来。
David J. Malan
哈佛CS50的教授David J. Malan引入了“后悔条款”,在72小时内承认自己作弊的学生仅会得到作业评级下降的惩罚,除非再犯,学生们不会有更严重的后果。
但是去年秋天,参加CS50课程的655名学生中,竟然有60名学生被指作弊,站上了荣誉法庭。Malan教授表示,这个现象的原因之一就是教师们批改作业的标准比以前更严格。他还表示,因为学生可以使用后悔条款,当学生不珍惜这一权利的时候,教师们在把学生送上荣誉法庭的时候压力也减小了。
两名哈佛学生表示他们很熟悉学生的作弊套路,并且匿名提供了一个大胆的例子:曾经有一名学生提交了前些年(并非去年秋天)CS50所教的一个PHP代码作为自己的作业。
一些学生表示,由于教授很鼓励学生一起讨论问题,所以合理讨论和不适当抄袭之间的界限非常微妙。“关于学生到底能从外界得到多大程度的帮助,其实是个灰色区域。”哈佛计算机协会的主席Javier Cuan-Martinez表示。
而Malan教授却在一封邮件中指出,课程大纲的指导准则中其实有明确的规定:当你在寻求帮助的时候,你可以把你的代码给别人看,但是你不可以参考别人的代码。Malan教授在邮件中写道:“一旦越过了这条线,你就违规了”。

后台回复“资源”即可下载海量免费学习资源
你可能错过了:
继续阅读
阅读原文