我的教师生涯曾经差点儿毁掉。曾经有那么一段时间,我想消极地对待教学工作,不想再像费脑筋设计实验,不想再想费力气批改实验,甚至不想用心上课。原因是对学生“抄袭”的失望与无助。那时我觉得我做的一切努力都是徒劳的,都被“抄袭”轻松地抹煞了。批作业时,觉得自己就像一个在办离婚手续的地方推销玫瑰花的傻子,不管自己多么认真地书写评语,屏幕那一端都是一个猥琐的面孔在嘲笑我的自以为是。这时,一个在加拿大留学的同学告诉我moss的存在,于是我得救了。
moss是专门为检测源代码抄袭而设计的,可以瞬间从数百份源代码中找出一对对的疑似抄袭,支持很多种编程语言,而且有很多非常贴心的功能。比如教师可以给出框架代码,学生程序中出现的框架代码会被忽略;可以设定n份学生程序中都出现的代码被自动忽略;有可视化程度非常好的结果显示。它还可以处理中文的纯文本文件。Car现在正搞的Duplication可以处理中文的doc和pdf,也是功德很高的一件事。
moss的客户端是用perl编的,只能在命令行使用。我做了它的moodle插件,使在moodle中调用moss变得非常简单。
moss只是反抄袭的一个必要条件。它只是刑侦过程的一部分,还必须有刑罚过程配合,才能收到效果。
moss给出的结果只能是参考结果,还需要人工审核。moss的结果中排名越靠前的,抄袭的嫌疑越大,但并不绝对。是否雷同,要综合考量作业内容,难点、要点,相似比例和代码行数等。
moss查不出捉刀代笔的。针对这种类型的抄袭,我设计了让TA和学生面对面评分的策略,通过直接询问,看学生是否能解释程序。就算学生是找人帮忙完成的,这种方法也能逼迫他去了解程序,一定程度上也促进了教学效果。这种方法还有一个附带效果,就是可以对每名学生做个性化指导、总结。
抄袭确认后,必须有惩罚,否则就是鼓励抄袭了。惩罚的策略我一直在不停地摸索,寻找最优解。现在觉得,基本找到了。
学生抄袭无非是想用最少的力气获得最大的分数。惩罚就要反着来,让他什么都得不到。所以,凡是抄袭,当此作业0分是必须的,是最公平的,容不得半点讨价还价的余地。但这样会造成一种“不抄,0分;抄,最坏也是0分,如果运气好没被雷,就不是0分了”的状态。所以,惩罚必须更重。我的方法是“抄袭当次及之前所有的作业成绩都清零”。这样的好处是越往后越不敢抄,尤其那些曾经侥幸漏网的抄袭者。
假设一门课有8次实验,占总成绩的50%。如果一个学生不幸在第6次实验被雷了,他通过考试的希望基本就渺茫了。为了挽救他,我设计了“期末考试达标,实验成绩恢复”的策略。比如承诺只要期末考试能考到80分以上,被连坐清零的实验成绩都恢复。如果他是个值得挽救的人,那么后面的时间,就一定会更加努力学习了。
反抄袭的一个负面效果,是会“害”一些立志改行的学生。他们可能有自己的理想与特长,但被机械的制度圈进了一个自己不喜欢的专业,去学一些没兴趣的课程。如果他成功混到毕业证,拿着文凭出去闯,很可能会改行成功,创造一番事业。反抄袭,使他们很难混,很可能会毁掉一个未来的人才。对此,应该把每次实验的及格线都设得比较低,较易达到。这种策略对后进同学的帮助和鼓励作用也是很大的。
反抄袭没有技术难度,工作量也不大,最难的是坚持。对此持反感态度的学生是占多数的,得顶住这个压力。待到期末时,学生们回想这一学期获得的,就会感激这份坚持了。
反抄袭是很复杂的,我帮同学改过程序,很简单的几个更改就可以不被发现,比如while和for循环的替换,不同语句顺序变化一下,等等,学生为了得分是不择手段的,
老师,我很佩服您的勇气和毅力,虽然抄袭只是最基本的诚信问题,但能做到这么好的也很让人钦佩了,一年年的教学的确很费神,虽然没听过你的课,但您给我的感觉是以学会为标准的,即使对抄袭很严厉。我想任何有廉耻的抄袭者都不会抱怨受到的惩罚。
反抄袭这条路很漫长,希望您能走下去,很多同学都是支持你的!
sunner信人啊,说晚上更新,就晚上更新
作为一个会在非专业课上抄袭的学生我也不好说什么……
不过我觉得您大可不必因为抄袭的问题如此沮丧,因为不只是大学的课堂上有这种不靠谱的事儿。而且学生抄袭抄到最后,一无所学是一定的,害的最终是自己。比起其他害人的道德沦丧,抄袭什么的不过也就是五十步……
工大学生最大的弱点,就是缺少主动性,只有较少的人能主动去做自己认为正确的事情,比如认真写作业,做个小程序玩,干干项目什么的。但工大学生个个都是基础很好,很聪明的,只要主动性上来了,就能无往不利。我所做的目的,就是逼迫那些有潜力和能力的人,必须去做正确的事,弥补他们主动性上的缺失。
唉,这可见sunner比应该做到的还认真负责一些
其实我觉得克服自己的懒惰挺难的- –
的确用心良苦,值得感激,不过并不很赞同。这样做是乎还是没有跳出老师逼着学生去学这样一个圈子,只不过换了一种或许更为有效的手法罢了。对于进入大学的学生来说,都是成年人了,而且现在社会,人越来越早熟。如果在大学还需要老师逼着去学,不能说不是一种悲矣。也许更多情况下是自己心里有这样一个算盘,知道哪些东西值得去做,知道哪些东西自己应当去做。如果一个自己觉得不值得去做的而上面又非要要求去做的,抄袭只是一种应付方式而矣。大学老师与初高中老师的不同从我理解上应当是尽力帮助想把这门课学好的人学好,而非强迫每个人不管喜不喜欢这门课的人都必须学好。其实我觉得花精力去防抄袭,不如花精力去优化课程,去设计更好的实验,让教材上的基础知识与最新的工业实践结合的更紧密,让学生真正从内心中喜欢上这门课,愿意学。
虽然我不赞同抄袭,但是您所说的“花精力去防抄袭,不如花精力去优化课程”未免有些片面了,在我周围的同学里,有好一部分同学学习主动性还是不高,由于从小到大一直过着一种填鸭式的学习生活,很难会专门去钻研某一门课程,不可否认,兴趣也是很重要的。对他们来说,吸引人的课至多只能是不在逃课目录的,上课听差不多不至于考前开始才学的,而Sunner的这份“狠招”,在很大程度上逼着他们去做,哪怕是借用别人的思路也还是得自己动手。要感到悲哀就只能悲哀我们的前十年吧。
PS:昨天看sunner说要更新博客,等到十点有事出去,回来断电~~~杯具
最早的时候,我也是这么单纯的想法。它的问题有这么几条:
1. 学生兴趣各异,不可能让所有人都感兴趣。甚至想找到大多数人的兴趣点,都很难
2. 假定找到了这个兴趣点,把它真正地在课程中实施,也是一件很难的事情,不是所有教师都会愿意费这个劲
3. 假定教师已经做得很好了,但并不是所有学生都能意识到这是一件很有趣的事情,值得亲自去做。
反抄袭,能让学生主动也好、被逼也好,可以亲身去体会一下,从而发现其中的乐趣,或者发现真的很无趣。获得乐趣了,那很好,以后他就会主动了;没发现乐趣,也很好,尽早调整自己的人生规划,别浪费时间。
当个好老师可真操心!
moss拯救了我。你让我知道了moss。你就是我的救世主!
第一次来你的博客。也不知道你是哪个学校的老师,但是说实话,大学里,这么为教学操心的老师,真的不多见了。你是好样的!
强烈支持sunner反抄袭
给Sunner提个小建议。有些时候抄袭确实是因为时间有限,比如重要的事情突然发生,或者几个作业或项目的deadline重合了,“被迫”走了“捷径”。这种情况下如果能给一个灵活一点的延期,可能一部分人就会在这部分时间里独立完成。
比如可以每门课给一个学生4个”grace day”,就是说这个学期的作业你一共可以晚交4天,而成绩不会受到任何影响。
这样既体现出对学生的尊重,也确实能帮助他们应对突发情况。对于老师就要求每次公布答案或统计成绩时充分考虑到grace day的影响。
p.s 上面只是一点在国外学习的见闻,见笑了。
这是个不错的建议,我得想想怎么在管理流程里体现出来
其实我也是个学生,只不过我是一个普通 2A 学校的学生,之前参加了 GDCPC ,荣誉奖… 恰好,中大的郭嵩山给了我们学校一个参加 ACM ICPC 宁波赛区一个名额,说是自己学校的三支队都有了,多了一个名额,给了我们的老师,刚号我们队在学校参加的在线网络赛校内第一名,所以郭嵩山老师就把名额给了我们队,所以我们有幸参加了去年的宁波赛区赛,那是我最喜欢的赛事了,不过不材啊,才做了两道题,又是荣誉奖。呵呵,都是因为自己懒,平时不练习,现在我们教练对我印象也不是很好了,因为自己太懒了,现在大三了,非常的想写出一个自己OJ, Google了很多次之后,认识了您, 今天终于忍不住,给您留了第三个留言,我很喜欢您这种老师,在我们学校,这种老师的数量就目前我的认识还是处于小于等于1的阶段,悲哀啊
原来你才大三啊,从你前两个留言的提问里,一点儿看不出来。在我们学校,大三时能这样问问题的学生数量就目前我的认识还是处于小于等于XX的阶段。