程冠琦
【摘 要】在線考試是高職院校教學改革的重要組成部分,能夠解決傳統(tǒng)的紙質(zhì)化考試方法的諸多弊端。本文利用ASP.NET的MVC技術(shù),結(jié)合LINQ技術(shù)和EF數(shù)據(jù)模型,從需求分析開始,完整地闡述了在線考試系統(tǒng)的設計方案。其中,對智能組卷和考生在線考試兩個核心模塊作了重點研究和討論。
【關鍵詞】在線考試;MVC;智能組卷;高職院校
一、引言
對于高職院校來說,考試是人才培養(yǎng)方案中的極為重要的組成部分,考試對于一門課程、對于一個學生來說,都有著非常重要的意義;同時,考試也是學校中廣大教師最為關心的內(nèi)容,對于考試的內(nèi)容、考試的方法的改革,一直是教育界最為關心的話題。
目前,高職院校的考試還是以傳統(tǒng)的考試方法為主,這種傳統(tǒng)的紙質(zhì)化考試的方法已經(jīng)運行了多年,存在著諸多弊端。在高職院校中引入在線考試,具備如下優(yōu)勢:
(1)提高了考試命題、組織等一系列考務的工作效率。
(2)在線考試有標準化的題庫支持,試卷命題由系統(tǒng)隨機抽題完成組卷,這種出卷方式更加科學合理,題型和題量分布也更有利于考核學生的能力。
(3)抽題、評分由系統(tǒng)自動完成,試題由系統(tǒng)從題庫中隨機抽取,能更好地保證考試的公平公正和評分的準確性。
(4)學生參加考試的時間和地點不受限制,參加考試的方式也更加靈活。
二、系統(tǒng)需求分析
在線考試系統(tǒng)的用戶包括管理員、教師和學生3種用戶。
管理員具有系統(tǒng)最高權(quán)限,負責對整個考試系統(tǒng)的維護管理,一般來說,高職院校的考試系統(tǒng)平時一般比較空閑,訪問用戶量相對較少,并且系統(tǒng)平時對學生并不開放權(quán)限,只允許教師用戶訪問。只有在期中考試和期末考試相對集中的時間段內(nèi),系統(tǒng)訪問的人數(shù)才比較多,系統(tǒng)的負荷也相對較重。因此,管理員可以針對系統(tǒng)用戶設置訪問時間段,以減輕系統(tǒng)并發(fā)訪問量。
教師用戶的權(quán)限相對管理員來說要少,但也是系統(tǒng)的主要用戶。在平時系統(tǒng)空閑階段,教師主要根據(jù)自身所教課程,負責各種題型題庫的建立、維護和更新。為了保證在線考試的質(zhì)量,目前對課程題庫的要求也越來越高,課程的題庫要做到題量大,題型豐富、內(nèi)容先進,能夠跟上學科新知識、新內(nèi)容的要求。因此,該項任務工作量大,要求高。
學生在考試系統(tǒng)中的權(quán)限是3種用戶中最小的,學生平時除了可以進行系統(tǒng)的網(wǎng)上自測練習外,基本上是不能登錄系統(tǒng)的。只有在考試系統(tǒng)開放的有效時間范圍內(nèi),學生才能登錄,登錄后可以查看管理員發(fā)布的各種考試通知,修改自己的個人資料,在指定的考試時間內(nèi)參加考試,同時在考試結(jié)束后可以查詢自己的成績。
三、系統(tǒng)開發(fā)的主要技術(shù)
3.1 MVC 框架技術(shù)
MVC 框架技術(shù)是近年來非常流行的軟件框架,這種軟件設計模式最初由Xerox PARC在二十世紀八十年代提出,而后被廣泛使用。
MVC設計模式把整個軟件分為模型、視圖和控制器三大部分,其中視圖相當于傳統(tǒng)軟件架構(gòu)中的表示層,即用戶界面;模型負責數(shù)據(jù)的處理和交互,主要負責數(shù)據(jù)處理邏輯的設計與實現(xiàn),是整個MVC中的重點和難點;控制器處理用戶的交互,控制著整個程序運行的核心和流程,負責整個程序的運行和管理。
3.2 LINQ技術(shù)
LINQ,是Language Integrated Query(語言集成查詢)技術(shù),通過該技術(shù),我們可以使用相同的API,利用C#語言來對不同的數(shù)據(jù)源進行操作。
LINQ包括五個部分:LINQ to Objects、LINQ to XML、LINQ to SQL、LINQ to DataSet、LINQ to Entities。
LINQ查詢操作的語法相對傳統(tǒng)的SQL語句更為簡潔。LINQ查詢表達式包含的關鍵字與SQL關鍵字相類似,不同的是,LINQ要以from子句開頭,以select子句或group子句結(jié)束。
3.3 EF數(shù)據(jù)模型框架
EF數(shù)據(jù)模型框架,全稱是Entity Framework(實體框架),這是微軟公司在.NET平臺上以ADO.NET技術(shù)為基礎開發(fā)出來的一個ORM(對象關系映射)框架。
EF數(shù)據(jù)模型框架由三種模型和映射文件進行定義:
(1).csdl文件:用于定義概念架構(gòu)模型,其中定義的實體、主鍵、屬性、關聯(lián)等都是對應于.NET Framework中的類型。
(2).ssdl文件:用于定義存儲架構(gòu)模型,其中主要描述表、列、關系、主鍵等主要概念。
(3).msl文件:用于定義概念模型和存儲模型的映射關系,即CSDL中屬性與SSDL中列的對應關系。
四、系統(tǒng)總體設計
4.1 體系結(jié)構(gòu)和總體框架
系統(tǒng)分為前端和后臺兩部分。前端技術(shù)上,采用流行的HTML 5、CSS 3和JQuery技術(shù),具體地講,HTML 5使用bootstrap開源框架,此框架在業(yè)界多個前端開源項目得到了廣泛的應用;CSS 3采用flexbox彈性布局技術(shù),并廣泛應用動畫、過渡等效果;JavaScript采用AngularJS框架相結(jié)合的技術(shù),可以有效地控制頁面并制作出美觀的動態(tài)效果。
后臺技術(shù)上,采用的是業(yè)界流行的.NET的MVC框架技術(shù)進行開發(fā),分為view、controller、model三個部分。Controller負責整個程序的維護,負責處理用戶請求;model用于和后臺數(shù)據(jù)庫打交道,這里采用LINQ TO SQL數(shù)據(jù)模型和EF數(shù)據(jù)模型相結(jié)合;view用于顯示結(jié)果,采用了更為簡潔的語法輸出數(shù)據(jù)結(jié)果。
4.2 功能模塊劃分
在線考試系統(tǒng)分為五大功能模塊,即用戶信息管理、考試管理、題庫管理、試卷管理和成績管理。下面對這五個模塊分別介紹。endprint
(1)用戶信息管理:該模塊是所有軟件系統(tǒng)的通用模塊,包含登錄、用戶信息導入和密碼修改三大功能。
(2)考試管理模塊:核心模塊,包含考試安排、考試信息查詢、學生在線考試和考試信息維護幾大功能。
(3)題庫管理模塊:核心模塊,包含題庫創(chuàng)建、題庫維護、題庫查詢、題庫更新幾大功能。
(4)試卷管理模塊:核心模塊,包含試卷定制、試卷維護、試卷信息查詢、樣卷查看幾大功能。
(5)成績管理模塊:核心模塊,包含系統(tǒng)評卷、成績統(tǒng)計、成績查詢幾大功能。
五、系統(tǒng)詳細設計
本系統(tǒng)的核心模塊由考試管理、題庫管理、試卷管理3個模塊組成。下面著重對這3個模塊分析詳細設計思路。
5.1 題庫管理模塊
題庫管理模塊是教師用戶操作的一個重要模塊,也是后續(xù)試卷管理、考試管理的基礎,只有具備一個數(shù)量龐大、內(nèi)容先進的題庫,才能保證試卷和考試的質(zhì)量。
本系統(tǒng)題庫目前支持的題型有單選題、多選題和判斷題3種客觀題題型。
模塊的設計核心在于題庫業(yè)務邏輯類的設計,該模塊的業(yè)務邏輯層類由單選題類、多選題類和判斷題類組成,3個類的屬性設計基本與數(shù)據(jù)庫中單選題表、多選題表和判斷題表相對應,由于3個類的屬性設計比較類似,這里就以單選題類為例進行說明,其余2個類不再贅述。
單選題類的屬性包括題目順序號(用于組卷)、題目編號、題干、各個選項內(nèi)容(A-F)、答案、題目難易度(分為非常難、較難、適中、較簡單、非常簡單5個層次)、屬于課內(nèi)知識還是課外知識等等。除了以上基本屬性之外,還包括參加的考試編號、學生答案兩個擴展屬性及單選題錄入、查詢、編輯和刪除幾個基本方法。
5.2 試卷管理模塊
試卷管理的業(yè)務邏輯層類由試卷類和試卷題型章節(jié)分布類組成。試卷類的屬性設計基本與數(shù)據(jù)庫試卷表中的字段相對應,包括試卷編號、試卷名稱、組卷方式(人工組卷、系統(tǒng)抽題)、組卷人、組卷時間、單選題數(shù)量、單選題分值、多選題數(shù)量、多選題分值、判斷題數(shù)量、判斷題分值、總分、課程編號等等。除了以上基本屬性之外,還包括單選題題庫、多選題題庫和判斷題題庫3個屬性和字段。
試卷管理的核心功能在于智能組卷,從組卷的具體算法來說,流行的算法有回溯試探組卷算法、專家系統(tǒng)的組卷算法和遺傳算法的組卷算法、基于隨機數(shù)選取的組卷算法。本文采用的是基于隨機數(shù)選取的組卷算法,利用計算機提供的隨機生成函數(shù)在題庫中按照設定的試題參數(shù)要求隨機生成試題編號,由于該編號是隨機生成,且在一定范圍內(nèi)是獨一無二的,因此不會產(chǎn)生重復現(xiàn)象。重復這個隨機試題編號的生成過程,即可得到試題集合,直到滿足試卷要求的所有試題都已經(jīng)選擇完畢。
5.3 考試管理模塊
考試管理模塊中最為核心的兩個功能是管理員安排考試以及學生在線考試??荚嚢才欧譃閮刹剑皇卿浫肟荚嚮拘畔?,二是錄入?yún)⒓涌荚嚨膶W生信息。在錄入?yún)⒓涌荚嚨膶W生的基本信息的同時,還要對考生答題記錄進行初始化操作。
學生在線考試是整個考試管理的重中之重的功能。該功能是否能夠正常使用,是確保整個系統(tǒng)運行的必要條件。
學生在線考試過程中,主要解決兩個問題:一是時間問題,二是考生答案的保存問題。因此,需要設置2個計時器控件,一個計時器控件對考試進行監(jiān)控,包括確定開考時間、考試結(jié)束時間以及實時剩余時間提示,另一個計時器控件在設置的間隔時間內(nèi)保存考生答題的答案,主要為了解決考生答案丟失的問題。此外,考生交卷也設置了兩種方式,一是手動提交,二是考生結(jié)束后系統(tǒng)自動提交試卷。
在線考試結(jié)束后的數(shù)據(jù)處理問題也是一個重點問題。由于考生答案信息數(shù)據(jù)量非常大, 一名考生一次考試就將產(chǎn)生20~30條記錄,一次考試的數(shù)據(jù)量估計約為幾千條記錄,如果考試次數(shù)多,則學生答卷表的數(shù)據(jù)量非常大,這樣會降低索引和查詢效率。因此,可以考慮為每次考試專門建立一張數(shù)據(jù)表,用于存放每次考試考生答卷信息。這樣數(shù)據(jù)表的數(shù)量雖然多一些,但是可以有效地提高索引的效率。
六、總結(jié)
本文利用ASP.NET的MVC技術(shù),結(jié)合LINQ技術(shù)和EF數(shù)據(jù)模型,從需求分析開始,完整地闡述了在線考試系統(tǒng)的設計方案。其中,對智能組卷和考生在線考試兩個核心模塊作了重點研究和討論。
參考文獻:
[1] J R Quilan.Induction of decision trees[J].Machine learning,1986(1)81-106 .
[2] W Buntine,T Niblett.A Further comparison of splitting rules for decision-tree induction[J].Machine Learning,1992(8):75-76 .
[3] J.H.Holland.Adaptation in Natural and Artificial Systems[J]. The .University of Michigan Press, Ann Arbor, MI,1975.
[4] 姜春風,許薇.基于 B/S 模式的考試系統(tǒng)設計與實現(xiàn)[J].吉林農(nóng)業(yè)科技學院學報, 2007,16(4):22-24 .
[5] 劉曉林.B/S 通用題庫考試系統(tǒng)的設計與實現(xiàn)[D].長沙:湖南大學, 2005,10-13 .
[6] 趙睿.基于 java 技術(shù)的網(wǎng)上在線考試系統(tǒng)設計與實現(xiàn)[D].蘭州:蘭州理工大學,2006,10-11 .endprint