李今花
摘 要:C語言課程考試系統中的題型分為單項選擇、填空、程序設計、程序改錯和程序填空,根據每種題型的特點,其評分方法是不相同的。應根據題型特點提出不同的評分策略與約束。
關鍵詞:考試系統; 題型策略
中圖分類號:TP311.52 ? ? ? ? ? ? 文獻標識碼:A ? ? 文章編號:1006-3315(2019)06-177-001
C語言具有功能豐富、表達能力強,可移植性好的特點,該課程特點是注重操作、注重實踐,但傳統的卷面筆試無法體現出課程的特點。這就需要《C語言程序設計基礎》課程的出題、組卷、考試、閱卷、評價等一系列體制打破傳統,進行改革。
C語言課程考試系統中的題型分為單項選擇、填空、程序設計、程序改錯和程序填空,根據每種題型的特點,其評分方法是不相同的。
一、選擇題的評分策略
單項選擇題由于其每題答案的唯一性,所以單項選擇題的評分策略相對其他題型最簡單。單項選擇題的評分策略是:采用字符串的截取與比較的方法,將考生答案與標準答案進行匹配,如果完全相同,則匹配成功獲得分數,否則不得分[19]。
二、填空題的評分策略
填空題考查目標集中,答案簡短,同一個答案也可以有多個表示方法,不是唯一。為了實現客觀公正的對填空題進行評分,在系統的標準答案中作如下約束[18]:
當填空題有多個空且順序不可變時,在系統中使用“,”作為分隔符將每個空的評分關鍵字連接在一起。例如“C語言中,一條復合語句是分別以()字符和()字符作為開始符和結束符的。答案為“{”“}”,則標準答案為“{,}字”;
當填空題答案的位置固定但內容不唯一時,對系統內多個標準答案使用“|”作為分隔符,表示考試只要和多個標準答案中的一個匹配即可,如題“C語言中,任何程序有且只有一個函數”,答案為:主或者main,則標準答案為“主|main”;
當填空題答案有多個且位置不固定、順序可變時,使用“#”和“|”作為分割符,表示多個答案的順序可改變。例如“C語言中,()和()兩類變量屬于實型變量。”答案為:“單精度和雙精度”,則標準答案為“#單精度|雙精度”。
基于以上約束,設計填空題的評分步驟為:
第一步,提取考生答案中的關鍵字;
第二步,對比考生關鍵字與答案關鍵字,如果標準答案關鍵字中包含“,”,則表示有多個答案且順序不可變;如果標準答案關鍵字中包含“|”,則表示只要考生關鍵字與標準答案關鍵字中的一個對比成功即可;若標準答案關鍵字中包含“#”,則表示有多個答案且順序可變,因此需要對多個關鍵字進行循環對比,對比成功一個獲得對應分數并標記此標準答案已對比過不再進行對比,以防考生在不同位置填寫同一個答案。
三、程序改錯題的評分策略
改錯題的評分主要包括兩個方面:
1.查看考生是否找出了錯誤代碼所處的行;
2.判斷是否對錯誤行代碼進行了正確的修正。
改錯題的評分策略是首先讀取考生改過的程序,將它與正確答案進行逐字比對,不一致處對應的行號即是錯誤行。確定錯誤代碼所處的行之后,記錄下行號,再根據行號將考生答案與標準答案一個字符、一個字符比對,如果對比成功即考生進行了正確的修改,判滿分;否則不得分。
四、程序填空題的評分策略
程序填空題的評分策略和程序改錯題的評分策略類似,首先找到填空所在行,然后提取學生答案放入變量中,與標準答案進行字符邏輯判斷,如果對比成功時那么取該記錄的權重值然后乘以該答題點分值。將此邏輯判斷作為WHILE循環的循環體,對所程序源代碼答案全部進行了邏輯匹配運算,同時要將考生的得分累加求和,這個和值就是該考生程序填空題成績。
五、程序設計題的評分策略
對程序設計題進行評分時,首先檢查程序的運行結果是否正確,如果正確則得滿分;如果運行結果不正確或無法運行,則檢查程序代碼是否存在語法或語義方面的錯誤。
考慮到考生在編寫程序設計題時代碼存在多樣性且程序設計的正確率較低兩個特點,因此在題庫中設計程序設計題時一般選擇算法相對簡單的試題,且題目中嚴格限制編程中使用到的結構和類型。
參考文獻:
[1]杜利峰,牛永潔.字符串相似度在自動評分系統中的應用[J]電子設計工程,2011,19(7):42—44
[2]王穎,C語言上機考試系統中自動評分方法的探討[J]當代教育理論與實踐,2014年1月第6卷第1期
[3]李琦,C語言程序設計題自動評分算法的研究,電腦知識與技術,2011年3月1585-1