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