陳彤兵
(復(fù)旦大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,上海 201203)
程序設(shè)計(jì)課程中作業(yè)抄襲問題的防范
陳彤兵
(復(fù)旦大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,上海 201203)
針對(duì)抄襲作業(yè)對(duì)教和學(xué)兩方面造成嚴(yán)重影響的問題,分析學(xué)生抄襲作業(yè)的原因,提出防范抄襲的方法,并說(shuō)明這些方法的有效性。
抄襲的原因;判斷抄襲的標(biāo)準(zhǔn);查抄襲;防范抄襲;學(xué)習(xí)效果
抄襲作業(yè)是教學(xué)中的一個(gè)老問題,在程序設(shè)計(jì)課程中,以計(jì)算機(jī)文件形式提交的作業(yè)更容易復(fù)制,一定程度上加劇了這個(gè)問題。如果不能及時(shí)發(fā)現(xiàn)抄襲,不能有效制止該現(xiàn)象,對(duì)學(xué)生的學(xué)習(xí)效果和教師的教學(xué)工作都有較大的負(fù)面影響。雖然存在一些檢查程序抄襲的軟件[1],但很少有文獻(xiàn)討論根據(jù)抄襲行為的原因進(jìn)行預(yù)防的綜合措施。
在多年的程序設(shè)計(jì)教學(xué)中,筆者發(fā)現(xiàn)一直有學(xué)生抄襲作業(yè)的情況。在期末考試時(shí),經(jīng)常發(fā)現(xiàn)有些學(xué)生不能很好地掌握某些知識(shí)點(diǎn),而這些問題在其平時(shí)作業(yè)中并沒有體現(xiàn)出來(lái),仔細(xì)比對(duì)平時(shí)作業(yè),往往能發(fā)現(xiàn)抄襲的情況,嚴(yán)重的時(shí)候甚至有超過30%的學(xué)生抄襲作業(yè)。如果對(duì)該現(xiàn)象不加制止,將會(huì)對(duì)學(xué)生的學(xué)習(xí)造成嚴(yán)重影響。首先,對(duì)抄襲的學(xué)生而言,沒有真正學(xué)到知識(shí),卻養(yǎng)成了抄襲的壞習(xí)慣,對(duì)將來(lái)的學(xué)習(xí)和工作會(huì)產(chǎn)生不良影響;其次,對(duì)其他不抄襲的學(xué)生會(huì)產(chǎn)生不良的示范作用,甚至誘導(dǎo)其他學(xué)生也參與抄襲;最后,學(xué)生的抄襲行為也影響了教師的教學(xué)工作,使教師對(duì)教學(xué)重點(diǎn)、教學(xué)效果等產(chǎn)生誤判。
如何制止抄襲?常見的方法有在上課時(shí)反復(fù)強(qiáng)調(diào)不要抄襲,對(duì)發(fā)現(xiàn)的抄襲行為嚴(yán)加懲罰,以儆效尤,但實(shí)際效果往往有限。為了能更好地防范抄襲行為,需要從各方面作進(jìn)一步改進(jìn)。首先需要改進(jìn)的是怎樣有效識(shí)別抄襲行為。簡(jiǎn)單依靠人工的排查費(fèi)時(shí)費(fèi)力,只能發(fā)現(xiàn)很少的抄襲行為,能采取的防范措施也很有限,且缺乏針對(duì)性。采用軟件輔助的方法進(jìn)行比較全面的作業(yè)抄襲檢查,從中篩選出可能抄襲的作業(yè),然后人工判斷是否是抄襲,這樣可以迅速縮小檢查的范圍,更有效地發(fā)現(xiàn)抄襲行為。另外,還要通過各種溝通渠道聯(lián)系相關(guān)學(xué)生解釋作業(yè)相似的原因。
這些學(xué)生反饋的結(jié)果可以分為4種情況:①不回復(fù);②不承認(rèn),說(shuō)不知道是什么情況;③承認(rèn),道歉;④說(shuō)明參考了相似的來(lái)源,例如網(wǎng)上或參考書[23]上的相似題目,略作修改后作為答案提交,導(dǎo)致作業(yè)相似。
根據(jù)學(xué)生的回復(fù),再次分析這些作業(yè),對(duì)于最后確認(rèn)是抄襲的情況,可以歸納出導(dǎo)致抄襲的原因:①本意不想抄襲,但學(xué)習(xí)有困難,作業(yè)量大且時(shí)間緊,所以抄襲應(yīng)付作業(yè);②對(duì)學(xué)習(xí)的內(nèi)容不感興趣,不想學(xué);③想學(xué)且沒有大的學(xué)習(xí)困難,但偶爾因?yàn)檩^忙,抱著不會(huì)被發(fā)現(xiàn)的僥幸心理抄襲作業(yè)。
上述分析說(shuō)明抄襲作業(yè)的學(xué)生其實(shí)也有實(shí)際困難,除了簡(jiǎn)單的懲罰外,如果能給予他們有效的幫助,也許能更好地防范抄襲行為。
2.1 明確規(guī)則
由于學(xué)習(xí)常常是從模仿開始的,特別在程序設(shè)計(jì)課程最初的一兩次作業(yè),往往以模仿教材中的例子為主,這時(shí)大多數(shù)學(xué)生提交的程序都是相似的。因此,雖然是在學(xué)期剛開始就強(qiáng)調(diào)不要抄襲,但真正開始抄襲通常在第2周作業(yè)以后。
從模仿開始學(xué)習(xí),一定程度上模糊了模仿和抄襲的界限。要防范抄襲,首先要明確判斷抄襲的標(biāo)準(zhǔn),把學(xué)習(xí)中正常的模仿與抄襲區(qū)分開來(lái)。為此,在教學(xué)中強(qiáng)調(diào)從主客觀兩個(gè)方面防范抄襲:在主觀方面,強(qiáng)調(diào)學(xué)生要嚴(yán)格要求自己,自覺做到不抄襲,也不為其他同學(xué)的抄襲提供方便;在客觀方面,明確判斷作業(yè)抄襲的標(biāo)準(zhǔn),如果發(fā)現(xiàn)兩個(gè)學(xué)生提交的作業(yè)在數(shù)據(jù)結(jié)構(gòu)和算法邏輯上都很相似,就認(rèn)為很可能是抄襲。如果參考了其他學(xué)生的思路甚至源代碼,但在數(shù)據(jù)結(jié)構(gòu)和算法邏輯上有所改進(jìn),即使有局部的相似,也不認(rèn)為是抄襲。按照這個(gè)思路,針對(duì)程序設(shè)計(jì)課程的特點(diǎn),筆者開發(fā)了一個(gè)簡(jiǎn)單的檢查抄襲程序,主要根據(jù)程序之間的字符串匹配程度和程序控制流的相似程度判斷抄襲的可能性。這個(gè)程序只進(jìn)行了初步的篩選,最終還是要通過人工根據(jù)學(xué)習(xí)的進(jìn)度和作業(yè)本身的特點(diǎn)較為確切判斷是否抄襲。
2.2 增強(qiáng)學(xué)習(xí)的主動(dòng)性
考慮到本課程的受眾大多是低年級(jí)學(xué)生,學(xué)習(xí)任務(wù)較為繁重,且剛從中學(xué)進(jìn)入大學(xué),在學(xué)習(xí)、生活等方面還沒有完全適應(yīng),因此可以適當(dāng)減少作業(yè)的量,確保中等學(xué)習(xí)水平的學(xué)生每周課后2小時(shí)左右能完成當(dāng)周作業(yè)。
其次,增加學(xué)習(xí)內(nèi)容的趣味性,例如將音樂、畫圖、動(dòng)畫甚至簡(jiǎn)單的游戲融入教學(xué)內(nèi)容中。教學(xué)過程中也可以結(jié)合一些與學(xué)生專業(yè)相關(guān)的內(nèi)容,例如對(duì)醫(yī)學(xué)專業(yè)學(xué)生,作業(yè)中可以加入與醫(yī)學(xué)相關(guān)的內(nèi)容,如各種健康指數(shù)的計(jì)算等。
2.3 增加抄襲的難度
針對(duì)不同的抄襲來(lái)源,應(yīng)設(shè)置抄襲的障礙。盡量設(shè)計(jì)全新的作業(yè)題,即使是傳統(tǒng)的作業(yè)題,也可以通過修改題目的具體要求,使學(xué)生無(wú)法在網(wǎng)上、參考書、往屆作業(yè)中找到答案。即使找到相似的,也需要理解后改寫才能達(dá)到作業(yè)的要求。例如一道常見的傳統(tǒng)題目“輸入一個(gè)10進(jìn)制整數(shù),要求按相反順序輸出這個(gè)數(shù)各位上的數(shù)字”。考慮到可以在網(wǎng)上和其他習(xí)題集中找到這道題的答案,而且有部分學(xué)生會(huì)采用getchar()函數(shù)把輸入的整數(shù)轉(zhuǎn)換成字符串后倒序輸出,不符合題目要求。因此,將題目改為“輸入2個(gè)10進(jìn)制整數(shù),求和,并按相反順序輸出該和各位上的數(shù)字”。雖然這是一個(gè)簡(jiǎn)單的修改,但對(duì)程序設(shè)計(jì)的初學(xué)者來(lái)說(shuō),就算找到了原題的答案,也需要一番理解和修改才能符合題目要求。
最后,要反復(fù)強(qiáng)調(diào)在學(xué)生之間的互相幫助是受鼓勵(lì)的,但要求限制在程序的思路層面,或者調(diào)試方法層面,而不是在源代碼層面,這樣在一定程度上增加了學(xué)生得到其他同學(xué)程序源代碼的難度。
2.4 適當(dāng)?shù)膽土P措施
對(duì)于抄襲的懲罰,不同學(xué)校、不同教師有不同方法,輕的有口頭警告,重的包括扣分,扣分也有輕重之分,在筆者教學(xué)的班級(jí)曾經(jīng)有對(duì)抄襲本次作業(yè)記0分的懲罰,但由于純靠人工篩查,只能發(fā)現(xiàn)極少數(shù),不能起到應(yīng)有的警示作用。另一方面,考慮到針對(duì)程序設(shè)計(jì)的初學(xué)者,過于嚴(yán)厲的懲罰并不合適,抓抄襲并不是目的,關(guān)鍵是要改變學(xué)生的學(xué)習(xí)習(xí)慣,促進(jìn)他們獨(dú)立思考。較為理想的方法是及時(shí)準(zhǔn)確地發(fā)現(xiàn)抄襲,及時(shí)提醒,對(duì)不聽從勸告的學(xué)生再予以懲罰。規(guī)定前2次抄襲只進(jìn)行警告而不扣分,第3次被發(fā)現(xiàn)抄襲則說(shuō)明該學(xué)生主觀上有抄襲意圖,這時(shí)將其之前所有被發(fā)現(xiàn)的抄襲作業(yè)進(jìn)行扣分。經(jīng)過一個(gè)學(xué)期的實(shí)踐,總的來(lái)說(shuō),主觀上故意抄襲的學(xué)生還是少數(shù),而且由于采取了上述各種措施,到目前為止,只有極個(gè)別學(xué)生被發(fā)現(xiàn)抄襲3次以上。雖然表面上懲罰措施并不嚴(yán)厲,但也正因?yàn)槿绱?,在跟學(xué)生溝通時(shí),學(xué)生往往能講真話,承認(rèn)抄襲,并說(shuō)明抄襲的真實(shí)原因。
圖1是2016年春季學(xué)期到5月下旬某班程序設(shè)計(jì)課程中發(fā)現(xiàn)的抄襲數(shù)量的變化情況,由于評(píng)判標(biāo)準(zhǔn)相對(duì)穩(wěn)定,因此這些數(shù)據(jù)可以比較充分地說(shuō)明上述措施的效果。
圖1 應(yīng)用防抄襲方法后某班作業(yè)抄襲數(shù)量的變化情況
第n周上課時(shí)教師布置第n周的作業(yè),作業(yè)提交截止時(shí)間是第n+1周課前,要在第n+1周課后才能檢查提交的第n周作業(yè),然后做出應(yīng)對(duì)措施,包括在第n+2周向發(fā)現(xiàn)的第n周作業(yè)中可能抄襲的學(xué)生發(fā)出詢問郵件,并在第n+2周課上提出警示,這些警示的效果往往要在第n+1周作業(yè)甚至第n+2周作業(yè)中才能看到。此外,由于第1周作業(yè)較簡(jiǎn)單,第2周作業(yè)才開始篩查抄襲。在發(fā)現(xiàn)第2周作業(yè)中有5%左右抄襲后,在第4周上課時(shí)以第2周作業(yè)為例說(shuō)明判斷抄襲的規(guī)則。由于在第3周作業(yè)中發(fā)現(xiàn)了更多的抄襲情況,從第5周開始,檢查完每一周作業(yè)后都通過電子郵件向抄襲的學(xué)生發(fā)出詢問。從圖1中看到,抄襲的情況逐漸減少,達(dá)到了預(yù)定的減少抄襲的目標(biāo)。
從圖1中觀察到一個(gè)有趣的現(xiàn)象,就是第5周發(fā)出電子郵件詢問后,第5周作業(yè)抄襲的情況并沒有多大緩解,第6周作業(yè)的抄襲量則達(dá)到了一個(gè)峰值,然后才逐漸下降。分析原因,第4、5、6周的作業(yè)量和作業(yè)難度并沒有明顯變化,與有關(guān)學(xué)生交流,也不能得到合理的解釋。期末的統(tǒng)計(jì)結(jié)果顯示整個(gè)學(xué)期在總?cè)藬?shù)約80人的班級(jí)中共有6名學(xué)生抄襲2次,有3名學(xué)生抄襲3次。相較往年抄襲行為逐漸蔓延的情況,這個(gè)結(jié)果說(shuō)明抄襲行為受到了有效的遏制。
為減少學(xué)生抄襲作業(yè)而采取的一系列方法,從效果看,確實(shí)起到了防范抄襲的作用。但這些措施的最終目標(biāo)不僅僅是防范抄襲,更為重要的是,學(xué)習(xí)困難的學(xué)生在學(xué)期初期就被識(shí)別出來(lái),教師和助教能夠及時(shí)為他們提供幫助,從而有助于整體上提高班級(jí)的學(xué)習(xí)水平。
從上述過程看,雖然大學(xué)生大多數(shù)已經(jīng)年滿18歲,但學(xué)習(xí)中教師的監(jiān)督和及時(shí)的提醒還是必需的。然而過于嚴(yán)厲的懲罰措施也許會(huì)有一些副作用,例如會(huì)導(dǎo)致一些學(xué)生不承認(rèn)自己的抄襲行為,也會(huì)使一些學(xué)生拒絕與其他學(xué)生進(jìn)行正常的學(xué)習(xí)討論。
[1] [1] Bowyer K W, Hall L O. Experience using "MOSS" to detect cheating on programming assignments[EB/OL]. [2016-05-25]. http://www3.nd.edu/~kwb/nsf-ufe/1110.pdf.
[2] 夏寬理, 趙子正. C語(yǔ)言程序設(shè)計(jì)[M]. 北京: 中國(guó)鐵道出版社, 2013.
[3] 夏寬理, 趙子正. C語(yǔ)言程序設(shè)計(jì)上機(jī)指導(dǎo)與習(xí)題解答[M]. 北京: 中國(guó)鐵道出版社, 2013.
(編輯:孫怡銘)
1672-5913(2017)02-0004-03
G642
上海市科技發(fā)展基金項(xiàng)目(13dz2260200,13511504300)。
陳彤兵,男,講師,研究方向?yàn)閿?shù)據(jù)庫(kù)、軟件工程,tbchen@fudan.edu.cn。