山東科技大學土木工程與建筑學院 秦哲 韓繼歡 趙景偉
為了降低組卷難度和提高組卷效率,以《巖土工程測試》課程為研究對象,利用PHP技術,選用MySQL數據庫、Excel文件及手動輸入組成的試題庫開發新的智能組卷系統。
近年來,全國各高校不斷進行教學模式和教學方式的改革。目前,各高校對于學習內容,選取的考核方式主要為期末考試,而考試試卷一般為老師根據考試大綱手動出卷,容易遺漏知識點,費時費力[1]。
為了使教師更加方便快捷的完成試題組卷,何秉榮[2]利用PHP、Apache和MySQL構建基于Brower/Server模式的試題庫管理系統;Fu Y.[3]對蟻群算法初值信息的設置進行了優化,不僅提高了系統的自主學習能力,還提高了系統的智能性能;韓嘯[4]等通過使用適當的遺傳算子,構造了新的智能組卷方法,解決了多約束條件下試卷的分數分配、章節分配、難度等一系列問題;張廣路等[5]提出了基于Java的試卷自動生成系統的設計思路,設計實現在Internet上遠程基礎數據管理、試題庫管理、試卷生成等方面可復用的子系統;焦瑞等[6]分析了傳統的組卷算法及其相應的試題庫結構的基礎上,采用計算機提供的隨機函數結合智能思路確定試題庫結構,在對應的試題庫中抽取符合要求的試題組成試卷。
基于上述研究的基礎,本文選用PHP作為腳本語言,利用MySQL作為數據庫平臺,以《巖土工程測試》課程為例,針對課程考核目標和要求,設計開發一款簡單便捷的智能組卷系統。
本文所涉及的智能組卷系統主要分為系統功能模塊、試題管理模塊和試卷管理模塊,如圖1所示。
將系統功能模塊分為信息管理和系統管理兩部分。信息管理主要為用戶的注冊、登錄信息,登錄用戶為管理員和教師。該系統的主要使用權限為教師,注冊時需要填寫用戶名、郵箱、密碼、驗證碼,注冊完畢即可根據自己注冊信息登錄到系統頁面。系統管理是管理員對系統的維護管理,保證用戶能夠正常的使用,對后臺用戶信息、管理規則等信息的錄入,其中用戶信息包括用戶的登錄時間、登錄信息、操作日志等。
試題管理模塊包括題庫管理和試題抽取,該部分是整個系統的關鍵組成部分。題庫管理主要為試題庫的匯集,試題庫中的試題根據科目、試題類型、知識點、難易程度等信息將試題進行條件賦予。題庫可以從數據庫中提取,系統數據庫中主要保存有題庫數據、用戶數據和系統信息等。考慮到個別教師不具備數據庫操作能力,題庫提供手動輸入和支持導入Excel文件功能。
試卷中的試題難度是根據試題平時的得分情況計算得出難度系數,根據如表1所示判斷試題的難易等級。

表1 難度等級表Tab.1 Difficulty level table
試題抽取是依據考試大綱出題,以《巖土工程測試》考試大綱為例,填空題設總分30分,每個空1分;名詞解釋設置5個小題,每個小題4分;簡答題設置5個小題,每個小題10分,如表2所示。

表2 題量分配表Tab.2 Question allocation table
試卷根據上述題量分配從試題庫選擇試題,選擇時根據試題類型除了需要考慮試題的難易程度還需考慮到試題所考察的知識點是否符合考試大綱的要求,保證試卷的總體結構要滿足教學計劃,教學計劃設計如表3所示的4條課程目標。

表3 巖土工程測試教學計劃Tab.3 Geotechnical engineering test teaching plan
每一個目標都對應著課本相應的章節內容,根據表3,標識試題所屬的知識點內容將用數字表示,例如:1.2表示目標1(第一章)的第二條內容所考察的知識點。
試卷管理模塊分為試題排序與試卷排版兩個部分。試卷頭包含考試、科目、姓名以及得分統計表等試卷基本信息;試題部分則包含題型說明和試題。卷頭各部分可以通過Word實現試卷內容的排版。試題部分按順序分別為填空題、名詞解釋和簡答題,每個題內部根據抽題算法隨機排序。
PHP語言作為一種語言程序,其專用性逐漸在應用過程中顯現,其技術水平的優劣與否將直接影響網站的運行效率。其特點是具有公開的源代碼,在操作過程中簡單易懂,可操作性強[7]。同時,PHP語言具有較高的數據傳送處理水平和輸出水平,如果數據量較大,PHP語言還可以拓寬鏈接面,與各種數據庫相連,緩解數據存儲、檢索及維護壓力,PHP語言搜索引擎還可以量體裁衣,實行個性化服務,可根據客戶的需求進行分類收集儲存[8]。
MySQL是一種關系型數據庫管理系統,關系數據庫將數據保存在不同的表中,這樣就增加了速度并提高了靈活性。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,并且MySQL對PHP有很好的支持,故本文開發選擇MySQL作為網站數據庫[9]。
根據系統功能模塊的設計,利用PHP語言開發,完成算法計算后,實現智能組卷系統的登錄注冊及主頁面,如圖2、圖3、圖4、圖6所示。
用戶根據注冊信息填寫,注冊之后即有權限登錄到系統,登錄之后,進入智能組卷系統的編輯主頁面,主頁面包個人中心、試題中心及試卷中心三個部分,如圖3所示,其中個人中心對應上述設計中的系統功能模塊,試題中心對應試題管理模塊,試卷中心對應試卷管理模塊,每次登錄會自動記錄相應的信息。
試題是組成試卷的基礎。如圖4所示,教師可以通過試題中心為試卷的組成提供試題組成試題庫,試題庫的試題可以利用MySQL數據庫的試題;也可導入Excel文件,文件格式如圖5所示;還可以通過手動輸入根據題型選擇,然后輸入試題。導入或輸入完成,需要保存。
如圖6所示,Excel文件內容包括題目ID、題目問題、題目說明、問題圖片、題型、正確答案、難度、分數,其中題目ID是為了更好的識別、記錄輸入的試題數;題目說明是記錄題目所涉及的知識點,4.3指的是目標4的第三條考核內容;問題圖片指的是試題的配圖;題型1、2、3分別代表填空題、名詞解釋、簡答題;難度分為5個等級如表1所示;分數填寫該題的分數。
保存好試題,點擊試卷中心,如圖6所示,選擇學年、學期、科目、組卷數知識點及題量、平均難度、分數,知識點是根據教學目標所對應的章節選擇。填寫完成點擊抽取,其中抽取試題的代碼如下:
#學年
$where['schoolYear']= Question::schoolYear;
#學期
$where['semester']= Question::semester;
#科目
$where['subject']= Question::subject;
$arrTest = Question::getAllIds($where);
$intStart = mt_rand(0, max(0, count($arrTest) -$config['shortNumber']));
抽取的試題可以點擊預覽查看,若發現抽取試題有問題,可以刪除、修改或者重新抽取,直到滿意為止,然后點擊生成試卷,以Word形式保存到自己選擇的保存路徑。
本文將智能組卷系統設計分為系統功能模塊、試題管理模塊和試卷管理模塊,利用PHP語言將設計以頁面的形式呈現,新增了新的功能,可以根據教學大綱的知識點智能組卷,可生成多份試卷,既減輕了教師的教學工作量,又提升了試卷的質量,對教學智能化改革具有重要的意義。