(改了標題吸引目標用戶)
老師教課,學生上課,首先要講明師生關系。 其次,就是要說明這門課的底線是什么。
我們假設所有人寫作業都獨立思考,認真實踐,不斷改進,勇於創新... 這個假設通常是不全面的, 還有很多學生想得是 “如何以最小的代價過了這門課”,這也無可厚非,但是最小的代價是什么呢?那就要談談底線了。 軟件專業的作業有兩類:
1) 文檔(項目過程中的文檔,分析總結文章,學術論文等)
2) 代碼
我們分別談談 -
1)文檔
大學生在寫文檔、論文的時候,有些是總結自己直接的經驗,有些是引用別人的文獻(間接經驗),如果我們明確地說明各種資料的來源,這些都不是問題。 學術論文是建立在前人研究的基礎上,軟件開發要基於別人寫的框架和各種模塊上提供新的價值。 實事求是地說明各種引用,是做學問,做項目的基礎。當然,大千世界,百花齊放,各種情況都會出現。
期末大家都要寫 “軟件工程課總結”, 抄襲的同學依然不少。 找到抄襲的文章也很容易, 拿一些有明顯特征的句子,搜一下:
我最怕的就是計算機系的學生被別人說成是個帶着厚眼鏡的,只能夠在電腦前編編程序
一模一樣的句子和上下文至少 2008 年就有人寫了, 2016年還是出現在很多同學的博客中。 所有寫這寫文字的同學, 都可以聯合起來, 一起創業, 多爽, 大家都想到一塊去了! 創業的公司名字可以叫 “抄襲大全”。 軟件項目開發的各種文檔, 也有人不假思索地照搬,十幾年前的軟硬件配置,也出現在2018年的文檔中。 要求有 Windows NT, Pentium 133以上。 同學! 你們寫的軟件能跑在 Windows NT 上么?
對於這種抄襲的態度,也是百花齊放,值得收藏回顧的, 例如:
我們在學習和研究的過程中,要參考,借鑒別人的經驗, 心得和結論,這是學習和研究的一部分,無可厚非。 在我們寫論文的時候, 凡是引用別人的文獻的地方,要明確地標注出來,要符合各種規定。 在寫博客的時候,要求沒有那么嚴格,但至少要寫上原來文章的地址。 這樣的要求太難么?
為此,我們要在軟件工程課讓大家鍛煉一下:
請找到所有 (至少20篇) 有上面特征文字的文章, 列出作者的身份和學校, 並按照時間排序, 指出它們之間的抄襲關系,並采訪至少一位作者。
希望展現的數據:
你用了什么搜索引擎來尋找文檔 (必須多於一種搜索引擎,搜索引擎用得越多,分數就越多)?
作者姓名(網名),學校/專業,寫作(抄襲)時間, 抄襲的源頭, 至少采訪一位抄襲者,采訪他們,問他們當時抄襲的時候是怎么想的, 腦海里浮現了什么形象,現在作者(抄襲者)的情況(在哪里學習工作,是否已經走上人生巔峰,等等)。
這也是大數據的應用,大家不妨一試。
2)代碼
大學生的代碼作業有些是非常簡單的幾十行程序,即使這樣,還有抄襲的, 請看別的大學同學關於代碼抄襲的理解。
如果要做一個軟件,不可避免地會用到別人的代碼,有些是在別人代碼的基礎上改進,或者使用了別人的模塊,或者克隆 (clone)了別人的代碼倉庫... 那怎么鑒別合理的使用和不合理的使用呢?
(請留言說說你們學校是怎么規定代碼合理使用 vs. 抄襲的)
雙方面的約束
按照規定辦事,有時反而要解釋很久,請看國科大老師的案例,所以我們最好一開課就讓雙方有一個契約關系。
這個約束也是雙方面的, 如果老師對學生的作業敷衍了事,像下面這個例子, 這位老師的“師德”有多少?底線是否比學生高呢?