(改了标题吸引目标用户)
老师教课,学生上课,首先要讲明师生关系。 其次,就是要说明这门课的底线是什么。
我们假设所有人写作业都独立思考,认真实践,不断改进,勇于创新... 这个假设通常是不全面的, 还有很多学生想得是 “如何以最小的代价过了这门课”,这也无可厚非,但是最小的代价是什么呢?那就要谈谈底线了。 软件专业的作业有两类:
1) 文档(项目过程中的文档,分析总结文章,学术论文等)
2) 代码
我们分别谈谈 -
1)文档
大学生在写文档、论文的时候,有些是总结自己直接的经验,有些是引用别人的文献(间接经验),如果我们明确地说明各种资料的来源,这些都不是问题。 学术论文是建立在前人研究的基础上,软件开发要基于别人写的框架和各种模块上提供新的价值。 实事求是地说明各种引用,是做学问,做项目的基础。当然,大千世界,百花齐放,各种情况都会出现。
期末大家都要写 “软件工程课总结”, 抄袭的同学依然不少。 找到抄袭的文章也很容易, 拿一些有明显特征的句子,搜一下:
我最怕的就是计算机系的学生被别人说成是个带着厚眼镜的,只能够在电脑前编编程序
一模一样的句子和上下文至少 2008 年就有人写了, 2016年还是出现在很多同学的博客中。 所有写这写文字的同学, 都可以联合起来, 一起创业, 多爽, 大家都想到一块去了! 创业的公司名字可以叫 “抄袭大全”。 软件项目开发的各种文档, 也有人不假思索地照搬,十几年前的软硬件配置,也出现在2018年的文档中。 要求有 Windows NT, Pentium 133以上。 同学! 你们写的软件能跑在 Windows NT 上么?
对于这种抄袭的态度,也是百花齐放,值得收藏回顾的, 例如:
我们在学习和研究的过程中,要参考,借鉴别人的经验, 心得和结论,这是学习和研究的一部分,无可厚非。 在我们写论文的时候, 凡是引用别人的文献的地方,要明确地标注出来,要符合各种规定。 在写博客的时候,要求没有那么严格,但至少要写上原来文章的地址。 这样的要求太难么?
为此,我们要在软件工程课让大家锻炼一下:
请找到所有 (至少20篇) 有上面特征文字的文章, 列出作者的身份和学校, 并按照时间排序, 指出它们之间的抄袭关系,并采访至少一位作者。
希望展现的数据:
你用了什么搜索引擎来寻找文档 (必须多于一种搜索引擎,搜索引擎用得越多,分数就越多)?
作者姓名(网名),学校/专业,写作(抄袭)时间, 抄袭的源头, 至少采访一位抄袭者,采访他们,问他们当时抄袭的时候是怎么想的, 脑海里浮现了什么形象,现在作者(抄袭者)的情况(在哪里学习工作,是否已经走上人生巅峰,等等)。
这也是大数据的应用,大家不妨一试。
2)代码
大学生的代码作业有些是非常简单的几十行程序,即使这样,还有抄袭的, 请看别的大学同学关于代码抄袭的理解。
如果要做一个软件,不可避免地会用到别人的代码,有些是在别人代码的基础上改进,或者使用了别人的模块,或者克隆 (clone)了别人的代码仓库... 那怎么鉴别合理的使用和不合理的使用呢?
(请留言说说你们学校是怎么规定代码合理使用 vs. 抄袭的)
双方面的约束
按照规定办事,有时反而要解释很久,请看国科大老师的案例,所以我们最好一开课就让双方有一个契约关系。
这个约束也是双方面的, 如果老师对学生的作业敷衍了事,像下面这个例子, 这位老师的“师德”有多少?底线是否比学生高呢?