close

天,一個還在唸書的朋友問我個意見。
原來,老師出了個習題,要寫個模擬程式,得用當時熱門的Java程式語言寫出來。
有個同學在Sun的相關網站(Java的推行公司)找到個類似的程式,只要改改就OK了。
基於同胞愛或是吃好道相報的理由,這人通知了其他同學這個消息,於是大家都去找來觀摩。
等到交出作業的時候,老師發現了不對勁。
因為大家都參考同樣的來源,寫出來的程式說多像就有多像,當然有人寫出來的程式跟原本的參考體已經差很多,可是脈絡之間還是看得出相關性。
更慘的是,其中有人是直接copy and paste另外一個人的成品,這個馬腿就露大了。

老師發出通牒,說要"處理"這個抄襲事件。
最狠的下場,是可以開除,不過實務上頂多是期末分數給個F(Fail),這科當掉那個學生就算了。

我跟朋友說,我以前還在唸書的時候也發生過類似的情況,而最好的方法是誠實自白,請求老師的寬容。
況且我這朋友只是參考,改動的部份頗多,也不算是完全的抄襲。
即使如此,這種參考其他人的舉動,最好還是在程式寫個註解說明,像是一般論文的附錄會說到引用其他作品,就是同樣的道理。

後來他寫email跟老師說清楚,老師也就了解,沒對他怎樣。
那幾個copy and paste的同學,據說雖然沒有被喀嚓,可也只拿到了很低的成績。
畢竟學校還是得要賺錢,卡掉了學生,就少收了學費,划不來,只是懲罰還是一定要的就是了。

不過比起我碰到的那次事件,這算是小咖的.
故事就發生在我還唸電腦科學研究所(Computer Science,簡稱CS)的第二年,比我晚一個學期入學的學生裡,台灣來的數量從一個(就是我而已)變成十幾個.那次老師也是岀個習題,不同的只是程式的規模比較大而已。
因為這程式必須要連線到學校的機器上面測試,最簡單的方法就是直接在學校的網路裡寫,所以我們都留在機房裡對戰奮戰。



由於當時很傻很天真(註1),我比其他人早了些寫好,沒多久陸續也好幾個人完工,不過還有不少人碰上鬼打牆,怎麼寫都寫不出來。
同樣基於同胞愛的理由,我們先完工的幾個就留著讓還在趕工的人問問題。
我負責幫個學妹(註2),可是她毫無頭緒,我就拿出我的程式一行行解釋給她聽,讓她參考。

好不容易在期限之前趕出來,大家高興之餘決定好好慶祝:回家睡覺.
沒想到,出了大條事情.

上課的時候老師宣布,這次作業有許多人互相抄襲,有些根本是整篇copy,連「空白的地方和長度都一樣」,讓他很不高興,於是想了處理方式:
1. 讓人家抄程式的人必須把所有抄他程式的人找齊,在下次上課之前一起去找老師,然後向老師認錯
2. 讓人家抄的那個人,這個習題的分數會是60分,而抄他的那些人,一律零分
3. 要是人沒有找齊,只要是漏了一個,或是根本不承認,那麼這些人通通零分

這樣一講才知道,抄程式的人不只我們台灣人這群,還有其他國家的代表也玩了這招.
後來知道印度人那邊有兩組,大陸人那邊一組,看來還是亞洲人比較團結.

更狠的是,老師並沒有說有多少人和多少"組"有抄襲的行為.加上他所說的處理方式來看,他是要大家自首.
這其實是有點不合理的,譬如說A讓B抄了A的程式,可是B私下又讓D拿去抄,然後D在AB都不知情的情況下給了E,這樣的話A是不知道D和E有涉案的.

下課後大家都慌了,因為一開始寫出程式的,只有我和另外一個人A君,因為A君跟大部分的人在比較大的那個機房,所以除了我教的那學妹之外,其他人都是"參考"A君的版本,而且大部分的人都參考得非常徹底.
A君著急地找大家商量,而學妹就問我怎麼辦,原來最後學妹還是沒寫出來,只得改改我的程式,送出去交差.
我跟學妹說沒關係,就算她直接把我給她的程式交出去,也沒有問題.

