王奭 陳鴻

摘 要: 本文主要針對本校考試現(xiàn)狀,以提高考試效率、降低考試成本、實現(xiàn)無紙化考試為目標,深入分析在線考試系統(tǒng)的各個環(huán)節(jié),設計了一個實用、高效的考試系統(tǒng)。
關鍵詞: 隨機抽題算法 考試系統(tǒng) JavaEE
1.現(xiàn)實背景
隨著計算機和互聯(lián)網(wǎng)技術的迅速發(fā)展,各種校園網(wǎng)絡逐漸成熟,為計算機化和無紙化教育提供了可能,考試逐步進入網(wǎng)絡化時代。相對于傳統(tǒng)考試系統(tǒng),網(wǎng)絡化的在線考試系統(tǒng)有著許多突出優(yōu)點。首先,網(wǎng)絡化考試可以突破時間和空間的限制。其次,網(wǎng)絡化因為采用計算機答題,可以節(jié)省大量紙張。以大學課程C語言為例,考試試卷一個班需要印制30份左右,每份試卷需要使用5頁左右的B4紙張。根據(jù)教務處2014年45號通知,我院共有在籍人數(shù)22917人。按照每門課程需要5頁紙,平均需要考試4門課計算,如果采用無紙化考試系統(tǒng),就會節(jié)省45萬張考試用紙,間接減少樹木砍伐量,保護環(huán)境。
2.技術背景
系統(tǒng)設計時考慮到了安全性和各種系統(tǒng)兼容性及相應的及時性等特點,因此采用JavaEE開發(fā)平臺的相關技術。Java技術有天然的優(yōu)勢和特點,跨平臺,系統(tǒng)運行穩(wěn)定,有許多很好的開放的開發(fā)架構,如Struts、Spring、Hibernate等。Struts采用MVC模式,能夠很好地幫助java開發(fā)者利用J2EE開發(fā)Web應用。Struts是面向?qū)ο笤O計,將MVC模式“分離顯示邏輯和業(yè)務邏輯”的能力發(fā)揮得淋漓盡致。Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使Java程序員可以隨心所欲地使用對象編程思維操縱數(shù)據(jù)庫。Spring是一個輕量級的Java開發(fā)框架。它的主要優(yōu)勢之一就是分層架構,分層架構允許使用者選擇使用哪一個組件,同時為J2EE應用程序開發(fā)提供集成框架。
3.算法介紹
隨機抽題算法,首先是建立兩個序列組,一個是待抽取的題目組成的序列,一個是已經(jīng)抽取出來編號的序列組,這里序列組中序列的個數(shù)是根據(jù)題目類型建立的。然后根據(jù)用戶設定的每種試題類型的數(shù)目,隨機抽取試題序號到已選定序列組。當所有選定的類型都已經(jīng)達到數(shù)目設定,即完成組卷。
具體算法如下:
(1)定義不同題型的待選題號數(shù)組和已選題號數(shù)組,假設單選題對應的待選題號數(shù)組為G11,已選擇出來的單選題的題號數(shù)組為G12;多選題對應的待選提題號數(shù)組為G21,已選擇出來的多選題的題號數(shù)組為G22;依此類推。
(2)對各個題型的數(shù)組初始化,預先設定好各個題型的分數(shù)值。
(3)使用隨機函數(shù)在G11數(shù)組中抽取一個試題,加入到G12中,然后把G11數(shù)組中和該試題同一章節(jié)的其他題號刪除,目的是保證下次選出的試題題號不再是該章節(jié)的試題題號。每次隨機選擇出一個題號加入到G12之后,都要將G11中該題號所在章節(jié)的其他試題題號刪除,直至G11為空或者完成單選題的抽題任務。
(4)如果單選題任務沒有完成,即沒選出足夠的試題,而同時G11為空,那么下次抽題之前,將根據(jù)G12反向選擇出為單選擇的試題題號到G11中,再隨機選擇一個試題題號出來。再重復步驟3。
(5)單選題完成選擇之后,再類比完成其他題型的抽題任務,直至組卷完成。
該算法的優(yōu)點是算法相對簡單、高效,組卷的試題的章節(jié)分布均勻。
難度系統(tǒng)調(diào)整問題。根據(jù)用戶答題錯誤率調(diào)整難度系數(shù)。
4.系統(tǒng)實現(xiàn)
功能模塊設計:包括用戶(管理員、教師、學生)信息管理,題庫與試題管理、試卷管理、考試管理、試卷評閱、成績分析與評價、信息發(fā)布模塊等。
考試模式的選擇分為所有學生答固定試題的試卷,也就是說所有學生參加考試的試卷的題目是一樣的;每個同學都從系統(tǒng)中隨機抽題組卷,每個試卷中各種類型的題目的個數(shù)一樣,難度系數(shù)都一樣,但是具體題目不一定相同。
數(shù)據(jù)通信模塊,在考試過程中需要根據(jù)用戶設定,每隔一段時間與服務器交換數(shù)據(jù),主要進行時間統(tǒng)一,服務器接受用戶考試過程中的答題數(shù)據(jù)。
試卷評閱部分,主要指由閱卷老師對問答題等部分進行評分。
成績分析與評價部分,則根據(jù)某一次考試情況,以圖表形式統(tǒng)計每道題的答題情況,以及整個學生成績的分布統(tǒng)計等數(shù)據(jù),包括平均分,各個分數(shù)段人數(shù),以及均方差等數(shù)據(jù)。便于出題老師對該試卷總體情況進行分析和評價。
信息發(fā)布模塊主要是發(fā)布有關考試信息和考卷情況的內(nèi)容。
5.運行和測試
實現(xiàn)要點:防止考生作弊。因為系統(tǒng)既可以隨機抽題考試和測試,又可以由教師手工組卷進行考試。在第二種情況下,所有考生將對同一套試卷進行測試,相鄰同桌之間太容易互相抄襲。可以采用以下方法避免這種情況:
(1)打亂考生試題的題號。試卷中所有試題整體上是一樣的,但是試題出現(xiàn)的題號不一樣。同一道題,一個同學答的題號是1,另外一個同學的題號可能是10。
(2)打亂試題尤其是選擇題的選項順序。對于同樣一道選擇題,不僅出現(xiàn)的題號有可能不一樣,而且題支中選項也會打亂次序。
6.總結
經(jīng)過4個班120人的測試,系統(tǒng)滿足設計任務要求,運行正常,達到了設計要求。但由于時間緊迫,還需要進一步改進:進一步完善UI界面,提供更人性化、方便操作的界面;優(yōu)化數(shù)據(jù)庫組織,可供更多用戶同時監(jiān)考;添加試題批量管理、用戶批量管理等功能。
參考文獻:
[1]歐薇.基于遺傳算法的在線考試系統(tǒng)的設計與實現(xiàn)[D].華南理工大學,2012.
[2]吳靜霞.基于智能組卷的在線考試系統(tǒng)的設計與實現(xiàn)[D].蘇州大學,2008.
[3]劉韶麗.基于智能組卷策略的網(wǎng)上考試系統(tǒng)的設計與實現(xiàn)[D].東南大學,2006.
[4]王添財.基于JavaEE的在線考試系統(tǒng)的設計與實現(xiàn)[D].華南理工大學,2014.
本文是校級科研課題”基于JavaEE的綜合考試系統(tǒng)的設計與實現(xiàn)”支持的項目文章。