趙舜
關(guān)鍵詞:VBA編程控制;組卷系統(tǒng);設(shè)計(jì)
中圖分類號(hào):G642.474 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2024)03-0056-04
0 引言
VBA(Visual Basic for Applications) 是Visual Basic 的一種宏語言,這種編程語言有著廣泛的應(yīng)用空間。與傳統(tǒng)宏語言不同,VBA提供了面向使用對(duì)象的程序設(shè)計(jì)方法,提供了相當(dāng)完整的程序設(shè)計(jì)語言。用戶可以將日常工作轉(zhuǎn)換為VBA程序代碼,使工作自動(dòng)化,提高工作效率。
在教學(xué)中,教師對(duì)學(xué)生知識(shí)掌握情況的了解通常是通過測(cè)驗(yàn)考試來完成的。以數(shù)學(xué)學(xué)科為例,目前職業(yè)院校的數(shù)學(xué)考試通常是以線下模式紙質(zhì)試卷進(jìn)行測(cè)驗(yàn),較少使用線上考試系統(tǒng)。要了解學(xué)生的真實(shí)學(xué)習(xí)效果,需要一份符合教學(xué)要求、試題難度適當(dāng)、考前保密性好的優(yōu)質(zhì)試卷。
要獲得一份優(yōu)質(zhì)試卷,需要一位或多位有經(jīng)驗(yàn)的教師從選擇考查知識(shí)點(diǎn),到編寫試題,再到試題和答案的輸入,每一個(gè)步驟都要耗費(fèi)大量的時(shí)間[1]。有時(shí)一場(chǎng)考試需要多份試卷,如期末試卷的AB卷、教學(xué)平行班使用的隨堂單元測(cè)驗(yàn)卷。這些試卷都要求試題不同,但試題類型和試卷難度要相同。這樣出卷的工作量就更大了。
針對(duì)這種情況,有必要采用一定的方法,能快速組卷,并能根據(jù)要求生成的多份題量、題型、難度相當(dāng)?shù)脑嚲怼榱擞行У亟鉀Q組卷出卷的問題,很多研究者以組卷系統(tǒng)為對(duì)象進(jìn)行研究。
1 組卷系統(tǒng)的研究現(xiàn)狀
在知網(wǎng)中,以“組卷系統(tǒng)”搜索,近5年有4 000多篇文章。方向偏重于選題的智能性上,將遺傳算法應(yīng)用于智能選題上的研究占據(jù)了三分之一。研究對(duì)象也主要針對(duì)在線考試系統(tǒng)。為了生成筆試試卷的組卷系統(tǒng)較少。在以生成卷為目的的組卷系統(tǒng)研究中,都是通過編程語言控制,結(jié)合數(shù)據(jù)庫技術(shù),最終實(shí)現(xiàn)組卷的[2]。這樣的組卷系統(tǒng)都包含了題庫管理和組卷功能。
1.1 題庫管理的研究現(xiàn)狀
有的組卷系統(tǒng)無法輸入和顯示標(biāo)準(zhǔn)的數(shù)學(xué)符號(hào)、公式,有的生成試卷版式固定,無法二次修改排版。部分現(xiàn)有的組卷系統(tǒng)需要特定的系統(tǒng)環(huán)境,需要安裝新的軟件,還需要花費(fèi)一定的時(shí)間去調(diào)試系統(tǒng)和學(xué)習(xí)操作方法。
為了解決這些問題,有研究者選擇了以Word軟件作為題庫管理軟件。如選擇通過VisualBasic操作Word進(jìn)行編組數(shù)學(xué)試卷[3],運(yùn)用VBA操作Word搭建了通用試題庫管理系統(tǒng)[4-5]。Word軟件具備出色的公式和圖片再編輯功能。Word文檔形式的試卷具備可編輯性。在日常工作中,教師們已經(jīng)習(xí)慣了以Word 軟件為文字處理工具。通過Word軟件管理題庫能降低系統(tǒng)操作的學(xué)習(xí)成本,同時(shí)也方便現(xiàn)有電子試卷試題的導(dǎo)入。
但是,在試題存儲(chǔ)的模式上存在著不妥之處:試題與試題之間、試題與答案之間分隔不明?,F(xiàn)有系統(tǒng)借助段落或空行或其他特殊標(biāo)記進(jìn)行分界。這些方法雖能通過程序進(jìn)行識(shí)別,但不便于人工管理試題。若要在此類題庫中進(jìn)行人工組卷,也是比較困難的。
1.2 組卷功能的研究現(xiàn)狀
現(xiàn)有的組卷系統(tǒng)能通過算法按照試題屬性如章節(jié)、難度系數(shù)等進(jìn)行智能選題組卷。如基于改進(jìn)的自適應(yīng)遺傳算法開發(fā)了智能組卷系統(tǒng)[6]。此類系統(tǒng)能較好地組合出一份知識(shí)點(diǎn)覆蓋面廣且難度適中的試卷。
但是,在常規(guī)教學(xué)中,總是會(huì)遇到“一試多卷”的需求,即一次考試需要多份題量、類型、難度相同而試題不同的試卷,又或者要生成專項(xiàng)練習(xí)卷,以實(shí)現(xiàn)對(duì)某一知識(shí)點(diǎn)進(jìn)行強(qiáng)化訓(xùn)練的情況,而現(xiàn)有的智能組卷系統(tǒng)不能滿足這些要求。
綜上所述,目前的組卷系統(tǒng)還不夠完善,因此有必要進(jìn)一步改善題庫管理和組卷功能,設(shè)計(jì)一個(gè)新的組卷系統(tǒng)以便滿足更多的需求。
2 組卷系統(tǒng)需求分析
組卷系統(tǒng)是為簡(jiǎn)化教師組卷工作,能快速生成滿足考試要求的試卷,要操作方便,學(xué)習(xí)成本低。通過對(duì)目前類似系統(tǒng)的研究,這樣的組卷系統(tǒng)要滿足如下需要:
1) 組卷系統(tǒng)要包含題庫管
理模塊。題庫能完整地存儲(chǔ)試題,包括題目涉及的各種公式、圖片等。題庫對(duì)能對(duì)試題進(jìn)行增、刪、改、查,且操作便捷。
2) 組卷系統(tǒng)要包含組卷控制模塊,能根據(jù)考試試卷的需求,設(shè)置參數(shù)后自動(dòng)從題庫中抽取試題進(jìn)行組卷,也能由人工從題庫中抽題后進(jìn)行組卷。
2.1 題庫管理模塊需求分析
1) 試題結(jié)構(gòu)分析
題庫中的每一道試題都包含內(nèi)容和屬性。
①內(nèi)容是指題目、答案,備注信息等。數(shù)學(xué)等理工科類試題有別于其他文科類試題,其表現(xiàn)形式中除了文字,還包含公式、圖片、表格等。這些內(nèi)容需要能在題庫中完整呈現(xiàn),排版清晰,既方便程序控制,又能讓人輕松瀏覽。
②屬性是指試題形式、試題所屬章節(jié)以及試題類型。試題形式主要有三種:選擇題,填空題,解答題。試題所屬章節(jié)即指該試題所考查的知識(shí)內(nèi)容的所屬章節(jié)。如果某試題考查多個(gè)知識(shí),涉及多個(gè)章節(jié),那么就按照教材章節(jié)順序,歸類于涉及的最后一個(gè)章節(jié)中。試題類型也是試題一個(gè)分類屬性。涉及同一章節(jié)的試題,有的考查不同的小知識(shí)點(diǎn),有的會(huì)結(jié)合其他章節(jié)知識(shí)進(jìn)行考查,有的在解題方法上有特殊性。無法單用難度系數(shù)來作區(qū)分,需要設(shè)置屬性:試題類型。當(dāng)試題類型相同時(shí),它的難度也相同。這也是為組卷構(gòu)建難度相同的試卷做準(zhǔn)備。
2) 題庫管理功能需求分析
題庫管理功能主要涉及試題的增加、刪除、查詢、修改。
①增加試題。要提供試題模板,能根據(jù)用戶所選添加位置,自動(dòng)添加試題屬性,幫助用戶快速創(chuàng)建試題。要方便現(xiàn)有電子試卷上的試題錄入,并兼容舊試卷格式。
②刪除試題。要能徹底清除試題,且對(duì)其他試題和題庫結(jié)構(gòu)不造成影響。
③查詢?cè)囶}。能快速地根據(jù)內(nèi)容或?qū)傩赃M(jìn)行查詢和瀏覽試題。
④修改試題。對(duì)試題的所有內(nèi)容都能修改。
2.2 組卷控制模塊需求分析
1) 試卷需求分析
試卷的需求可以分為:
①普通試卷,針對(duì)一個(gè)或幾個(gè)章節(jié)的知識(shí)進(jìn)行測(cè)驗(yàn)的試卷,要求考查內(nèi)容分布合理。
②一試多卷,即同一場(chǎng)考試需要多份試卷,如期末考試需要的AB卷,或是因不能同時(shí)考試的單元測(cè)驗(yàn)卷。這多份試卷在各章節(jié)的分布上一致,且類型難度相當(dāng)。
③專項(xiàng)練習(xí)卷,為了對(duì)某一章節(jié)知識(shí)進(jìn)行強(qiáng)化訓(xùn)練而組合的練習(xí)卷。
④自定義試卷,為了一些特殊需求,而將指定的試題組成試卷進(jìn)行練習(xí)。例如將某一階段的錯(cuò)題,整合成的錯(cuò)題練習(xí)卷,或是將與某一知識(shí)點(diǎn)相關(guān)的真題組成的練習(xí)卷。
另外每一份試卷都需要一份配套的答案。
2) 組卷功能分析
根據(jù)教學(xué)對(duì)試卷的需求,組卷功能需要包含自動(dòng)組卷和輔助人工組卷。
①自動(dòng)組卷要能按照參數(shù)設(shè)置,能在題庫中自動(dòng)抽取滿足條件的試題,自動(dòng)生成試題卷和答案卷。主要用于生成普通試卷和滿足一試多卷的需求,以及專項(xiàng)練習(xí)卷。在生成普通試卷過程中,通過設(shè)置章節(jié)和試題形式下的抽題數(shù)量,在題庫中進(jìn)行抽選,并盡可能讓試題考查的知識(shí)不同。在滿足一試多卷生成試卷時(shí),試題的類型都相同,進(jìn)而保證難度一樣。在生成專項(xiàng)練習(xí)卷時(shí),要盡可能涵蓋一個(gè)章節(jié)內(nèi)的所有試題類型。
②輔助人工組卷,能滿足自定義組卷需求,在題庫選定試題后,自動(dòng)將試題組合生成試題卷和答案卷,能簡(jiǎn)化人工組卷過程中的重復(fù)操作。
3 VBA 編程控制組卷系統(tǒng)設(shè)計(jì)
根據(jù)數(shù)學(xué)組卷系統(tǒng)的需求分析,下面就系統(tǒng)結(jié)構(gòu)、題庫管理、組卷功能進(jìn)行設(shè)計(jì)。
3.1 VBA 編程控制組卷系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
本組卷系統(tǒng)選擇了以選擇Word文檔為題庫數(shù)據(jù)載體,Word軟件為題庫管理軟件,以Excel為組卷數(shù)據(jù)設(shè)置記錄的載體,并通過VBA編程控制題庫管理和組卷。
Word軟件作為在教學(xué)活動(dòng)中最常被使用的辦公軟件,教師們使用得非常熟練,無須額外進(jìn)行培訓(xùn),不增加學(xué)習(xí)成本。Word軟件呈現(xiàn)試題的形式良好,排版便利。而VBA是內(nèi)嵌于Word和Excel中的編程軟件。系統(tǒng)在開發(fā)后可以直接運(yùn)行于安裝有Microsoft Office辦公軟件的電腦上,無須額外的軟件安裝過程。
3.2 題庫模塊設(shè)計(jì)
1) 題庫試題分類設(shè)計(jì)
為了滿足題庫管理的需求,首先根據(jù)試題所屬章節(jié)、試題形式、試題類型對(duì)試題進(jìn)行分類并編號(hào)。
①章節(jié)編號(hào)使用4位數(shù)字表示。中職數(shù)學(xué)共24 章,每個(gè)章內(nèi)最多12個(gè)小節(jié),故設(shè)置4位數(shù)字表示章節(jié)。如“0203”表示“第2章第3節(jié)”。
②試題形式用字母編號(hào):選擇題A,填空題B,解答題C,可以方便識(shí)別區(qū)分。
③每個(gè)試題形式下有若干個(gè)試題類型,用三位數(shù)字來記錄:001~999。
④同試題類型下的試題序號(hào)用2 位數(shù)字記錄:01~99。
所有編號(hào)串聯(lián)起來就是試題的唯一編號(hào)exid,共10位。如編號(hào)為“0101A00201”就表示“第1章第1節(jié)的選擇題中第2個(gè)類型下的第1道題”。
2) 題庫試題存儲(chǔ)設(shè)計(jì)
試題按照:章節(jié)、形式、類型分類存放,利用Word 自帶的導(dǎo)航欄功能,可以方便快捷地查看試題。
題庫文檔內(nèi)以表格形式存放試題。文檔中每一個(gè)表格就是一道試題。表格內(nèi)存放試題編號(hào)、試題內(nèi)容、試題答案、試題備注信息。這樣既能清晰地劃分試題和答案,讓使用者一目了然,也方便對(duì)試題進(jìn)行管理。
這樣的存儲(chǔ)形式,也給題庫的管理帶來便利。
①添加試題。在指定分類位置下,添加試題模板,即表格。然后在相應(yīng)位置填入內(nèi)容即可完成試題的添加。為了省去反復(fù)創(chuàng)建試題模板的過程,通過編寫VBA宏命令,實(shí)現(xiàn)一鍵完成試題模板的插入。
②刪除試題。由于試題是以表格形式保存,所以刪除表格即可完整刪除試題。為了省略表格選擇過程,通過編寫VBA宏命令,實(shí)現(xiàn)一鍵刪除試題。
③查看試題??梢酝ㄟ^導(dǎo)航欄根據(jù)章節(jié)和形式進(jìn)行查找,也可以利用Word軟件自帶的查找功能,依據(jù)內(nèi)容查找試題。
④修改試題。試題存放在Word文檔內(nèi),修改試題和平時(shí)修改Word文檔是一樣的。文字、公式、表格都可以修改。
3.3 組卷模塊設(shè)計(jì)
根據(jù)組卷模塊的需求分析,要能滿足4類組卷要求,需要通過自動(dòng)組卷和輔助人工組卷兩種功能來實(shí)現(xiàn)。
1) 自動(dòng)組卷功能設(shè)計(jì)
自動(dòng)組卷是只需設(shè)置測(cè)試模式以及要抽取的試題數(shù),由系統(tǒng)自動(dòng)完成抽題組卷。參數(shù)設(shè)置部分存放在Excel電子表格內(nèi),從題庫Word文檔內(nèi)獲取所有試題信息后,在Excel內(nèi)完成試題選取,然后再進(jìn)入題庫文檔進(jìn)行抽題組卷。
①生成普通試卷的自動(dòng)組卷功能設(shè)計(jì)
首先,由于題庫文檔是會(huì)有變更,在每一次自動(dòng)組卷之前必須先獲取當(dāng)前題庫信息。獲取試題編號(hào)、試題形式等信息,匯總出題庫的基本參數(shù),如某章節(jié)的單選題有多少種試題類型,以便用戶來決定抽取試題類型的數(shù)目。
然后,用戶根據(jù)考試需求,輸入各章節(jié)各形式下的試題數(shù)目。試題數(shù)目有上限,如果某小節(jié)的某形式下有m個(gè)試題類型,那么用戶最多只能在這個(gè)分類下抽取m道題
接下來就進(jìn)行自動(dòng)組卷。組卷要經(jīng)歷“抽題—成卷—存儲(chǔ)組卷信息”三個(gè)步驟。
系統(tǒng)首先根據(jù)在用戶設(shè)置的參數(shù),進(jìn)行自動(dòng)抽題。為了使試卷能覆蓋更多的試題類型,所以采用一個(gè)試題類型選一題的抽取算法。同時(shí)為了防止近期的試卷內(nèi)盡量不出現(xiàn)重復(fù)試題,所以要選擇最近1次或多次組卷中未使用過的試題,次數(shù)可以進(jìn)行設(shè)置。如果某類型下的試題都使用過了,那么就盡可能選擇使用次數(shù)較少的試題。
在完成抽題后,組卷程序在每種試題形式下打亂試題編號(hào)的順序,然后再根據(jù)試題編號(hào),依次從題庫文檔中提取試題和答案,生成試題卷和答案卷。
最后將抽取的試題編號(hào)等信息發(fā)送到歷史組卷記錄的電子表格內(nèi)保存。
②滿足“一試多卷”要求的自動(dòng)組卷功能設(shè)計(jì)一試多卷,要求每份試卷的試題數(shù)量相同,查考知識(shí)內(nèi)容相同,難度相同。所以,先要根據(jù)考試考察要求生成一份普通試卷。然后進(jìn)入到歷史組卷記錄電子表格內(nèi),找到這份試卷的數(shù)據(jù)信息,然后選擇“再次生成”。
根據(jù)已有試卷抽取新試卷試題的算法如下:
遍歷已有試卷的試題。在試題所屬的試題類型下,另抽取一題,記錄下編號(hào),除非該試題類型下只有一題,那就記錄下原試題編號(hào)。
然后和生成普通試卷的“成卷”“存儲(chǔ)信息”兩個(gè)步驟一樣,完成新的試卷的完成。
③生成專項(xiàng)練習(xí)卷的自動(dòng)組卷功能設(shè)計(jì)
在生成專項(xiàng)練習(xí)卷頁面,選擇相關(guān)小節(jié),設(shè)定好各形式(選擇、填空、解答)的試題數(shù)量,程序就自動(dòng)組卷完成。其中抽取試題的算法如下:
根據(jù)題庫信息,計(jì)算各形式(選擇、填空、解答)下的試題類型個(gè)數(shù)的比例。接著按照比例分配抽題數(shù)量。然后在各試題類型下按抽題數(shù)量抽屜,記錄下編號(hào)。由于專項(xiàng)練習(xí)卷總把類型相同的試題放在一起以便強(qiáng)化記憶,所以在最后“成卷”步驟前省去了混亂試題的步驟,直接生成試卷。
2) 輔助人工組卷功能設(shè)計(jì)
當(dāng)需要自定義試卷時(shí),需要人工組卷。手動(dòng)組卷需要通過“人工選題—生成試卷”兩步完成。輔助人工組卷功能在這兩個(gè)步驟中為教師省去重復(fù)操作。
①人工選題題
庫已經(jīng)整合了所有試題,并按章節(jié)等特征排序,添加多級(jí)標(biāo)題,借助Word的導(dǎo)航欄,可以快速定位試題位置,節(jié)省了教師在多個(gè)電子文檔之間切換查看的時(shí)間。
Word 原有的選擇功能是通過點(diǎn)擊并拖動(dòng)完成的,但這操作在精準(zhǔn)度上有一定的缺陷,容易發(fā)生誤操作。所以本系統(tǒng)在Word題庫文檔內(nèi),編寫VBA宏,實(shí)現(xiàn)“標(biāo)記試題”和“取消標(biāo)記”的功能,并在工具欄內(nèi)添加宏按鈕。這樣用戶只要在點(diǎn)擊試題所在表格內(nèi)的任意位置,再點(diǎn)擊按鈕,就可以快速地標(biāo)記試題或取消標(biāo)記。比起原有的拖動(dòng)操作更簡(jiǎn)潔更精準(zhǔn)。
標(biāo)記試題是對(duì)試題所在的整個(gè)表格背景上色。顏色選擇一個(gè)顏色數(shù)值,定義為常量MarkColor。取消標(biāo)記就是把試題背景色恢復(fù)為文檔默認(rèn)色。
為了能了解選擇的試題,本功能還設(shè)計(jì)有信息顯示窗口,窗口中顯示每種形式的試題數(shù)量,以及已選試題的題號(hào),也能從窗口快速跳轉(zhuǎn)到已選擇的某一試題。
②生成試卷
在確定了選題后,首先會(huì)打亂每種形式中試題的順序。其次,將所選試題及其答案按混亂后的順序,按試題形式的分類,生成試題卷和答卷。然后,將試題編號(hào)、試題類型等信息發(fā)送到歷史組卷記錄的電子表格內(nèi)保存,完成組卷。
以上生成試卷的功能免去了教師在題庫、試卷、答案三個(gè)文檔之間切換、復(fù)制、粘貼的重復(fù)性的操作,從而節(jié)省了時(shí)間和精力。
4 結(jié)論
1) 根據(jù)現(xiàn)狀分析,現(xiàn)有的組卷系統(tǒng)并不能完全滿足各類組卷的要求。有必要設(shè)計(jì)一個(gè)基于VBA編程控制的組卷系統(tǒng)。
2) 通過對(duì)組卷需求的分析,認(rèn)為題庫中試題需要按“章節(jié)-形式-類型”進(jìn)行分類;而組卷功能要有自動(dòng)組卷功能和輔助人工組卷功能,來滿足不同的試卷需求。
3) 選擇以Word軟件為題庫管理軟件,通過編寫VBA宏程序,進(jìn)行試題的管理。選擇用Excel文檔來存儲(chǔ)組卷信息,通過VBA編程控制,進(jìn)行自動(dòng)組卷,以滿足生成普通試卷、一試多卷、專項(xiàng)練習(xí)卷的需求。通過VBA編程控制,進(jìn)行輔助人工組卷,減少了傳統(tǒng)組卷過程中的重復(fù)性操作,提高工作效率。
【通聯(lián)編輯:謝媛媛】