連惠群
(福建警察學(xué)院 福建省福州市 350007)
抄襲作業(yè)在大學(xué)中是很普遍的現(xiàn)象,特別是計(jì)算機(jī)程序類的課程,學(xué)生拷貝程序代碼提交作業(yè)或?qū)嶒?yàn)是很容易的,可是檢測有難度,如果不加以有效識別和制止,對學(xué)生的學(xué)習(xí)效果和老師的工作量都有不利影響,也會(huì)助長同學(xué)們不誠信的不良風(fēng)氣。一些專家和學(xué)者提出了一些檢測算法。本文主要通過誠信調(diào)查,根據(jù)誠信調(diào)查數(shù)據(jù)和上機(jī)以及考試數(shù)據(jù),利用決策樹分類算法,來推測學(xué)生提交的完成度數(shù)據(jù)的真實(shí)性,也通過這樣的方式,一是大致確定每位學(xué)生實(shí)驗(yàn)的完成度,二是樹立同學(xué)們誠信意識,三是因?yàn)樘崆案瑢W(xué)們說明會(huì)做數(shù)據(jù)分析,讓同學(xué)們畏于數(shù)據(jù)的壓力呈現(xiàn)真實(shí)的狀態(tài)。這樣,讓同學(xué)們勇于誠信,樂于誠信,也讓老師比較真實(shí)地了解同學(xué)們實(shí)驗(yàn)的真實(shí)情況,教與學(xué)就會(huì)形成良性循環(huán)。
關(guān)于檢測程序作業(yè)抄襲的相關(guān)研究,存在一些檢查程序抄襲的軟件,國外有JPlag[1]、Plague、YAP3 等,國內(nèi)的學(xué)者也提出一些方法,如張海騰[2]開發(fā)了一個(gè)作業(yè)相似性檢測系統(tǒng),實(shí)現(xiàn)了對作業(yè)文檔的對比和檢測,賴曉晨[3]提出了一種基于XML 的源程序型作業(yè)自動(dòng)抄襲檢測方法。傅得強(qiáng)[4]提出兩種基于抽象語法樹的源代碼抄襲檢測方法等。這些研究大多是通過直接檢測相似性的算法。本文以另一個(gè)角度,根據(jù)誠信調(diào)查數(shù)據(jù)(調(diào)查的內(nèi)容是實(shí)驗(yàn)完成度)以及考試數(shù)據(jù),利用決策樹分類算法,推測實(shí)驗(yàn)完成度與考試成績的吻合程度,以此推測學(xué)生實(shí)驗(yàn)完成度與考試成績的真實(shí)性,這給解決程序設(shè)計(jì)類課程作業(yè)抄襲問題另辟了一個(gè)思路,也為學(xué)生誠信度檢驗(yàn)另辟了一條路徑。
以筆者講授的《數(shù)據(jù)結(jié)構(gòu)與算法》課程為例,整個(gè)課程一共有13 個(gè)實(shí)驗(yàn),筆者主要基于兩個(gè)考試(一次是期中上機(jī)考試,一次是期末筆試考試),邀請同學(xué)們進(jìn)行了每個(gè)實(shí)驗(yàn)誠信調(diào)查,根據(jù)這三份數(shù)據(jù)進(jìn)行分析。具體前期工作及數(shù)據(jù)收集包括兩個(gè)部分:一是期中考試的選題及成績,二是對每個(gè)實(shí)驗(yàn)的完成度調(diào)查。如下:
圖1:期中抽題
圖2:選題情況
圖3:完成度調(diào)查界面
(1)其中,期中的上機(jī)考試,考慮到某一學(xué)期大部分同學(xué)的實(shí)際情況(編程基礎(chǔ)比較弱),考試內(nèi)容選擇之一是學(xué)生在提前給定的10 道題目中抽題(這10 道就是實(shí)驗(yàn)3-7 中的內(nèi)容,因?yàn)榭紤]到學(xué)生基礎(chǔ)比較弱,可選擇進(jìn)行兩輪考試),如圖1所示。系統(tǒng)數(shù)據(jù)庫會(huì)記錄學(xué)生抽題范圍及抽到題情況,圖2 是學(xué)生們第一次選擇情況的部分截圖。我們把這部分?jǐn)?shù)據(jù)以及得分與實(shí)驗(yàn)完成度調(diào)查進(jìn)行對照,可以發(fā)現(xiàn)期中考試可能存在的不誠信現(xiàn)象或?qū)嶒?yàn)完成度虛假情況。
(2)在學(xué)期中,邀請同學(xué)們進(jìn)行完成度填寫,如圖3所示,數(shù)據(jù)庫截圖如圖4所示。接著我們提取圖4 中的每個(gè)實(shí)驗(yàn)的完成度,以便進(jìn)行后續(xù)的分析。
圖4:完成度調(diào)查結(jié)果
圖5:原始部分?jǐn)?shù)據(jù)
根據(jù)第3 點(diǎn)的前期工作,以及半期考和期末考試的成績(完成度除以10),整合數(shù)據(jù)如圖5所示,我們利用決策樹分類算法,把某個(gè)實(shí)驗(yàn)的完成度和期中成績?yōu)榈谝唤M(看該生具體抽到的是哪道題),實(shí)驗(yàn)1-13 的完成度和期末成績?yōu)榈诙M,其中期末和期中成績分為四個(gè)等級,小于60 為標(biāo)簽1,大于等于60 且小于70為標(biāo)簽2,大于等于70 且小于80 為標(biāo)簽3,大于等于80 為標(biāo)簽4。以第二組數(shù)據(jù)為例,處理后的數(shù)據(jù)部分截圖如圖6所示。
本環(huán)境基于Spark 環(huán)境,1 臺(tái)Master,2 臺(tái)Slave。配置后的環(huán)境截圖如圖7所示。
決策樹多元分類算法(DecisionTree Multi Class Classfication)預(yù)測在多個(gè)特征條件不同組合下的準(zhǔn)確率。以第2 組數(shù)據(jù)為例,我們把每個(gè)實(shí)驗(yàn)的完成度值作為特征feature,成績等級作為標(biāo)簽Label。部分代碼及結(jié)果如圖8所示。預(yù)測值和真實(shí)值相差兩個(gè)等級的,就要引起重視。如果預(yù)測值比真實(shí)值高比較多,則該學(xué)生的實(shí)驗(yàn)完成度的真實(shí)性需考量,如果真實(shí)值比預(yù)測值高很多,則學(xué)生的期中或期末考試可能存在不真實(shí)的行為,也需要考量。如圖紅色區(qū)域的記錄要引起注意,需要再觀察其他方面的表現(xiàn)。
本文主要通過誠信調(diào)查,根據(jù)誠信調(diào)查數(shù)據(jù)和上機(jī)以及考試數(shù)據(jù),利用決策樹多元分類算法,來推測學(xué)生提交的完成度數(shù)據(jù)的真實(shí)性和學(xué)生考試結(jié)果的真實(shí)性。本文搭建了Spark 環(huán)境,根據(jù)分類算法得出的預(yù)測結(jié)果,如果與真實(shí)結(jié)果相差較大,則需引起重視,可能是學(xué)生實(shí)驗(yàn)完成度不真實(shí)(也就是實(shí)驗(yàn)可能存在抄襲),也可能是學(xué)生考試結(jié)果不真實(shí),這為解決程序設(shè)計(jì)類課程作業(yè)抄襲問題另辟了一個(gè)思路,也為學(xué)生誠信度檢驗(yàn)另辟了一條路徑。由于時(shí)間關(guān)系,本文沒有對細(xì)節(jié)進(jìn)行進(jìn)一步的研究,這將是下一步的工作。
圖6:處理后的部分?jǐn)?shù)據(jù)
圖7:環(huán)境搭建截圖
圖8:運(yùn)行結(jié)果