鄭杰
摘要:構(gòu)建自動評分系統(tǒng),是現(xiàn)階段VB課程教學(xué)的必然發(fā)展趨勢,但是以軟件質(zhì)量度量方法、動態(tài)分析方法、源程序分析比較方法等單一方法所研發(fā)設(shè)計(jì)的自動評分系統(tǒng),存下較大的局限性,難以保證評分結(jié)果的準(zhǔn)確性?;诖耍恼绿岢隽艘环N動態(tài)分析方法和源程序分析比較方法相結(jié)合的VB程序自動評分系統(tǒng)設(shè)計(jì)方法,利用VB編譯系統(tǒng)參數(shù)通過對試卷進(jìn)行自動批閱得到對應(yīng)結(jié)果,再與多個設(shè)定好的答案進(jìn)行對比,根據(jù)對比結(jié)果給出具體的試卷評分,進(jìn)而可以有效確保自動評分結(jié)果的準(zhǔn)確性。
關(guān)鍵詞:VB程序;自動評分系統(tǒng);設(shè)計(jì);實(shí)現(xiàn);實(shí)踐應(yīng)用
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)02-0061-02
無紙化考試在教學(xué)活動中變得越來越常見,經(jīng)過長期研究和實(shí)踐應(yīng)用,有關(guān)選擇題、填空題等客觀題的無紙化考試模式已經(jīng)相對成熟,自動評分系統(tǒng)也在不斷完善。但是對于有著較強(qiáng)主觀性的程序設(shè)計(jì)語言編程題,自動評分系統(tǒng)仍處于探索階段,影響了無紙化考試模式的全面推行。為解決這種問題,便需要加大對程序設(shè)計(jì)語言編程題自動評分和系統(tǒng)的研究力度,綜合系統(tǒng)設(shè)計(jì)研發(fā)難度及運(yùn)行效率等因素,提高自動評分系統(tǒng)的可操作性,充分發(fā)揮其在程序語言類課程教學(xué)過程中的輔助作用。
1 VB程序自動評分系統(tǒng)開發(fā)的重要意義
自動評分是實(shí)現(xiàn)無紙化考試的關(guān)鍵環(huán)節(jié),改變了傳統(tǒng)人工閱卷評分方式,既能夠減輕教師工作壓力,又可以提高閱卷效率,是促進(jìn)教學(xué)改革發(fā)展的一項(xiàng)重要舉措。而VB程序試題主觀性較強(qiáng),每個學(xué)生所給出的VB程序都存在一定差異,如果采用結(jié)果評分法對試卷進(jìn)行自主批閱,是無法按照設(shè)定好的程序完成對試題的評判的,所給出的評分無法代表考生的真實(shí)成績,也不能準(zhǔn)確判斷出學(xué)生對VB語程序設(shè)計(jì)語言的真實(shí)掌握情況。同時,VB課程屬于一門公共基礎(chǔ)課,每個老師一般都需要負(fù)責(zé)多個班級教學(xué)任務(wù),學(xué)生人數(shù)較多特點(diǎn)使得VB程課程試卷批閱量較大,專業(yè)課程教師不得不耗費(fèi)大量時間和精力在試卷批閱方面,不利于其他教學(xué)活動的開展,整體教學(xué)水平和教學(xué)質(zhì)量也會受到影響[1]。通過研究設(shè)計(jì)開發(fā)一套符合VB課程特點(diǎn)、滿足試卷自主批閱需求的自動評分系統(tǒng),能夠解決原有自動評分機(jī)制存在的缺陷,確保評分結(jié)果的客觀性和準(zhǔn)確性,同時還可以減輕專業(yè)課教師的試卷批閱負(fù)擔(dān),具有重要的現(xiàn)實(shí)意義。
2 VB程序自動評分系統(tǒng)功能及運(yùn)行流程
VB程序自動評分系統(tǒng)由兩部分組成,分別為數(shù)據(jù)管理系統(tǒng)和自動評分系統(tǒng),這兩部分所具備的功能各不相同,數(shù)據(jù)管理系統(tǒng)主要是負(fù)責(zé)題庫和學(xué)生成績的管理,通過對題庫內(nèi)容作出調(diào)整和更改,實(shí)現(xiàn)對試卷題目的有力控制,以滿足實(shí)際考試需求;而自動評分系統(tǒng)主要功能便是按照設(shè)定好的程序及規(guī)則,對學(xué)生試卷進(jìn)行自動批閱并給出具體評分。VB程序自動評分系統(tǒng)工作時,是按照相應(yīng)的運(yùn)行流程進(jìn)行的,首先先根據(jù)學(xué)生學(xué)號的不同,得到每個學(xué)生所上傳試卷的路徑,然后通過自動編譯對學(xué)生所提高的VB程序試卷進(jìn)行批量處理,以文本文檔形式,在每個學(xué)生試卷所對應(yīng)的文件夾內(nèi)生成翻譯結(jié)果,并在考試結(jié)果表中記錄存儲翻譯結(jié)果。系統(tǒng)運(yùn)行下一步設(shè)定流程之前,需要先對翻譯結(jié)果記錄情況進(jìn)行檢索,當(dāng)檢索結(jié)果分別顯示為true和false時,則對應(yīng)執(zhí)行下一步操作和邏輯判分。如果執(zhí)行系統(tǒng)下一步操作,則需要根據(jù)學(xué)生所編寫的VB程序類型,選擇與之相對應(yīng)的方法進(jìn)行處理[2]。如果進(jìn)入邏輯判分環(huán)節(jié),則需要以文本檔案形式讀入學(xué)生試題答案,與多個答案模板進(jìn)行對比分析,以匹配度給出最終評分。
另外,對于VB程序自動評分系統(tǒng)來講,其最為主要的功能便是自動評分。系統(tǒng)運(yùn)行過程中,以學(xué)生學(xué)號作為依據(jù),捕獲每個學(xué)生所編寫的VB程序路徑,然后通過命令菜單欄中的make一項(xiàng)發(fā)出指令,批量編譯學(xué)生程序,并對應(yīng)生成文本文件形式的編譯結(jié)果。如果學(xué)生編寫的VB程序能夠順利通過編譯,則會生成exe格式的可執(zhí)行文件[3]。然后編譯再進(jìn)行自動運(yùn)行,結(jié)果錯誤未通過編譯的學(xué)生程序則需進(jìn)入邏輯判分環(huán)節(jié),對學(xué)生試卷給出具體得分。VB程序自動評分系統(tǒng)評分功能實(shí)現(xiàn)流程如圖1所示。
3 VB程序自動評分系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
在設(shè)計(jì)VB程序自動評分系統(tǒng)時,需要明確具體設(shè)計(jì)思路,針對其中的關(guān)鍵設(shè)計(jì)環(huán)節(jié)進(jìn)行深入探討,具體包括程序自動編譯、程序自動運(yùn)行和程序邏輯判斷,進(jìn)而才能順利完成系統(tǒng)的構(gòu)建。
3.1 系統(tǒng)設(shè)計(jì)思路
現(xiàn)階段無紙考試模式中的自動評分系統(tǒng),比較常用的評分方法主要包括軟件質(zhì)量度量法、動態(tài)分析法、源程序分析比較法等幾種。如果使用軟件質(zhì)量度量法對學(xué)生VB程序進(jìn)行自動評分,則在源代碼結(jié)構(gòu)分析過程中,很難做到對程序語義的準(zhǔn)確理解,影響了評分結(jié)果的精準(zhǔn)性。如果使用動態(tài)分析法或源程序分析比較法,則主要是從語法結(jié)構(gòu)和程序算法兩方面進(jìn)行分析的,一旦學(xué)生編寫的VB程序出現(xiàn)語法錯誤或者算法錯誤時,則將會影響自動評分系統(tǒng)運(yùn)行程序的執(zhí)行,難以確保評分結(jié)果的客觀性[4]。由此可見,VB程序自動評分系統(tǒng)中僅采用一種自動評分方法時,是無法有效發(fā)揮系統(tǒng)利用價(jià)值的。所以,此次研究中在設(shè)計(jì)自動評分系統(tǒng)時,運(yùn)用了動態(tài)分析法和源程序分析比較法兩種方法,在兩者相互配合下,避免了單一自動評分方法所存在的缺陷,既可以解決程序無法編譯所造成的系統(tǒng)程序無法執(zhí)行問題,最大限度地保證評分結(jié)果的客觀性和精準(zhǔn)新,又能夠克服源程序分析比較法效率過低的弊端,快速完成對學(xué)生試卷的批量批閱。
3.2 程序自動編譯
在對學(xué)生所編寫的VB程序進(jìn)行自動評分時,應(yīng)先對其進(jìn)行自動編譯,這是確保整個自動評分系統(tǒng)功能有效發(fā)揮的基礎(chǔ)與前提。對于該環(huán)節(jié)的實(shí)現(xiàn),需要考慮兩點(diǎn)問題,分別為VB程序的批量編譯,以及利用一個VB程序去編譯另外一個VB程序。對于VB程序的批量編譯,可以借助數(shù)據(jù)庫記錄集的指針完成。學(xué)生所上傳的VB程序文件夾,在命名時所用名稱為自己的學(xué)號,而學(xué)生學(xué)號是包含在在自動評分系統(tǒng)數(shù)據(jù)庫表項(xiàng)中的,所以,可以以學(xué)生學(xué)號作為依據(jù),采集得到學(xué)生程序路徑,并通過使指針進(jìn)行移動來改變程序路徑,完成對VB程序的批量處理,得到對應(yīng)的編譯結(jié)果。VB程序自動評系統(tǒng)在對學(xué)生程序進(jìn)行自動編譯時,需要通過VB命令行選項(xiàng)中的/make projectname標(biāo)簽,發(fā)布VB編譯名稱,同時會生成一個常數(shù)便于執(zhí)行運(yùn)行命令,在系統(tǒng)的中的存儲裝置中保存編譯結(jié)果[5]。VR程序經(jīng)過make后,在輸出文件時,其路徑會在/out dir path標(biāo)簽上顯示出來。此時,便可以順利完成對學(xué)生程序的批量化自動編譯,為系統(tǒng)下一步運(yùn)行操作提供基礎(chǔ)。endprint
3.3 程序自動運(yùn)行
對于VB程序自動評分系統(tǒng)的應(yīng)用來講,程序自動運(yùn)行的實(shí)現(xiàn)難度較大,是系統(tǒng)構(gòu)建過程中需要重點(diǎn)考慮的環(huán)節(jié),具體應(yīng)對以下三方面進(jìn)行詳細(xì)分析。第一,應(yīng)先判定可以自動運(yùn)行以及無法自動運(yùn)行的程序有哪些,對兩者進(jìn)行界定加以區(qū)分,判定依據(jù)為數(shù)據(jù)庫中考試結(jié)果記錄表中的翻譯結(jié)果表項(xiàng)。實(shí)際判定過程中,需要先對表項(xiàng)中的每行翻譯結(jié)果進(jìn)行逐一查看,根據(jù)具體數(shù)據(jù)分別做出true和false兩種不同判斷,如果程序判定結(jié)果為true,則程序通過自動運(yùn)行在所對應(yīng)文件夾中找到exe文件;如果程序判定結(jié)果為false,則系統(tǒng)下一步運(yùn)行需執(zhí)行邏輯判分操作。第二,將測試數(shù)據(jù)導(dǎo)入到系統(tǒng)中,并實(shí)現(xiàn)部分按鈕的自動點(diǎn)擊。對于VB程序來講,可以利用其自身窗體中所擁有的控件加以控制,根據(jù)該思想,通過復(fù)制將學(xué)生程序中的窗體添加至空窗體中,此時便可以對學(xué)生窗體中的控件采取相應(yīng)的控制手段。需要注意的是,為了保證窗體控件控制的有效性,要統(tǒng)一規(guī)范同一類控件命名規(guī)則。當(dāng)程序窗體完成自動運(yùn)行后,可以直接將其卸載,然后再根據(jù)系統(tǒng)自動運(yùn)行需求添加新的窗體。第三,獲取自動運(yùn)行結(jié)果。將各類數(shù)據(jù)導(dǎo)入到VB程序自動評分系統(tǒng)中,通過測試得到對應(yīng)結(jié)果并記錄在數(shù)據(jù)庫中,然后再與數(shù)據(jù)庫中原本存在的測試記錄表進(jìn)行比較做出判斷,完成程序自動運(yùn)行。
3.4 程序邏輯判斷
程序邏輯的判斷能夠?yàn)閷W(xué)生試卷自動評分提供可靠依據(jù),是VB程序自動評分系統(tǒng)的關(guān)鍵所在。程序邏輯判斷過程類似于人工閱卷模式中,教師對比參考答案對學(xué)生試卷進(jìn)行評分,在該環(huán)節(jié),自動評分系統(tǒng)會將學(xué)生程序與模板答案進(jìn)行對比,根據(jù)兩邏輯結(jié)構(gòu)匹配性高低,客觀給出學(xué)生程序評分,進(jìn)而完成系統(tǒng)整個運(yùn)行過程[6]。將學(xué)生所編寫的VB程序?qū)氲阶詣釉u分系統(tǒng)后讀入數(shù)組,然后再對數(shù)據(jù)庫中的模板答案也進(jìn)行數(shù)組讀入處理。將學(xué)生程序和模板答案程序中的元素進(jìn)行一一對應(yīng)比較,其中關(guān)鍵詞的匹配是兩者之間比較的關(guān)鍵,為控制關(guān)鍵詞的先后順序,可在該環(huán)節(jié)設(shè)置一個循環(huán)結(jié)構(gòu),根據(jù)關(guān)鍵詞的匹配情況,將學(xué)生程序與多個模板答案進(jìn)行對比。當(dāng)?shù)谝粋€關(guān)鍵詞便無法順利匹配時,則表示學(xué)生程序該模板答案無法匹配,需要再與下一個模板答案進(jìn)行匹配,經(jīng)過多次操作后,實(shí)現(xiàn)兩者有效匹配便可終止系統(tǒng)運(yùn)行。最后根據(jù)學(xué)生程序與模板打答案之間可以順利匹配的關(guān)鍵詞數(shù)量,對學(xué)生程序進(jìn)行評分,得到最終評分結(jié)果。此時便可利用VB程序自動評分系統(tǒng),完成對學(xué)生程序的自動批閱。
4 VB程序自動評分系統(tǒng)研究與設(shè)計(jì)結(jié)果分析及總結(jié)
通過研究可以發(fā)現(xiàn),VB程序自動評分系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),所用關(guān)鍵技術(shù)主要包括程序自動編譯、程序自動運(yùn)行和程序邏輯判斷。首先,對于程序自動編譯來講,需要用到VB中的命令行選項(xiàng),在數(shù)據(jù)庫中數(shù)據(jù)集指針的幫助下,對學(xué)生進(jìn)行批量處理,為系統(tǒng)后續(xù)操作指令的執(zhí)行奠定良好基礎(chǔ)。其次,對于程序自動運(yùn)行來講,需先對翻譯結(jié)果進(jìn)行逐行查看,以數(shù)據(jù)庫中考試結(jié)果記錄表中的翻譯結(jié)果表項(xiàng)為參照,對程序是否可以自動運(yùn)行做出判定。在通過復(fù)制方法在空白窗體出增加學(xué)生程序窗體,根據(jù)數(shù)據(jù)庫匹配輸出結(jié)果。最后,對于程序邏輯判斷來講,分別對學(xué)生源程序和模板答案程序進(jìn)行數(shù)組讀入處理,逐一匹配兩者元素,并構(gòu)建循環(huán)結(jié)構(gòu)控制匹配關(guān)鍵詞的先后順序。
在VB課程教學(xué)過程中,通過研究設(shè)計(jì)VB程序自動評分系統(tǒng),能夠改變傳統(tǒng)人工閱卷評分方式,大大減輕了專業(yè)課教師的工作任務(wù)量,教師有很多的時間和精力開展其他教學(xué)活動和研究工作,有利于整體教學(xué)效果的提升。并且,將動態(tài)分析方與源程序分析比較方法相結(jié)合,自動評分方式更加符合VB程序主觀性特點(diǎn),確保了評分結(jié)果的客觀性和精準(zhǔn)性,能夠幫助VB課專業(yè)教師了解并掌握學(xué)生的學(xué)習(xí)情況,對教學(xué)成果做出科學(xué)評估,根據(jù)學(xué)生的得分情況找出教學(xué)工作中的不足加以強(qiáng)化,有利于理想教學(xué)效果的實(shí)現(xiàn)。除此之外,VB自動評分系統(tǒng)的良好應(yīng)用,為無紙化考試的全面推行提供了基礎(chǔ)保障,在推動教學(xué)改革和創(chuàng)新過程中發(fā)揮著至關(guān)重要的作用。這些都是VB程序自動評分系統(tǒng)在VB課程教學(xué)中所體現(xiàn)出的優(yōu)勢,由此可見,加大在該方面的研究力度,開發(fā)設(shè)計(jì)并實(shí)現(xiàn)VB程序自動評分系統(tǒng),具有重要的現(xiàn)實(shí)意義。
5 結(jié)束語
自動評分系統(tǒng)在VB程序試卷批閱中的有效應(yīng)用,可以在最大化的保證評分結(jié)果精準(zhǔn)性的前提下,提高試卷批閱效率,減輕教師工作負(fù)擔(dān),對于教學(xué)發(fā)展與進(jìn)步具有促進(jìn)作用。在VB教學(xué)過程中,應(yīng)充分認(rèn)識到VB程序自動評分系統(tǒng)研究及設(shè)計(jì)的重要意義,明確其具體功能及運(yùn)行流程,分別對程序自動編譯、程序自動運(yùn)行和程序邏輯判斷等關(guān)鍵設(shè)計(jì)環(huán)節(jié)進(jìn)行嚴(yán)格把控,進(jìn)而才能順利實(shí)現(xiàn)VB程序自動評分系統(tǒng)的構(gòu)建,發(fā)揮其在VB課程教學(xué)中的輔助作用。
參考文獻(xiàn):
[1] 白金鳳.VB程序設(shè)計(jì)試題自動閱卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].長春:吉林大學(xué),2014:22-29.
[2] 程欣.VB程序設(shè)計(jì)考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].石家莊:河北科技大學(xué),2013:31-36.
[3] 劉瑞軍.VB程序自動評分系統(tǒng)的分析與設(shè)計(jì)[J].宜賓學(xué)院學(xué)報(bào),2016(6):46-49.
[4] 付亞臣.基于Windows消息機(jī)制的VB編程題評分系統(tǒng)的研究與應(yīng)用[D].大連:大連海事大學(xué), 2012:28-35.
[5] 鄭麗敏.Visual Basic程序設(shè)計(jì)題自動評分系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[C].中國農(nóng)業(yè)工程學(xué)會電氣信息與自動化專委會、中國電機(jī)工程學(xué)會農(nóng)村電氣化分會科技與教育專委會2010年學(xué)術(shù)年會,2012.
[6] 李桂芝,王偉,周長勝.VB課程實(shí)踐教學(xué)輔助系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].教育教學(xué)論壇,2016(17):220-221.endprint