曾棕根 吳志榮 汪志達
摘 ?;要: 紙質考試耗費資源,反饋遲緩,題庫管理困難,無法隨機抽題,教師閱卷工作量大,為此采用Moodle 2的在線考試模塊進行了大規模在線考試實驗。實驗表明,Moodle 2的在線考試模塊穩定安全、功能強大,在各級各類教育考試中值得推廣應用。文章從高性能Moodle 2平臺構建、題庫建設、考試實施和成績管理四方面詳細闡述了Moodle 2大規模在線考試的實現方法及應用要點。
關鍵詞: Moodle; 分布式; MySQL復制; 大規模; 在線考試
中圖分類號:TP399 ?; ?; ?; ?; ?;文獻標志碼:A ?; ?; 文章編號:1006-8228(2014)12-08-03
Realization method of Moodle's large-scale online exam
Zeng Zonggen, Wu Zhirong, Wang Zhida
(Department of Electronic Information Engineering, Ningbo Polytechnic, Ningbo, Zhejiang 315800, China)
Abstract: The paper-based exams have disadvantages including resourceswasting, feedback delay, difficulties in question bank management, no approaches to randomly select questions and vast marking workload. The experiment of large-scale online exam is carried on by Moodle 2. The experiment result showed that the Moodle 2 quiz module is stable, secureand powerful, should be widely appliedin all levels of education examination. The realization method and the application point of Moodle 2 large-scale online exam are elaborated from four aspects, including construction of high performance Moodle 2 platform, question bank building and implementationof exam and grade management.
Key words: Moodle; distributed; MySQL replication; large-scale; online exam
0 引言
Moodle是全球最流行的LMS[1]。Moodle 2重寫了在線考試模塊,使得該模塊更穩定、安全、易用、靈活、強大,在線考試模塊已成為Moodle 2應用的重中之重。使用Moodle 2實現大規模考試,是一項系統工程,其流程包括平臺構建、題庫建設、考試實施和成績管理。
本文全面總結了筆者過去幾年在建設高性能Moodle平臺、實施大規模在線考試中的研究與實驗經驗[2],希望能為Moodle 2平臺在我國的全面推廣應用提供一些實際幫助和參考。
1 構建高性能LNMP+Moodle 2平臺
在線考試是一個并發性要求最高的網上操作,要求架設的Moodle 2服務器具有高性能、高并發特點[3]。為了滿足大規模在線考試的性能需求,就必須建立高性能的LNMP+Moodle 2服務器基礎平臺[4]。如果250人左右同時考試,那么使用一臺獨立服務器運行LNMP+Moodle 2即可;如果250人以上同時考試,就必須投入更多的服務器。圖1是筆者研制的一種基于LNMP的分布式、高可用Moodle 2系統,PHP-FastCGI服務器采用分布式計算架構,而MySQL服務器則為一個環形復制結構。
圖1 ?;分布式高可用Moodle 2服務器架構
圖1中客戶端通過Web瀏覽器訪問Nginx服務器,Nginx服務器采用輪詢或Hash等負載均衡算法將用戶的訪問交由一臺PHP-FastCGI服務器進行處理,每臺PHP-FastCGI服務器獨享一臺MySQL數據庫服務器,而當一臺MySQL數據庫服務器完成一個改變數據庫的SQL操作時,該操作會瞬時異步向下一臺環向傳遞,使得這N臺MySQL數據庫服務器上的數據始終保持一致,實質上實現了寫同步和讀均衡的效果。圖2是兩臺MySQL環形復制工作原理示意圖[5]。
圖2 ?;兩臺MySQL服務器環形復制工作原理示意圖
該MySQL服務器結構是一種橫向擴展的彈性結構,可隨時調整PHP服務器和MySQL服務器的臺數,從而滿足不同人數的考試需求。值得注意的是,由于在線考試對文件系統訪問要求不高,所以,所有PHP-FastCGI服務器共享一臺NFS文件服務器即可。
計算該架構服務器數量必須考慮以下兩個因素。
⑴ 單臺服務器并發能力,參考表1。
表1 ?;單臺PC服務器性能表
表1數據是采用HP實驗室著名的服務器性能測試工具httperf[6]在蘋果iMac一體機(處理器:Intel?2.50GHz雙核心四線程、內存:4.00GB)上測出的。從表1可以看出,并發瓶頸在于PHP程序的處理。
⑵ 考生點擊網頁頻度。假定考生每10秒點擊一次網頁,那么,一臺PHP服務器可以滿足:MySQL并發處理100個請求/秒×10秒=1000人同時在線考試。
由此推導出服務器需求表,見表2。
表2 ?;不同考試規模PC服務器需求表
如果同時考試規模更大,可以使用Nginx作反向代理,將請求分流到多個相同的Nginx分布式高可用結構中,而所有的MySQL數據庫服務器則作一個瞬時異步環向同步復制。
2 題庫建設
題庫建設包括創建試題類別、用模板創建試題和將試題的XML文件導入Moodle 三個步。
在Moodle中創建試題類別,可根據章節名稱創建,也可以根據試題類別名稱創建,如“填空題”、“單選題”、“多選題”、“是非題”或“簡答題”等類別名稱。Moodle 2支持多種題型,包括錄音題。
試題類別規劃、創建好后,便可以來制作題庫了。直接在Moodle平臺里一道一道制作題目,是一項非常耗時的工作,效率太低。
在Word中使用“Quiz authoring template for Microsoft Word” 插件簡稱moodle_quiz_v12(如圖3所示)批量制作題庫簡單易行[7],能大大減輕工作量;而且,題目或答案中都可以有若干插圖或Word公式。表3是使用moodle_quiz_v12插件制作題庫常見五類題型的技術標準。
<;E:\方正創藝5.1\Fit201412\圖\zzg圖3.tif>;
圖3 ?;moodle_quiz_v12模板
表3 ?;Moodle 2常見五類題型出題技術標準
[題型\&;技術標準\&;樣例\&;填空題\&;每道題只能有一空,答案用括號括起來放在Word文件里。填空題答案里不能包含無法通過鍵盤輸入的字符,如Word公式,上下角標、圖形等等。\&;中國的首都是(北京)。
光在(真空)中一年所經過的距離稱為一個光年。\&;判斷題\&;答案正確的和錯誤的題要分成兩類放置在Word文件里。\&;答案正確的:
0是整數。
1+1=2。
答案錯誤的:
地球是方的。
有翅膀的生物屬于鳥類。\&;單選題\&;第一個答案必須是正確答案,每道題按樣例排版(選擇項一行放一個),選擇項數量為任意個。\&;一周的第一天是( ?;)。
星期日
星期二
星期三
星期一\&;多選題\&;正確答案放在最前面,錯誤的答案放在最后面,之間用一個回車符分開,每道題按樣例排版(選擇項一行放一個),選擇項數量為任意個。\&;下面哪句描述正確( ?;)。
一周分為7天。
星期日是一周的第一天。
杭州是浙江省省會城市。
5不是自然數。
1+6=9\&;]
課程組將題目按上述標準在Word里創建好試題,交給技術組在moodle_quiz_v12模板中處理,導出XML文件。最后將此XML文件以“Moodle XML格式”的形式導入到Moodle 2平臺相應的試題類別里就形成了Moodle 2題庫。
3 考試實施
考試是由考務組來實施的,包括:設置考場、抽題組卷、賬號管理和進行考試四個環節。
設置考場就是在Moodle 2中建立一個“測驗”活動。表4是Moodle 2對考場的設置的十二個重點項,可見Moodle 2考試模塊功能之強大。
表4 ?;Moodle 2的考場設置項目
抽題組卷就是從靜態的題庫中將題目抽出來組成本次考試的考題。Moodle 2中可以指定題庫中具體某道題為本次考試題目,也可以要求系統隨機針對每個考生從題庫中自動抽題。題目抽好后,還需要給考卷中的每道題設置分值。
賬號管理包括導入賬號、分配角色和考生拍照三個環節。導入賬號就是導入課程組教師和考生的賬號信息到Moodle 2平臺中去,賬號表應由username(賬號,通常用學號,只能包小寫字母和數字兩種字符)、password(密碼)、firstname(名)、lastname(姓)、email(郵箱)、idnumber(學號)、institution(機構)、department(部門)這八個字段組成,用UTF-8格式編碼,字段間以制表符分隔的一個文本文件。賬號表一次性導入到Moodle平臺后,默認為“學生”角色。而課程組教師的角色則要設置為“無編輯權教師”,這樣,教師只能給試卷評分和導出結果,而無法修改試卷和學生的答案。導入的學生賬號,還需要以班級為名稱進行分組;重要的考試,還要組織學生現場拍照。安裝PoodLL系列插件[8]可以輕松實現Moodle現場拍照;或者直接在Moodle 2的“網站管理/用戶/帳戶/上傳頭像”中上傳以“學號.jpg”命名的學生相片壓縮包*.zip。
為了防止考生修改重要信息,需要鎖定關鍵字段。
⑴ 在“網站管理-插件-身份認證-人工帳號”中,將“名、姓、學號、機構、系別”五個字段鎖定,非網站超級管理員就無法修改此五個字段。
⑵ 在“網站管理-安全-網站策略”中,勾選“禁用自定義頭像功能”, 非網站超級管理員就不能修改自己的頭像。
至此,可以組織學生到機房進行在線考試了。考前對Moodle 2服務器校時是一項非常重要的工作。筆者采用crond服務使Moodle 2服務器每天凌晨兩點整與上海交通大學網絡中心NTP服務器校時[9]。Moodle 2允許不同的科目同時考試,考試開始,學生用Firefox瀏覽器登入Moodle 2平臺,監考老師把此場考試密碼告訴學生,學生方可打開試卷,試卷打開后,Moodle 2會自動為每個客戶端啟動一個獨立的倒計時器,時間一到,會自動關閉考卷。當然,如果學生端的瀏覽器不小心關閉或電腦死機,只要重新打開瀏覽器或更換一臺電腦登錄考卷繼續考試即可,而先前做題情況不會丟失。
為了提高考試的安全性和提高訪問速度,考試時通常將Moodle 2服務器網址臨時調整為內網地址;為了減輕監考壓力,還可使用限制程序運行類軟件,使學生電腦只能運行Firefox瀏覽器和允許使用的軟件。
4 成績管理
成績管理包括試題評分、導出成績、導出答題詳情表和導出成績分析表四個環節。
填空題、單選題、多選題和是非題是系統自動評分的,簡答題、論述題需要手工評分。但是,填空題有時候會有多個答案,為保險起見,建議評分人對判錯的填空題人工評閱。評分人可以在Moodle 2呈現的評分表里隨意修改任意題目的得分值。
評分工作完成后,教師就可以以班級為單位導出學生成績Excel文件。為了保留考試證據,Moodle 2還允許教師導出答題詳情表留為檔案,方便學生查卷。
Moodle 2里充分使用了教育統計學方法,對每場考試提供了組成績平均分、成績次數分表;對每道題還統計了容易度指數、標準偏差、隨機猜測得分、預期權重、實際權重、區分度指數和區分效率,便于教育工作者能對考試質量有針對性地改進。
5 Moodle 2大規模在線考試實驗
2011-2014年,我校電子信息工程系在全國范圍內率先依托本文提出的分布式高可用Moodle 2新平臺實施教考分離教改實驗(網址:http://61.164.87.150:5483/),針對十一門主干課程,成功地實施了四次大規模的在線考試。
實驗證實,由6臺蘋果iMac一體機(處理器:Intel?2.50GHz雙核心四線程、內存:4.00GB,硬盤500GB)組成的分布式高可用Moodle 2架構能輕松滿足1000人以上同時在線考試。在線考試激發了學生的學習熱情,有效防止了作弊,并徹底解放了教師勞動力,受到參與實驗師生的好評。該教學改革受到了上級領導肯定和表彰,先后獲得寧波職業技術學院第四屆教學成果一等獎和寧波市第六屆教學成果三等獎[10]。
6 結束語
本文全面總結了Moodle 2大規模在線考試的平臺架設和組織實施方法,并經過了教育實踐的檢驗,驗證了其可靠性和有效性。
專著《Moodle大規模在線考試研究與實踐》將于年底前在人民郵電出版社出版發行,屆時敬請同行參考交流。
參考文獻:
[1] 黎加厚:課程管理系統Moodle(魔燈)在中國的發展[EB/OL].<;http://
blog.sina.com.cn/s/blog_624df0fc0100onej.html.>;
[2] 曾棕根.基于WAMP的簡體中文Moodle架設與性能優化[J].現代教
育技術,2011.21(4):136-139
[3] 陳聲健.基于Moodle的在線考試系統的設計與實施[J].中國教育信
息化,2010.7:74-66
[4] 曾棕根.一種基于LNMP的Moodle 2分布式計算架構[J].計算機時
代,2013.6:5-8
[5] 理解MySQL復制(Replication)[EB/OL].<; http://www.cnblogs.
com/hustcat/archive/2009/12/19/1627525.html.>;
[6] httperf官網主頁[EB/OL].<; http://www.hpl.hp.com/research/
linux/httperf/.>;
[7] moodle quiz template[EB/OL].<;https://moodle.org/mod/forum/
discuss.php?d=135112.>;
[8] PoodLL官網[EB/OL].<;http://poodll.com/.>;
[9] 在crontab中使用ntpdate同步時間 [EB/OL].<; http://www.2cto.
com/os/201207/144752.html.>;
[10] 曾棕根.Moodle災難恢復與應對計劃[J].計算機應用與軟件,
2013.30(10):120-122