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