左匡天 韓露男
摘要:隨著計算機及網(wǎng)絡(luò)技術(shù)的日益發(fā)展,傳統(tǒng)的課堂教學(xué)面授模式、紙質(zhì)化考試的形式已逐漸被網(wǎng)絡(luò)教學(xué)、在線考試所取代。在線練習(xí)及考試系統(tǒng)作為網(wǎng)絡(luò)教學(xué)和培訓(xùn)的一個重要環(huán)節(jié),能充分利用資源、及時得到教學(xué)成果的反饋,進而針對性地對教學(xué)、考試做出適當(dāng)?shù)馗倪M。該文基于PHP + MySQL技術(shù)論述在線練習(xí)及考試系統(tǒng)的設(shè)計與實現(xiàn)。
關(guān)鍵詞:在線考試;在線閱卷;PHP5
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2018)11-0112-03
在傳統(tǒng)的教學(xué)模式下,要求必須將學(xué)生幾種在固定的地點,然后才能進行教學(xué)。同樣的,在傳統(tǒng)的紙質(zhì)化考試,需要經(jīng)過人工出題、學(xué)生考試、人工判卷、成績評價和試題分析等多個步驟[1],并且需要規(guī)范化的考點和考場。復(fù)雜的考務(wù)流程讓考務(wù)工作量越來越大,同時人工閱卷的方式也比較容易出錯,由于人的天性,發(fā)生錯誤也很難被發(fā)現(xiàn)。只有充分利用現(xiàn)代網(wǎng)絡(luò)、充分發(fā)揮計算機的優(yōu)越性,才能將傳統(tǒng)的考試模式所帶來的人力物力財力的巨大投入降到最低。在線考試是當(dāng)今教育普及和發(fā)展的必然要求,也是必然趨勢。
目前,已經(jīng)有很多教學(xué)機構(gòu)選擇網(wǎng)絡(luò)教育作為傳統(tǒng)教學(xué)的補充教學(xué)方式。網(wǎng)絡(luò)教育逐漸普及,傳統(tǒng)考試模式逐漸向在線考試轉(zhuǎn)變。該文討論利用PHP + MySQL技術(shù)搭建在線練習(xí)及考試系統(tǒng)平臺,從系統(tǒng)結(jié)構(gòu)、基本功能、考試流程、關(guān)鍵技術(shù)等方面進行論述。
1 系統(tǒng)結(jié)構(gòu)的選擇
C/S(Client/Server)模式和B/S(Browser/Server)模式是常見的開發(fā)模式[2]。C/S模式響應(yīng)速度快,安全性高、操作界面豐富,但是在該模式下,用戶必須在打電腦上運行程序,如遇到升級,所有安裝有該客戶端的都必須升級,較為繁瑣。而B/S模式是以WEB技術(shù)為基礎(chǔ)的新型模式,該模式簡化客戶端的操作,系統(tǒng)維護簡單,用戶操作也簡單,僅需要熟悉瀏覽器即可。因為使用本系統(tǒng)的用戶較為分散,所以選擇B/S模式。
2 系統(tǒng)的基本功能
該考試系統(tǒng)的主要功能結(jié)構(gòu)如圖2所示。
其中,該系統(tǒng)的角色主要分為管理員、教師和考生三種角色,每種角色均需要對應(yīng)的學(xué)號或工號和密碼才能登錄系統(tǒng)。管理員可對所有的用戶信息進行維護;參加考試的學(xué)生或教師也可以自行修改自己的信息;教師用戶或管理員用戶均可以對試題庫進行維護,試題庫包括科目、章節(jié)、知識點等信息,教師或者管理員也可以對題型進行設(shè)置、修改和刪除等,也可以對題目進行增加、刪除、修改等操作,題目可以被導(dǎo)入與導(dǎo)出。系統(tǒng)還為題目的增加、刪除、修改功能都提供了個別和批量操作功能。導(dǎo)入導(dǎo)出功能支持Excel,方便管理者對題目的編輯。
該系統(tǒng)考試管理包含四個部分的內(nèi)容,管理員或者教師預(yù)先從題庫中抽取題目,然后組成試卷,試卷管理含有三種組卷方式,分別為隨機組卷、手工組卷、即時組卷,組卷時可以細化章節(jié)和知識點;考試設(shè)計包含考場管理、專業(yè)設(shè)置、科目管理、題型管理,其中考場管理可以對考試模式、試題排序、考試范圍、模擬試卷與正式試卷綁定、考試模板、考試時間、正式考試次數(shù)、分數(shù)顯示方式等管理;課程開通可以對考試開通情況進行管理;試題管理負責(zé)對試題的增加、刪除、修改,包括對普通試題、題帽題管理和錯題反饋。
3 考試流程與策略
3.1 考試流程
該系統(tǒng)最重要的部分之一是在線考試,另一重要部分是在線練習(xí)??忌卿浵到y(tǒng)后,開通考場,選擇正式考試,然后系統(tǒng)會調(diào)出試卷,接著考生進行在線考試。考生在考試結(jié)束后,可以自主交卷,也可以到規(guī)定時間系統(tǒng)自動交卷并給予考生提示。該系統(tǒng)能夠在很大程度上提高教師及教學(xué)管理人員的工作效率,也可以使考試變得更加公平、公正。此外,該系統(tǒng)還具有一定程度上的可擴充性,可以對考試科目進行設(shè)置及按照考試實際進行靈活地管理。該系統(tǒng)在線考試的整個流程如圖3所示。
由于是在線考試,萬一出現(xiàn)網(wǎng)絡(luò)的不穩(wěn)定或者計算機故障等問題,該系統(tǒng)在設(shè)計過程中充分考慮并處理了。該系統(tǒng)采用瘦服務(wù)端胖服務(wù)端的設(shè)計模式,該模式的處理主要思想是用JavaScript語言將相關(guān)數(shù)據(jù)保存到本地,用戶在考試過程中只是對本地數(shù)據(jù)進行操作,這樣就不存在網(wǎng)絡(luò)中斷導(dǎo)致無法考試的問題,同時將考生答案保存到本地,并每隔60秒上傳到服務(wù)器,那么即使客戶端司機,考生的答案還是存在的,在考試結(jié)束后,再將答案完整的寫入數(shù)據(jù)庫。
3.2 考試策略
該系統(tǒng)采用了較好的考試策略和安全策略,這樣做,既能夠保證系統(tǒng)的安全性和可靠性,也能夠保證考試的公平性和公正性。
1)該系統(tǒng)采用考生端計算時間的方法,以此來減少服務(wù)器的負擔(dān),但這樣的話,考生可以不斷刷新頁面來延遲考試結(jié)束時間。為了避免這種現(xiàn)象發(fā)生,當(dāng)頁面刷新時,考生電腦就會向數(shù)據(jù)庫中的x2_examsession表中添加examsessionid、examsessionstarttime、examsessiontime項,并保留此次記錄,系統(tǒng)默認成績?yōu)?分,當(dāng)考生將試卷提交后再對成績進行修改。這樣一來,就能避免考生通過刷新延遲提交試卷。
2)系統(tǒng)在考試時間結(jié)束時會自動提交試卷并且會提醒考生考試結(jié)束,這樣做能夠保證考生在規(guī)定時間完成考試。
3)為了防止考生在正規(guī)的考試時相互偷看試卷,系統(tǒng)在為每一位考生生成試卷時采取了隨機組卷策略,可以打亂試題順序,也可以選擇難度系數(shù)相同的試題。這樣也能夠在一定限度上避免作弊行為發(fā)生,同時也能夠在一定程度上保證考試的公平性[3]。
4 系統(tǒng)開發(fā)的關(guān)鍵技術(shù)
4.1 MVC設(shè)計模式概述
MVC是由Trygve Reenskaug提出,是“Model-View-Controller”的縮寫,翻譯成中文是“模式-視圖-控制器”[4]。對于需求是界面設(shè)計可變的,這種設(shè)計模式將交互系統(tǒng)的組成分解為Model(模型)、View(視圖)、Controller(控制器)三種部件。
模型是MVC設(shè)計模式的核心,封裝了與程序的業(yè)務(wù)處理邏輯相關(guān)的數(shù)據(jù)和對數(shù)據(jù)處理的方法。模型享有對數(shù)據(jù)直接訪問的權(quán)限,它獨立于界面表達和I/O操作,例如它可以直接對對數(shù)據(jù)庫進行操作。它不會依賴視圖和控制器,不關(guān)心它是如何被顯示或者是被操作的。但是,模型中的數(shù)據(jù)變化一般會被通過刷新機制來顯示。
視圖能夠?qū)崿F(xiàn)有目的顯示數(shù)據(jù),但是在理論上,這個不是必須的。在視圖上一般不存在程序上的邏輯,但對于相同的信息可以有多個不同的顯示形式或者視圖,為了實現(xiàn)視圖的刷新功能,視圖需要現(xiàn)在數(shù)據(jù)模型上進行注冊,然后才能訪問。視圖接收來自用戶輸入的數(shù)據(jù)和向用戶顯示相關(guān)的數(shù)據(jù),但是它不會進行任何業(yè)務(wù)處理。
控制器在不同層面均起到組織作用,用于控制業(yè)務(wù)的流程。它需要先進行事件的處理,然后再做出回應(yīng)?!笆录敝傅氖怯脩舻恼埱蠛妥兓说臄?shù)據(jù)模型。首先一個請求被用戶輸入,然后該請求被控制器接收到,控制器決定給哪個模型處理,然后模型通過業(yè)務(wù)邏輯處理被用戶發(fā)送的請求,緊接著模型返回給視圖需要的數(shù)據(jù),視圖根據(jù)設(shè)置好的顯示樣式呈現(xiàn)給用戶頁面。如圖4是的模型、視圖和控制三個模塊各自的功能以及它們之間的關(guān)系。
4.2 設(shè)計數(shù)據(jù)庫
根據(jù)上文的在線考試的功能需求,該系統(tǒng)需要在MySQL中建立用戶信息表(x2_user)(見表1)和考試信息表(x2_examsession)(見表2)
4.3 訪問WEB數(shù)據(jù)庫
該系統(tǒng)采用MySQL數(shù)據(jù)庫,是一個小型關(guān)系型數(shù)據(jù)庫,由瑞典MySQL AB公司開發(fā)。MySQL支持多線程、多用戶,由于體積小、訪問速度快和開源的特點,使得許多中小型網(wǎng)站因為節(jié)約成本的需要而選擇MySQL作為他們網(wǎng)站的數(shù)據(jù)庫,甚至在中大型應(yīng)用上,MySQL也能夠勝任。
PHP實現(xiàn)對MySQL數(shù)據(jù)庫的訪問有三種方法:
1)使用PHP原生的方式去連接數(shù)據(jù)庫,語法如下:
mysql_connect($host, $username, $password);
2)使用mysqli拓展連接數(shù)據(jù)庫,語法如下:
new mysqli($host, $username, $password, $database);
3)使用PDO的方式連接數(shù)據(jù)庫,語法如下:
new PDO("mysql:host=$host;dbname=$database", $username, $password);
其中host是服務(wù)器地址,可以是本地服務(wù)器也可以是遠程服務(wù)器;username和password是數(shù)據(jù)庫的賬號和密碼;dataname是數(shù)據(jù)庫名。
PHP連接MySQL數(shù)據(jù)庫的方式有兩種,一種是永久連接,另外一種是非永久連接[5]。
永久連接是指在腳本結(jié)束之前不被關(guān)閉的連接。該連接的優(yōu)勢,當(dāng)客戶端與MySQL數(shù)據(jù)庫請求非常頻繁時,這種連接方式就會顯得非常高效。
而非永久連接是,當(dāng)客戶端向服務(wù)器請求時,服務(wù)器一次性將所有的數(shù)據(jù)全部發(fā)送給用戶瀏覽器,直到下一次客戶端發(fā)送請求前,連接都會被斷開。
該系統(tǒng)采用第一種連接方法,原因是PHP直接調(diào)用自身函數(shù)在時間上最短;該系統(tǒng)采用非永久連接,因為雖然永久連接的效率要比及時連接效率高的多,但是非永久連接可以避免永久連接帶來的安全問題,也能夠承載數(shù)據(jù)服務(wù)器的壓力。
4.4 JavaScript技術(shù)
JavaScript是一種描述語言,它可以配合html語言直接在客戶端運行,也可以在瀏覽器中運行;它配合CSS可以改變頁面顯示效果,能夠十分華麗的顯示,它是如今網(wǎng)頁技術(shù)異步處理機制的基礎(chǔ),也就是不用整個頁面刷新,可以提交部分數(shù)據(jù)到服務(wù)器,取得服務(wù)器的數(shù)據(jù)后再刷新頁面。它有自己的引擎,引擎是內(nèi)置在瀏覽器中的,大部分情況下都是配合HTML(一種標準標記語言)使用,完成HTML無法完成的頁面效果,JavaScript被歸類為直譯語言。
該系統(tǒng)使用JavaScript主要用于動態(tài)修改瀏覽器頁面、使用各種函數(shù)回應(yīng)鍵盤鼠標對瀏覽器的操作、動態(tài)修改CSS樣式、對用戶輸入數(shù)據(jù)進行限制、提取用戶相關(guān)訪問資料。
5 結(jié)束語
總而言之,成功的在線練習(xí)及考試系統(tǒng)離不開教學(xué)評價理論的指導(dǎo),該文設(shè)計的基于PHP的在線練習(xí)及考試系統(tǒng)實現(xiàn)了真正的無紙化在線練習(xí)與考試,能滿足不同科目的在線練習(xí)與考試需求,已經(jīng)實現(xiàn)了隨機抽題、組題、控制考試時間、恢復(fù)考試現(xiàn)場和計算機自動閱卷等功能。由于該系統(tǒng)是采用B/S的結(jié)構(gòu),系統(tǒng)具有良好的可維護性和可擴充性。如果對于考試科目和考試專業(yè)進行調(diào)整,只需要對試卷進行調(diào)整即可。與此同時,教師可以通過系統(tǒng)對章節(jié)、知識點進行統(tǒng)計分析,能夠有效地對學(xué)生提供輔導(dǎo)。
參考文獻:
[1] 趙躍欣. 在線考試系統(tǒng)的設(shè)計與實現(xiàn)[D]. 廣州: 華南理工大學(xué), 2015.
[2] 楊盛苑. B/S和C/S結(jié)合模式下在線考試系統(tǒng)的設(shè)計與實現(xiàn)[J]. 電子世界, 2015(21): 34-35.
[3] 郭飛軍. 基于B/S的航海類函授在線考試系統(tǒng)的設(shè)計[J]. 中國成人教育, 2011(2): 47-48.
[4] 任廣震, 侯進, 王獻. MVC模式在B/S結(jié)構(gòu)政務(wù)系統(tǒng)的應(yīng)用研究[J]. 計算機應(yīng)用與軟件, 2014(8): 54-58,74.
[5] 趙鶴芹. 設(shè)計動態(tài)網(wǎng)站的最佳方案:Apache+PHP+MySQL[J]. 計算機工程與設(shè)計, 2007(4):933-934,938.