我先描述一下這次事件的具體通過。昨天3月15號的晚上十點,是第四次做業的deadline。在15號以前,只有五位同窗提交了做業,而在臨近deadline的這幾個小時內密密麻麻地提交了二十多份做業。和第三次做業同樣,我會去github上把各位的代碼clone下來看看(就像各位會看看個人同樣),這是棟哥搞博客教學的目的,能讓咱們之間有交流的機會,甚至可以領略其餘學長、甚至是業界大牛的風采。同窗們的做業當中,有bug的我還給他們提出了意見(例如鬱楊的博客下面就有我提的意見)。html
當時我看同窗們的代碼,有讓我比較震驚的事情發生,有的同窗的一些代碼與個人幾乎如出一轍。git
例如,接下來兩張圖是我寫的。程序員
這下面是一些同窗的代碼。github
我發下面這張打過馬賽克的圖片,主要的目的是想告訴大家,我內心有譜。算法
在看到第一份「雷同」的時候,我卻是以爲我能幫助到他人,自我感受還不錯。可是接連幾組的雷同代碼出如今個人面前,我坐不住了。我看了這幾組「借鑑」了個人代碼的同窗們的博客,只有愷翔同窗在博客中明確的標註了有參考個人代碼,其餘的人並無提到,甚至還說這是本身想出來的思路。網絡
因此,我在班羣裏說了這麼一句話。app
很讓我難過的是,到目前爲止,大部分「借鑑」了個人代碼卻沒有標註的人尚未來找我說明。反卻是讓一些只是單純地看了我博客的人以爲很差意思來向我道歉。框架
我真的以爲,有點悲哀的。函數
我也是重新手走過來的,在以前,我遇到一些問題的時候,我也很但願有人能來幫助我。若是真的有人能幫到我了,我會很感激他們。此次能有緣分和你們作同窗,我想,既然有這個機會幫助到你們,我就會盡最大的努力提供我能提供的幫助。工具
我確實有點生氣,也把這件事情跟幾個朋友傾訴了。有的人跟我說乾脆之後你把做業寫好等到deadline以前再發。說實話這不是個人風格,我並不想把什麼事都堆到deadline以前一點點時間再作,那樣或許會爲了及時完成而應付致使做業質量降低。相反,我每次整理一篇博客大概都會花一兩個小時甚至更久的時間。發完以後,我還會從頭至尾看幾遍,字斟句酌,生怕我哪裏寫的不通順,可能讓人看不懂;生怕哪裏的語義表達不清,或許會產生誤導……我對本身整理博客和寫的代碼有一個要求,那就是能讓看我博客的各位看得懂!但是很諷刺的是,我費盡心思寫出的博客,費盡心思寫出可讀性高的代碼,確實可讀性高了,因此大家也就很輕鬆地看懂,很輕鬆地拿去用了(個人方法並非最好,我以爲王源、鬱楊作的都比我好,但有可能,個人代碼是最好借鑑的)。
還有一位朋友建議我只發博文不傳代碼,或者博客上鎖,deadline以前再解鎖。這有違個人心裏:我不想提防個人同窗們,相反,我很想幫助獲得大家。知識須要學習而且分享,那纔是你們寫博客的意義,纔對得起棟哥的苦心。並且我一直以爲,主動學習比被動學習更有效果,因此我常常樂於爲他人講解困惑,在主動爲他人解惑時,也能讓本身的水平提升。我向來不是藏着掖着的人,好久以前作過的各類筆記有人來找我要我也就給他們了。但我以爲,免費的纔是最貴的。那些筆記,是我本身整理的,我本身的東西。直接向我要筆記的,每每是爲了應付考試臨時抱佛腳,我也不以爲他們能從中學到什麼東西,或者整理出本身的東西。相比之下,我更喜歡的是可以來和我一塊兒探討問題的同窗,那樣纔是我欣賞的態度。
或許有的人以爲,我很小氣,我太神經質,我是傻逼之類的,我不會去妨礙大家這樣想。我並不想表面上裝做「和和睦氣」,那不是我趙暢的爲人,我只是想作我本身心裏認爲對的事情。我幫助別人也不是爲了讓別人對我感恩戴德,而是大家這樣子作(「借鑑」)並非表明個人博客幫助了大家,相反,我會以爲是我害了大家!今天因爲臨近deadline,因此以爲在網上抄一份代碼也無所謂,那麼考試的時候也能做弊,寫論文、作實驗的時候也能夠造假了?!不要以爲我是在危言聳聽,信譽是一我的最重要的東西,是須要用一生去積累的。如臨深淵,如履薄冰!(看看國家的徵信制度吧,只要你失去了本身的信用,那麼之後買房買車,貸款什麼的就別想了,夠你吃一壺。)
我很感謝思泳同窗可以直面此次的問題,知錯能改善莫大焉。我很樂意爲你解答你的疑惑。你提到了:
而對於不關鍵代碼,……複製粘貼也算是抄襲的話,那就是不可理喻的了。
例如百度一下冒泡算法,就會發現不少種方法,若是說咱們學會了其中一種方法,而在以後要用到這種方法發微博就要說明出處的話,那是不可能的。……做爲一名程序員或學生,應該要全理解這段代碼而後能在脫離網絡的狀況下寫出來,複製粘貼是能夠的,只是一種學習過程,固然,你不這麼作如今也沒有任何懲罰,只是這樣自欺欺人是必定要在之後付出代價的
就算你認爲這段代碼不關鍵,但那是他人的工做成果。若是你自認爲引用一下無所謂,那麼請標明你的引用來源,更況且你「引用」過來是爲了完成做業,做業的目的是爲了讓你學習,而不是什麼壓榨你的時間的存在,因此請認真對待做業。若是看了別人的思路有啓發,那很不錯,但最好仍是寫本身的東西。
你舉的冒泡排序的算法做爲例子,我卻是以爲沒有什麼問題,我對於加粗的部分尤爲贊同。然而這兩件事情是不能夠相提並論的,它們的屬性不一樣。你能夠經過百度冒泡算法來學習算法怎麼寫,但你不能夠冠冕堂皇地借鑑別的同窗的代碼,這是有關於學術誠信的事情。
若是這種觀點不對的話,而且你的觀點是全部程序員公認而非某我的的我的觀點話,請告訴我,我必定會改正。
最近我在學習CSAPP,我會去CMU的課程網站上使用他們的學習資料。在看他們的的ppt時,有一些東西讓我很是的震驚。沒錯,就是震驚,只有這個詞能形容我看到如下這個頁面時候的感覺。
Academic Integrity,學術誠信。在這門課尚未正式開講以前,CMU使用了長達十頁的ppt篇幅介紹關於學術誠信的重要性。先學作人,再學其餘知識。其中包括的內容有
我以爲咱們中國的大學有一點理念確實落後於國外的大學,就是關於學術誠信。諸位應該不多有在大學時上過的課,老師有專門爲你們科普學術誠信的內容把?到了期末考,做弊什麼的現象家常便飯,甚至不少畢業論文的內容也被稱爲「學術垃圾」。下面我對上面幾個內容翻譯一些CMU課程條例中的規定,但願你們可以有所思考
如下都來源於CMU ICS 2017春季課程的PPT和課程條例,我是渣翻譯,還請你們上網站看原文
Firstly,Ignorance is not an excuse!
不被容許的使用他人信息(use)的行爲:
1.剽竊代碼,包括複製、上網搜索、從新輸入(注:看着別人的代碼重打一遍)、窺視他人文檔和代碼。
2.重用原先的課程或者網絡上的代碼或解決方案。
不被容許的使用本身信息(supply)的行爲:
1.分享代碼(注:我不反對咱們的課程形式,只是但願你們自覺)
2.口頭爲他人描述代碼(注:這裏指的是描述具體的代碼段)
3.爲他人提供很是細節的指導(注:providing detailed directions,本身意會爲何這個是做弊吧)
哪些行爲不是做弊,甚至受到鼓勵?
1.幫助他人在如何使用各類工具方面,包括但不限於系統、網絡、編譯器、調試器。
2.幫助他人關於高層次的設計問題(注:Helping others with high-level design issues only,比方說,探討整個問題的框架,是容許的。若是須要討論的問題要用代碼來描述,那就不是高層次的設計問題)
3.幫助他人關於高層次的debug(Helping others with high-level (not code-based) debugging. 例如:你有一個流程圖,但思路受阻,能夠請教他人,他人指出你流程圖中有一個流程不對)
4.向老師和助教請求幫助。使用老師或助教或課程提供的代碼和頁面。
特別地,在PPT中,還特別提到This is OK,Googling a man page for fputs。若是你某個函數不會用,是能夠去查找它的用法的。
違規的後果
(注:截取幾條)
AIV:Academic Integrity Violation,每一個在CMU的大學生若是由於做弊或者誠信問題受處處分會記上一個AIV。
共勉
最後,因禍得福焉知非福。起碼說明個人代碼和博客寫的仍是很好的,可以讓你們看得懂。還有就是,很感謝幾位支持個人朋友。
推薦幾個連接給你們: