楊剛
摘要:考試是考查學(xué)生對知識掌握程度的主要方式之一,目前大多數(shù)院校采用的是傳統(tǒng)的考試方式——卷面考試。為解決卷面考試周期長、工作量大、成本高、試卷管理難的缺點,該文設(shè)計了一個在線考試系統(tǒng),該系統(tǒng)主要包括考試子系統(tǒng)和題庫子系統(tǒng)。最后使用Django框架實現(xiàn)了該系統(tǒng)。
關(guān)鍵詞:Django;在線考試系統(tǒng);web
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)14-0040-03
考試是考查學(xué)生對知識掌握程度的主要方式之一,隨著我國高等教育的不斷發(fā)展,各個學(xué)校的規(guī)模再不斷地擴大,在校生的人數(shù)也越來越多,考試的規(guī)模也就越來越大。目前大多數(shù)院校采用的是傳統(tǒng)的考試方式——卷面考試。在大規(guī)模的考試中,這種方式暴露出了諸多的弊端:一、周期長,工作量大;二、成本高;三、試卷管理難。
1 在線考試系統(tǒng)的優(yōu)勢
計算機技術(shù)自問世以來,推動并深化了教育教學(xué)改革。在考試環(huán)節(jié)可以使用基于web的在線考試系統(tǒng)對學(xué)生的學(xué)習(xí)效果進行測試[1]。相對于卷面考試而言,在線考試系統(tǒng)的主要優(yōu)勢在于[6]:
1)保密性強
卷面考試的主要流程環(huán)節(jié)比較多,如命題、印刷試卷和領(lǐng)取試卷等,整個流程中參與人員眾多,給保密帶來一定的困難。而在線考試系統(tǒng)將所有試題都保存在數(shù)據(jù)庫中,試卷在考試時由系統(tǒng)實時的根據(jù)組卷策略隨機生成,有效地避免了相互抄襲的現(xiàn)象。還可以指定專人負(fù)責(zé)管理試題庫,從而增強保密性。
2)客觀性較強
由于同時生成多套隨機試卷,可以客觀地反映出考生對課程的掌握程度,保證了考試的客觀準(zhǔn)確性。采用卷面考試時,試卷整體覆蓋面有限,容易形成小范圍復(fù)習(xí)或猜題等傾向,影響了測試的客觀性。
3)迅速準(zhǔn)確
試卷中的客觀題由系統(tǒng)自動評分,主觀題由教師評閱,當(dāng)所有主觀題評閱完成后,試卷總分由系統(tǒng)統(tǒng)計,杜絕了人為的失誤,迅速準(zhǔn)確且提高了工作效率。
2在線考試系統(tǒng)的總體設(shè)計
本文設(shè)計的在線考試系統(tǒng)主要包括以下功能[6]:
1)支持多種題型,如單項選擇題、多項選擇題和判斷題等客觀題,以及填空、改錯、簡單、論述等主觀題。
2)靈活的組卷策略,能夠按照不同的要求生成相應(yīng)的試卷。
3)考試時能夠自動計時。
4)閱卷。
5)各類基礎(chǔ)數(shù)據(jù)的維護。
為實現(xiàn)以上功能,本文設(shè)計的在線考試系統(tǒng)主要包括考試子系統(tǒng)和題庫子系統(tǒng)。
2.1 題庫子系統(tǒng)
題庫子系統(tǒng)的用戶是教師,其功能結(jié)構(gòu)如圖1所示。
1)試卷管理模塊
每次考試時,每個考生的考題以及考生的答案,以及教師的評閱都會被存儲為一個單獨的文件,該文件被稱為試卷。本模塊的主要功能包括查閱試卷、備份試卷等。
2)試題管理模塊
題庫是在線考試系統(tǒng)的基石,本模塊的主要功能是管理試題,主要的操作包括錄入、查詢、修改和刪除試題,除此之外還提供批量操作的功能。
3)組卷管理模塊
組卷是在線考試系統(tǒng)的核心功能之一[3],本模塊的主要功能是根據(jù)教師設(shè)置的約束條件,通過算法來生成試卷。主要的約束條件包括試卷的難度、知識點覆蓋率,題型以及題型比例等,教師可以根據(jù)學(xué)生的特點以及考試的目的等需求設(shè)置不同的值。
4)成績管理模塊
本模塊的主要功能是對查詢考生成績。
5)統(tǒng)計分析模塊
對試卷試題的分析可以為教師提供一個準(zhǔn)確的反饋,為教師進行教學(xué)改革提供一個堅實的基礎(chǔ)。本模塊的主要功能有兩個:試卷分析和試題分析。
試卷分析指的是對某次考試所有考生的成績進行統(tǒng)計分析,如優(yōu)秀率,不及格率等。
試題分析指的是對分析某道試題的難度以及區(qū)分度,通過統(tǒng)計所有考生對該題的得分情況,然后分析,從而得到對該試題的評價。
6)報表打印模塊
本模塊的主要功能是打印各種統(tǒng)計表格,如成績分析、試題分析等。
2.2 在線考試子系統(tǒng)
其功能結(jié)構(gòu)如圖2所示:
1)用戶登錄模塊
本模塊的主要功能是驗證用戶,包括用戶的身份是否合法和用戶是否具有相應(yīng)的權(quán)限。
2)在線考試模塊
本模塊的主要功能是,當(dāng)考生登錄后,從數(shù)據(jù)庫中讀取試卷供學(xué)生考試。在考試的過程中,會一直提示剩余的考試時間,當(dāng)考試時間結(jié)束時,若果考試沒有交卷,則系統(tǒng)會自動提交試卷。
3)分?jǐn)?shù)查詢模塊
本模塊的主要功能是向考生提供一個查詢成績的入口。
4)自動閱卷模塊
試卷通常由客觀題和主觀題組成。本模塊的主要功能是當(dāng)考生提交試卷后,系統(tǒng)自動對客觀題部分批閱。
5)在線閱卷模塊
本模塊的主要功能是教師批閱試卷的主觀題部分,批閱完成后,主觀題得分和客觀題得分將被匯總計入學(xué)生成績。
3系統(tǒng)實現(xiàn)
在眾多web開發(fā)框架中,本文選擇了Django框架。Django是一個用Python語言編寫的MVC框架,它大而全,為web開發(fā)中的常見問題提供了很好的解決方案[4-5]。MVC模式中的C,即控制器,由Django自行處理,所以使用Django開發(fā)web應(yīng)用時,主要的關(guān)注對象是MTV:Model(模型)、Template(模板)和Views(視圖)。
3.1模型的設(shè)計
與其他Web技術(shù)不同的是,使用Django框架不需要先建立數(shù)據(jù)庫表。Django自帶了一套映射工具,使用Django的第一步是建立模型,當(dāng)模型建立后,該映射工具可以根據(jù)模型自動生成數(shù)據(jù)庫表。本系統(tǒng)的主要模型如下:
1)學(xué)生,它包括以下主要字段:
2)單選題模型,它包括以下主要字段:
[字段名\&說明\&id\&編號,主鍵\&course\&所屬課程\&content\&題干\&img\&圖片\&opA\&選項A\&opB\&選項B\&opC\&選項C\&opD\&選項D\&answer\&答案\&]
3)考試結(jié)果模型,它包括以下主要字段:
2.2 模版設(shè)計
在Django中,MVC模式中的視圖功能被分解為視圖和模版[4,5]。視圖決定顯示哪些數(shù)據(jù),而模版決定如何顯示這些數(shù)據(jù)。這樣的分解,降低了模塊之間的耦合度,更利于后期的維護,因為可以隨時更換模版,而不影響程序的邏輯。本文設(shè)計的在線考試系統(tǒng)使用Html5和Jquery技術(shù)來開發(fā)模版??荚囎酉到y(tǒng)的登錄界面以及主界面如圖3和圖4所示。
2.3 視圖設(shè)計
Django框架中的視圖函數(shù)和URLconf機制實現(xiàn)了MVC模式中的控制器部分[4-5]。URLconf機制是使用正則表達(dá)式匹配URL,然后調(diào)用匹配的視圖函數(shù)。視圖函數(shù)的本質(zhì)上是一個Python函數(shù),它要求至少有一個request參數(shù),例如在線考試子系統(tǒng)中生成試卷的視圖:
def exam(request, course_id):
student = Student.objects.get(stuId=request.user.username)
course = Course.objects.get(pk=course_id)
result = Result.objects.filter(student=student).filter(
course=course).order_by('-id')
singles = sample(set(SingleChoice.objects.filter(course=course)), course.sCount)
yesnos = sample(set(YesNoQuestion.objects.filter(course=course)), course.yCount)
sAnswer = [];yAnswer = [];sList = [];yList = []
for index in range(0, course.sCount):
sAnswer.append(singles[index].answer)
sList.append('s' + str(singles[index].id))
for index in range(0, course.yCount):
yAnswer.append(yesnos[index].answer)
yList.append('y' + str(yesnos[index].id))
context = {'student':student,'course': course.name, 'singles': singles, 'yesnos': yesnos}
return render(request, 'exam/exam.html', context)
3 系統(tǒng)運行分析和結(jié)論
本系統(tǒng)完成后,于2012年開始應(yīng)用于安徽職業(yè)技術(shù)學(xué)院信息工程系的部分基礎(chǔ)課和專業(yè)課期末考試,以及學(xué)院往屆畢業(yè)生的補考。目前共有3000余人次使用本系統(tǒng)考試,經(jīng)測試,運行情況良好,證明本系統(tǒng)設(shè)計是成功的。
與傳統(tǒng)的卷面考試相比,本文設(shè)計的在線考試系統(tǒng)最大限度排除了人為因素的作用,保證了考試的客觀性、實時性、閱卷標(biāo)準(zhǔn)的一致性。使用在線考試系統(tǒng),能夠高效率、高質(zhì)量地完成對考生的能力測評。
一人一卷是在線考試系統(tǒng)最大的特點,相鄰考生之間試卷的不相同,因為試卷是系統(tǒng)實時的根據(jù)組卷策略生產(chǎn)的,因此考生之間就很難相互傳遞信息,從而避免了聯(lián)合作弊現(xiàn)象的發(fā)生。
在傳統(tǒng)的卷面考試中,考試的主要環(huán)節(jié)如試卷命題、試卷印刷、試卷評閱、試卷保管與保密和成績匯總等,在每個環(huán)節(jié)中,學(xué)校要付出巨大的時間成本和經(jīng)濟成本。而使用在線考試系統(tǒng)組織考試,試卷評閱、成績匯總等環(huán)節(jié)的也由系統(tǒng)自動完成,大大地節(jié)約了時間成本;而且也不存在試卷印制和運輸、試卷保管等環(huán)節(jié),節(jié)約了經(jīng)濟成本。雖然題庫的建設(shè),以及考場設(shè)備需要較大的投入,但是,這是中一次性的投入,當(dāng)系統(tǒng)建成之后可多次重復(fù)使用,后續(xù)只需花費很小的維護成本。因此,總體看,在線考試具有較好的經(jīng)濟性,值得推廣。
參考文獻(xiàn):
[1] 孫延靖.基于B/S模式的在線考試系統(tǒng)的實現(xiàn)[J].煤炭技術(shù),2011(9):234-236.
[2] 賀榮,陳爽.在線組卷策略的研究與設(shè)計[J].計算機工程與設(shè)計,2011(6):2183-2186.
[3] 張桂英.標(biāo)準(zhǔn)化在線考試系統(tǒng)的設(shè)計與數(shù)據(jù)庫建設(shè)[J].內(nèi)蒙古農(nóng)業(yè)大學(xué)學(xué)報,2012(Z1):5-6:222-225.
[4] 向光軍.基于Django的數(shù)據(jù)持久化研究[J].楚雄師范學(xué)院學(xué)報,2013(6):28-33.
[5] 吳廷焰.基于Django的科研管理信息平臺的研究與實現(xiàn)[J].科技信息,2011(35):146-147.
[6] 王昆.基于.NET的網(wǎng)上考試系統(tǒng)的設(shè)計與實現(xiàn)[D].濟南:山東大學(xué)碩士學(xué)位論文,2013.