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