壽周翔+魯文科
隨著計(jì)算機(jī)的大量普及,高校的日常管理效率顯著提高,但在教學(xué)管理上,效率改變還不是十分明顯,特別是針對(duì)計(jì)算機(jī)專業(yè)學(xué)生的作業(yè)評(píng)分還是完全人工的方式,教師需要花大量的時(shí)間和精力在作業(yè)批改上,且評(píng)分主觀性大,效率低。如何改變這一現(xiàn)狀呢?能不能采用算法來(lái)提高評(píng)分的客觀性,減少主觀性呢?針對(duì)上述問(wèn)題,筆者提出了借助教育云平臺(tái)(ITbegin)的作業(yè)自動(dòng)評(píng)分技術(shù),以期幫助教師減少作業(yè)批改時(shí)間,降低評(píng)分主觀性,提高工作效率。
ITbegin云教育平臺(tái)作業(yè)自動(dòng)評(píng)分
ITbegin是一個(gè)云教育平臺(tái),它已集成了編程知識(shí)庫(kù)、在線編程、在線運(yùn)行、實(shí)時(shí)互動(dòng)等多項(xiàng)要素。同時(shí),該平臺(tái)已具備整合在線作業(yè)自動(dòng)評(píng)分的兩個(gè)條件:①能支撐各種語(yǔ)言編譯。②能實(shí)現(xiàn)程序的運(yùn)行并取得結(jié)果。因此,我們只要實(shí)現(xiàn)評(píng)分的正確性、客觀性,便能完成作業(yè)的自動(dòng)評(píng)分。所以,我們需要建立一個(gè)評(píng)分模型來(lái)驗(yàn)證評(píng)分的正確性、客觀性。
評(píng)分模型
從正確性、客觀性出發(fā),代碼運(yùn)行正確、代碼運(yùn)行結(jié)果與答案結(jié)果匹配、代碼與答案代碼匹配、做作業(yè)時(shí)的敲鍵次數(shù)、做作業(yè)時(shí)的運(yùn)行次數(shù)等五個(gè)指標(biāo)會(huì)影響評(píng)分。
評(píng)分模型設(shè)計(jì)可分為嚴(yán)格型、標(biāo)準(zhǔn)型、寬松型三種,教師可以根據(jù)不同的評(píng)分模型進(jìn)行評(píng)分。
嚴(yán)格型的評(píng)分模型必須代碼運(yùn)行正確,且代碼運(yùn)行結(jié)果與答案結(jié)果完全匹配(如表1)。
標(biāo)準(zhǔn)型的評(píng)分模型必須代碼運(yùn)行正確,降低代碼與答案代碼匹配的權(quán)重,提高代碼與答案代碼匹配的權(quán)重(如表2)。
寬松型的評(píng)分模型中,代碼運(yùn)行正確不是唯一標(biāo)準(zhǔn),所以會(huì)提高敲鍵次數(shù)、運(yùn)行次數(shù)的權(quán)重(如表3)。
作業(yè)自動(dòng)評(píng)分的技術(shù)分析
評(píng)分模型各指標(biāo)需要使用各種算法去匹配,這里主要介紹運(yùn)行結(jié)果算法和代碼相似度算法。
1.運(yùn)行結(jié)果算法分析
由于程序運(yùn)行的結(jié)果一般都以字符串的形式出現(xiàn),所以可以將代碼運(yùn)行的結(jié)果字符串與答案運(yùn)行的結(jié)果字符串進(jìn)行相似度比較。運(yùn)行結(jié)果算法常采用距離算法來(lái)比較作業(yè)的運(yùn)行結(jié)果與答案的運(yùn)行結(jié)果。
距離算法是指從原串轉(zhuǎn)換到目標(biāo)串所需要的最少插入、刪除和替換的操作次數(shù)。它們的距離越大,說(shuō)明它們?cè)讲煌?/p>
將字符串1轉(zhuǎn)成字符串2的距離算法說(shuō)明如表4所示。
距離算法過(guò)程:
(1)如果字符串1或字符串2長(zhǎng)度為0,則返回另一個(gè)字符串的長(zhǎng)度。
(2)初始化(字符串1長(zhǎng)度+1)*(字符串2長(zhǎng)度+2)的矩陣m,矩陣的下標(biāo)從零開始。
(3)掃描整個(gè)矩陣,如果str1 [i]==str2[j],則temp=0,否則temp=1,然后矩陣m[i][j]=(上方值+1,左邊值+1,左上方值+temp)三者的最小值。
(4)掃描完后,返回矩陣m的最后一個(gè)值是它們的距離。
(5)相似度的計(jì)算公式:相似度=1-(距離/兩字符串的最大長(zhǎng)度)。例如,abc和abcd的相似度為1-(1/4)=0.75。
2.代碼相似度算法分析
由于代碼中可能存在英文或中文的單詞,所以筆者在代碼相似度算法中,基于Lucene實(shí)現(xiàn)了中英文分詞。Lucene提供了幾個(gè)常用的分詞器,如StandardAnalyzer(標(biāo)準(zhǔn)分析器,去除標(biāo)點(diǎn)符號(hào))、IKAnalyzer(一個(gè)獨(dú)立的開源中文分詞工具包,提供了語(yǔ)義級(jí)的分詞,更加智能)等。
相似度計(jì)算可以用向量空間模型,向量可以解釋為一組坐標(biāo),一個(gè)坐標(biāo)表示空間中的一個(gè)點(diǎn),而向量本身是從空間原點(diǎn)到該點(diǎn)的向量。兩個(gè)向量的夾角越小,方向就越一致,相似度就越高,夾角的計(jì)算用余弦公式。
相似度算法過(guò)程:
(1)字符串分詞(如上頁(yè)表5)。
(2)合并分詞集合并計(jì)算每個(gè)詞的相似度(值為0~1之間,如上頁(yè)表6)。
(3)計(jì)算各點(diǎn)的向量(如上頁(yè)表7)。
(4)用余弦定理計(jì)算相似度。
相似度=sum/Math.sqrt (s1*s2)=0.73706。
作業(yè)自動(dòng)評(píng)分的技術(shù)實(shí)現(xiàn)
作業(yè)自動(dòng)評(píng)分技術(shù)采用Java語(yǔ)言編寫及實(shí)現(xiàn)。
1.運(yùn)行結(jié)果算法實(shí)現(xiàn)
核心代碼如上頁(yè)圖1所示。
2.代碼相似度算法實(shí)現(xiàn)
核心代碼如圖2所示。
作業(yè)自動(dòng)評(píng)分技術(shù)的優(yōu)點(diǎn)
(1)高效率。作業(yè)由原來(lái)的人工評(píng)分變?yōu)橛?jì)算機(jī)自動(dòng)評(píng)分,大大縮短了教師批改作業(yè)的時(shí)間,提高了他們的工作效率。
(2)客觀性。作業(yè)自動(dòng)評(píng)分以評(píng)分模型為標(biāo)準(zhǔn),評(píng)分較客觀,適用于所有學(xué)生。
(3)公平性。作業(yè)自動(dòng)評(píng)分減少了人為的主觀因素,提高了評(píng)分的公平性。
作者簡(jiǎn)介:壽周翔(1974—),男,浙江省諸暨市人,碩士研究生,講師,主要研究方向?yàn)槿斯ぶ悄堋?/p>
基金項(xiàng)目:浙江省教育技術(shù)研究規(guī)劃課題(項(xiàng)目編號(hào):JB049);浙江省高等教育教學(xué)改革項(xiàng)目(項(xiàng)目編號(hào):jg2015244)。