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