很簡單:我讓學妹看的程式,是我寫的第一版,雖然也是可以達到老師要求啦,但是當時很傻很天真的我由於自大和自命不凡,覺得整體寫得不夠好,決定砍掉重練打掉重做,重寫了個第二版
我交出去的,當然是這個第二版
就算學妹大部分"借用"我的第一版程式,那也跟我交給老師的第二版完全不同,當然就沒有抄襲的問題。

雖然當時的我很傻很天真,該要有的擔心和防範於未然還是得有的:我怎麼可能把我的必殺絕招給傳授出去呢?當然是要給他藏拙的。
所以這場風暴,跟我就沒關係了.

A君就不一樣了,在這個時候他最緊張.
其他人跟他去認錯的話,分數註定是零分;但是不去找老師的話,同樣也是零分.既然橫豎都是沒分數,那為啥要著急?
但是原本可以拿不錯分數的A君,只要少找到一個人,他就也是零分.

更慘的,是剛剛我提到的散佈問題:有個抄他程式的台灣同學,不知道是要炫燿還是拉攏關係,居然把程式給了印度人,所以印度同學那邊有一組人馬抄的原稿,也是A君的程式.
可是,A君根本不認識那些印度人.台灣同學這邊因為彼此認識,雖然去或是不去找老師都是零分,至少還有點意願要幫A君,印度同學那邊可就沒這個革命感情了.

接下來的發展更勁爆,不過我沒確實證據就是了:
一個抄A君程式的人,自己去找了老師,跟老師說他才是原著作者,其他人是抄他的
不知怎地,老師採用了他的說法,於是後來才去找老師的A君,居然從正版被認成盜版,正室被打成偏房,苦主被說成兇手,真是「屋漏偏逢連夜雨,除卻巫山不是雲」.

最後故事怎麼結束我不知道,因為同學之間互相閃閃躲躲遮遮掩掩的,也就不好明問.
畢竟我總不能開宗明義就問:「上次你們那件事情怎樣了?」
而且大家都被寫不完的作業給累壞了,哪有時間去管其他人的閒事?

反正,每個人都順利畢業,拿到了學位.

在現實中,對於寫程式的人來說,能夠寫越少的codes越好,也就是要盡量去用別人已經寫好的東西,最好是根本不用寫,只要copy and paste.這樣對於程式碼的"再使用"(reuse),以減少程式開發的時間,甚至是個在開發程式的時候非常重要的前提.
可是在唸書的時候不能這樣,交作業的時候不能這樣,考試的時候不能這樣.
如果寫的是商業程式(就是要拿出去賣錢的),用到別人程式的部分要有適當的授權,該花錢買就得花錢,不然照樣不成.

有部電影【AntiTrust】,裡面影射比爾蓋茲(Bill Gates)的反派大佬,為了奪取其他人的程式碼,甚至不惜殺人.



後來我當助教,我就先跟學生約法三章:
1. 如果是參考別人的程式,那沒問題,可是要註解來源是哪裏哪個人或是哪個網站,同學之間交流也行,同樣只是寫明白就好.
2. 就算是"參考",也不要只是copy and paste,至少改些地方,像是A+B=C改成X+Y=Z之類的,這基本的誠意要有.
3. 既然是"參考",就要有自己的東西,整篇程式至少要50%是自己寫的.

即使如此,後來還是被我抓到好幾個沒照規定而只是copy and paste的學生,我整理了名單就交給老師去處理.
我沒權力,也不想當壞人.



看來古今中外,這種事情是不會根絕的.



附註:
1.『很傻很天真』跟可以早點寫出程式有啥關係?我也不知道,可是這句話好像蠻好用的,所以就這麼說了,請不必深究。
2.不是說我藉機表現要把妹,只是當時她的男友也還寫不出來,自身難保,坐在旁邊奮鬥中,所以我是被拱去教已經死會的學妹,並非飛來鴻福。


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 jackinnyc 的頭像
    jackinnyc

    傑克在紐約的蘋果報報

    jackinnyc 發表在 痞客邦 留言(4) 人氣()