隨著計算機技術(shù)、數(shù)據(jù)庫技術(shù)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,教育信息化水平對培養(yǎng)面向信息化社會創(chuàng)新人才起到了至關(guān)重要的作用。計算機輔助教學(CAI)已經(jīng)滲透到教學的各個環(huán)節(jié),其對教學所起到的積極作用,備受各類大中院校的重視。考試作為教學中的重要一環(huán),如何公平、公正、客觀地評價學員的實際學習情況,指導學員的后續(xù)學習,也是CAI研究的一個方向。相對于傳統(tǒng)的紙面考試,基于網(wǎng)絡(luò)的計算機考試在出卷、考試、評分、統(tǒng)計等多個必要步驟上都有自己特有的優(yōu)勢,可以顯著減輕教師的工作負擔,提高效率,提高考試靈活性和公正度。由此可見,基于網(wǎng)絡(luò)的計算機考試一定會成為未來考試的發(fā)展方向。
現(xiàn)階段基于網(wǎng)絡(luò)的應用軟件架構(gòu)主要有C/S(客戶端/服務端)和B/S(瀏覽器/服務端)兩種類型。C/S架構(gòu)盡管功能強大,但維護和管理成本太高。以筆者接觸到的試點高校網(wǎng)絡(luò)教育部分公共基礎(chǔ)課全國統(tǒng)一考試為例,每次考試所需各級服務端和客戶端程序的安裝和調(diào)試工作,就要花費超過一周的時間。隨著瀏覽器技術(shù)的發(fā)展和普及,B/S架構(gòu)的應用范圍不斷擴大,基于此架構(gòu)開發(fā)的在線考試系統(tǒng),體現(xiàn)出了安裝部署簡單、功能擴展方便的優(yōu)勢。此外,結(jié)合AJAX等客戶端交互技術(shù),B/S架構(gòu)也在一定程度上彌補了相對于C/S架構(gòu)來說在性能和功能上的不足,成為未來網(wǎng)絡(luò)考試系統(tǒng)的主流架構(gòu)。
目前,基于B/S架構(gòu)的在線考試系統(tǒng)的功能主要集中在對傳統(tǒng)考試題型,如單選題、多選題、是非題、填空題、文字題的隨機抽題和自動評卷上,功能上還遠沒有達到理想的效果,穩(wěn)定性和數(shù)據(jù)安全上還有很大的潛力?;谝陨峡紤],筆者近期開發(fā)了一個在線考試系統(tǒng),主要在系統(tǒng)功能設(shè)計與實現(xiàn)上力求有所創(chuàng)新,其大致包含以下三個方面的目標:第一,考題智能分級、滿足多種考試需求的隨機抽題、各種題型的快速導入等一些考試系統(tǒng)中使用到的算法的實現(xiàn)或改進;第二,更好地解決基于B/S架構(gòu)的考試系統(tǒng)的穩(wěn)定性和數(shù)據(jù)安全問題,更好地實現(xiàn)實時保存和自動恢復,解決B/S架構(gòu)中會話易丟失,瀏覽器易崩潰等穩(wěn)定性問題;第三,實現(xiàn)Office辦公自動化考試的完全自動隨機出題,支持辦公自動化考試的隨機組題,自動評卷,把對操作題的支持引進到B/S架構(gòu)在線考試系統(tǒng)中來,擴大考試系統(tǒng)的應用范圍。該系統(tǒng)采用微軟Microsoft Visual Studio 2008作為開發(fā)工具,使用C#語言進行開發(fā),數(shù)據(jù)庫使用Microsoft SQL Server 2000 Enterprise Edition。下面筆者對其中的一些主要設(shè)計,做必要的文字介紹。
一、基于錯誤率的難度分級機制
這是筆者結(jié)合自身的實際使用經(jīng)驗,設(shè)計出的考題分級機制。在筆者所設(shè)計的系統(tǒng)中,題庫維護著一個錯誤率計數(shù),每道試題在考生答題后將會自動更新錯誤率,初始值為1,正確+0.5,錯誤-0.5,部分正確+0.25(針對多選)。當積累一定考試記錄后,可通過該計數(shù)值獲得更加準確的分級數(shù)據(jù)依據(jù);然后,配合系統(tǒng)中的難度分級百分比參數(shù)(如“高、中、低”對應錯誤率的分布百分比,“1,0.8,0.5”意味著錯誤率80%-100%位置為難度高;50%-79%為難度中;低于50%為難度低),很容易得到每道試題的難度級別。在系統(tǒng)中,結(jié)合以上得到的難度級別,教師可以在創(chuàng)建試卷時選擇考試策略,如高(提高)、中(強化)、低(鞏固),有效提高考試效果,做到考試有的放矢。
二、快速導入試題功能
在該系統(tǒng)中,有一個很有特色的快速導入試題功能,主要是針對題量偏大的選擇題、是非題等題型而設(shè)計的。因為具備題量充分的試題庫,是一個成功考試系統(tǒng)的必要前提。筆者在測試該功能時,曾很輕松地把網(wǎng)上搜索到的數(shù)千道選擇題在半小時之內(nèi)成功導入了試題庫,沒有出現(xiàn)試題錯誤匹配、缺項、亂序等問題,取得了非常好的效果。其原理是根據(jù)試題輸入者在導入前所做的簡單標注和相關(guān)正則信息讓程序批量處理待導入試題,自動區(qū)別出題干、選項和答案,并分別存入數(shù)據(jù)庫。在這一過程中,需要解決的問題很多。例如,遇到選項次序混亂時,能夠重新對選項進行排序;遇到殘缺試題時,能夠及時終止或跳過,遇到重復試題時也必須丟棄;遇到試題中已經(jīng)包含答案時,需要找到并把答案提取出來,最后將題中答案清空以便導入等。
三、自動定時保存試卷功能
這個功能對于B/S架構(gòu)考試系統(tǒng)意義重大。相對于C/S架構(gòu)來說,B/S架構(gòu)在保障程序穩(wěn)定性和數(shù)據(jù)安全性方面,要困難許多。此外,讓正在緊張考試的考生手動點擊保存已經(jīng)完成的數(shù)據(jù)是不合理的,通??忌苋菀缀雎赃@個環(huán)節(jié),但當遭遇頁面甚至瀏覽器意外崩潰時,沒有保存數(shù)據(jù)就意味著前功盡棄。過去這種自動保存的要求只能在C/S架構(gòu)上實現(xiàn),但Ajax等客戶端技術(shù)的出現(xiàn),在B/S架構(gòu)上也可以很方便地設(shè)計出具有自動定時保存試卷功能的在線考試系統(tǒng)。筆者在設(shè)計中采用了Ajax+序列化的技術(shù),將考試數(shù)據(jù)手動保存到數(shù)據(jù)庫的同時,又提供了一個可以設(shè)定時間間隔的自動定時保存到遠端數(shù)據(jù)文件的途徑,實現(xiàn)了在數(shù)據(jù)庫崩潰的情況下也能正常讀取數(shù)據(jù)的雙軌機制,提高了系統(tǒng)的數(shù)據(jù)安全性。Microsoft Visual Studio 2008加入了Asp.Net Ajax的支持,通過添加Timer、ScriptManager、UpdatePanel等幾個控件,就能夠很方便地實現(xiàn)定時無刷新的頁面操作。把試卷中各種題型的答題信息封裝在名為ExamResult的類中,保存即實現(xiàn)對ExamResult類對象的序列化操作,而還原即實現(xiàn)把存儲數(shù)據(jù)反序列化到ExamResult類對象的操作。
四、支持辦公自動化考試
以往的B/S架構(gòu)考試系統(tǒng),大多僅僅支持單選題、多選題、是非題、填空題、文字題等傳統(tǒng)題型的隨機抽題和自動評卷。筆者設(shè)計的支持辦公自動化(以微軟office系列為例)考試隨機抽題和自動評卷的思路和方法,擴展了B/S架構(gòu)考試系統(tǒng)的應用范圍。
首先,開發(fā)需引入Office 2003 PIA(主Interop程序集),根據(jù)由Office 2003公開的接口和類來以托管代碼進行編程做二次開發(fā)。筆者所設(shè)計的考試流程是:輸入考試素材(原始文件、圖片文件、聲音文件等);系統(tǒng)根據(jù)考試項目抽取素材中的待考核對象(原始文件);隨機抽取系統(tǒng)內(nèi)設(shè)的知識點(可手工設(shè)定抽取范圍);生成一個總體的操作要求序列;根據(jù)總體的操作要求序列生成規(guī)定數(shù)量的具體的試題要求序列和相對應的試題要求文字描述;考生登錄后隨機抽取某套試題并進行考試,完成后上傳;用試題要求序列檢測學員上傳的考卷并將檢測結(jié)果返回。目前,該系統(tǒng)已經(jīng)能夠很好地處理Word2003、Excel2003的在線考試,PowerPoint2003、Access2003還在進一步開發(fā)和完善中。
五、考試成績分析
考試成績分析是提高考試效果的一個重要環(huán)節(jié),對教師的后續(xù)教學有著重要的意義。筆者為此設(shè)計了多種考試成績分析項目,包括餅圖分析、標準分分布圖分析、標準分表、題型平均答對率分析等。通過這些分析,彌補了一般考試系統(tǒng)考后只有成績的不足,得到了遠比成績更加重要的一些分析數(shù)據(jù),指導了教師后續(xù)的工作。
(作者單位:華東師范大學、上海市徐匯區(qū)業(yè)余大學)