成 軍, 袁利永
(浙江師范大學 a.信息傳播實驗教學中心; b.行知學院,浙江 金華 321004)
·計算機技術應用·
基于C/S在線自動評判系統的設計與實現
成 軍a, 袁利永b
(浙江師范大學 a.信息傳播實驗教學中心; b.行知學院,浙江 金華 321004)
VB程序設計的實驗教學過程中,學生的動手編程能力的培養是尤為重要的一個環節,學生必須通過大量的編程實踐,才能更好地理解程序概念和掌握VB編程方法。目前,絕大多數高校仍然采用人工方式對學生的VB上機實驗作品進行評判,存在工作量大、反饋不及時等問題。針對VB上機實驗教學中尚存不足,提出了基于C/S架構的VB上機實驗在線評判系統設計方案。首先分析了系統功能需求,提出了系統設計方案,然后介紹網絡通信、VB程序自動評判等關鍵模塊的實現方法,最后簡要介紹了該系統在VB上機實驗教學中的應用情況。
VB程序設計; 實驗教學; 自動評判; 自動閱卷
盡管VB作為程序設計語言已經有了20多年的歷史,已經不算先進,但作為非計算機專業學生的計算機程序設計教學語言,VB有著獨特的優勢,例如:面向對象、事件驅動、簡單易用的集成化開發環境、語言的簡單易學性等,因此,很多高校一直把VB作為非計算機專業學生的計算機程序設計教學語言。需要特別指出的是,在最新版浙江省普通高校招生考試改革方案中,信息技術和通用技術作為技術科目已經和傳統的“理、化、生、政、史、地”一起成為7選3科目,而信息技術的加試模塊部分就是VB程序設計[1],這足以顯示VB在計算機教學語言中的重要地位。因此,VB課程將在很長一段時間內在高校及中小學計算機教學中扮演十分重要的角色。
VB程序設計十分重視學生的動手編程能力的培養,學生必須通過大量的編程實踐,才能較好地理解程序概念和掌握VB編程方法。為了能夠及時反饋學生的學習掌握情況,必須及時地對學生提交的實驗作品進行評判[2-3]。隨著高校學習評價改進的推進,“分散考試,以練代考”等形式的形成、課程考核方法越來越受到人們的重視[4]。然而絕大多數高校仍然采用人工方式對學生的VB上機實驗作品進行評判,這不但大大增加了教師的工作量,也無法保證評價的及時性和客觀性。
目前,國內對VB程序的自動評判開展了一些研究[5-8],例如:上海大學鄭衍衡教授、南京理工大學唐振民教授等,他們帶領其研究生對相關問題開展了一些研究,提出了一些十分有價值的方法。另外,還有一些學校和研究機構已經開發出了相應的考試系統并應用到相關的等級考試中,取得了不錯的效果[9-13]。然而,現有的研究主要集中在自動評判的技術實現層面,而對系統的整體缺乏研究,系統通用性較差。另外,現有系統的評判得分點劃分較粗,往往只是針對整個作品給出一個二值評價,閱卷結果不夠人性化。此外,目前已有的VB程序自動評判系統都是基于單機模式,或集成于某項考試的綜合閱卷系統中,而用于實驗教學的VB上機實驗在線評判系統或平臺卻尚未出現。因此,設計和開發VB上機實驗在線評判系統顯得十分迫切。
1.1系統要求
VB上機實驗在線評判系統主要用于實驗教學過程中學生實驗作品的自動評判[14],主要用戶為高校或中學師生。目標是實現VB上機實驗作品的自動評判,使課程考核和實驗評價更加科學與合理,同時把任課教師從繁重的重復性體力勞動中解放出來,真正體現以人為本。因此,VB上機實驗在線評判系統必須滿足如下系統要求:
(1) 實用性。系統能夠實現VB上機實驗作品的客觀評價,能夠實現各類題型、多種答案的合理評判。
(2) 健壯性。系統能夠克服用戶程序可能出現的各種錯誤,防止出現系統崩潰、系統死機等情況,能對語法錯誤、運行時錯誤及死循環進行有效處理。
(3) 開放性。系統應具有一定的開放性,在無需修改系統設計的條件下,教師可以方便地增加、修改試題和評判標準。
1.2功能設計
VB上機實驗在線評判系統功能設計框圖如圖1所示。

圖1 系統功能模塊設計
教師端包含的功能模塊主要包括:實驗內容管理、閱卷描述管理、課程學生管理、實驗任務發布、學生成績查看等。實驗內容管理模塊主要實現VB課程實驗內容的增加、刪除、修改等操作功能,實驗內容包括實驗目的、實驗要求、實驗步驟、實驗素材等信息。為了實現系統的開放性,設計了一套實驗作品閱卷信息描述和執行系統,閱卷描述管理模塊主要對用于實驗作品自動評判的閱卷信息進行描述和測試。課程學生管理模塊主要實現對VB教學班、教學班學生信息管理等功能。實驗任務發布模塊用于教師根據課堂教學進度把相關的實驗內容作為實驗任務進行發布,實驗任務發布后,學生才可以在客戶端查看相關實驗內容和要求等信息。學生成績查看模塊主要用于教師查看和統計學生的實驗完成進度、實驗成績等信息。
學生端包含的功能模塊主要包括:實驗任務獲取查看、實驗作品在線評判、實驗成績提交確認、歷次實驗成績查看等。學生通過實驗任務獲取查看模塊查看教師發布的實驗任務,并根據實驗任務中描述中的實驗目的、要求、步驟和提供的素材完成實驗操作。然后,學生使用實驗作品在線評判模塊來在線評判自己的實驗作品,系統根據相應實驗任務的閱卷描述對學生提交的作品進行自動評判,并將成績和閱卷詳細信息反饋給學生。若對自己的實驗作品成績不夠滿意,學生可以繼續對實驗作品進行修改和完善,并再次提交系統進行自動評判。如果學生對自己的實驗作品成績表示滿意,則可以通過實驗成績提交確認模塊向系統確認自己完成了當前實驗,并提交相應實驗作品的成績和閱卷信息。另外,學生可以通過成績查看模塊查看歷次實驗任務的成績,以及自己的成績在整個教學班中所處的位置。
1.3模塊設計
圖2描述了VB上機實驗在線評判系統的軟件模塊設計。
本系統采用C/S架構,由學生(客戶)端和教師(服務)端兩部分組成[15]。客戶端主要有學生用戶操作接口模塊、網絡通信模塊、實驗作品自動評判模塊組成,服務端主要由教師用戶操作接口模塊、網絡通信模塊和數據訪問模塊組成。網絡通信模塊、VB實驗作品自動評判模塊是本系統的兩大核心模塊,下面重點介紹這兩個模塊的設計方案。

圖2 系統軟件模塊設計
1.3.1網絡通信模塊設計
網絡通信模塊是負責客戶端與服務器端之間的數據通信。為了保證網絡數據通信的可靠性,本系統的網絡通信采用TCP/IP技術作為底層實現技術。網絡通信模塊設計的核心是客戶端與服務端的應用層通信協議設計,通過對VB上機實驗在線評判系統的業務分析,設計了如表1所示的通信協議。

表1 應用層通信協議
1.3.2VB實驗作品自動評判模塊設計
VB實驗作品自動評判模塊負責對學生完成的實驗作品進行自動評判。本系統主要根據VB窗體文件內容進行控件增刪、屬性設置、程序填空、程序改錯、程序功能等實驗操作的自動評判。下面介紹針對不同實驗操作的自動評判機制。
(1) 控件增刪、屬性設置的評判方法。VB窗口的所有控件信息都是以文本形式保存在窗體文件(*.frm)中,通過對窗體文件文本內容的搜索獲得當前窗體所有控件的列表,然后在控件列表中進行檢索操作來評判學生是否已經完成了控件的增加或刪除。針對屬性設置操作,首先從窗體文件中提取出指定控件的所有信息,然后從控件信息中提取指定屬性的屬性值,最后判斷獲取的屬性值是否滿足操作要求。
(2) 程序填空、程序改錯的評判方法。首先在窗體文件中搜索填空項或改錯項所在的事件過程,然后在該事件過程中提取出填空項或改錯項的內容,最后對填空項或改錯項內容進行評判。由于填空項或改錯項的答案是VB語句或表達式,其答案存在很多種可能的寫法,采用字符串匹配的評判方法無法覆蓋所有可能的答案。本系統采用表達式求解和語句運行的方法對填空項或改錯項的答案進行評判。
(3) 程序功能的評判方法。在VB程序設計中,體現程序功能的事件過程往往采用控件屬性來實現數據輸入和結果輸出。基于這一特點,本文提出了基于黑盒測試思想的程序功能評判方法,其基本流程如圖3所示。基本過程如下:首先根據評閱要求在VB源程序中嵌入程序功能評判輔助代碼;其次編譯VB源程序;然后調用編譯所得的可執行文件;最后分析監測輸出文件進行動態功能評閱。其中,程序功能評判輔助代碼的基本結構如圖4所示。

圖3 程序功能評判基本流程
圖4 程序功能評判輔助代碼基本結構
本系統采用VB語言實現,數據庫采用Microsoft Access2007,網絡通信采用Winsock控件。下面主要介紹網絡通信模塊、自動評判模塊的關鍵實現。
2.1網絡通信模塊的實現
為了實現客戶端與服務端的多對一通信,客戶端使用一個Winsock控件,而服務端采用了多個Winsock控件組成的控件數組,其中第1個Winsock控件稱為主Winsock,其他Winsock控件稱為從Winsock,主Winsock負責偵聽,從Winsock負責與客戶端具體通信。由表1中設計的應用層通信協議可知,網絡通信都是由客戶端發起,最后也由客戶端結束。因此,本系統設計了如圖5所示的通信基本流程。
由圖5可見,當客戶端需要與服務端進行通信時,客戶端Winsock向服務端主Winsock發出連接請求;服務端主Winsock偵聽到連接請求后,指定一個從Winsock控件與客戶端Winsock建立連接;當客戶端Winsock收到連接成功消息后,向服務端發送相關信息;服務端接收到信息后對信息進行處理,并向客戶端發送反饋信息;客戶端收到服務端的反饋信息后關閉連接;服務端從Winsock收到連接關閉消息后,關閉當前連接并釋放相關資源。基于上述網絡通信基本過程和原理,本系統實現了表1中設計的所有應用層通信協議,具體細節不再贅述。
2.2自動評判模塊的實現
自動評判模塊的關鍵是程序填空(改錯)題和程序功能的自動評判。程序填空(改錯)題的自動評判采用表達式求解和語句運行實現。為了方便地求解VB表達式和運行VB語句,本系統采用了微軟的Script Control控件,該控件是一個功能完善的腳本解釋和運行引擎,它提供VBScript和Jscript(TM)兩種Script引擎,能夠實現VB表達式的求解和VB語句的運行。具體實現方法在前期研究工作[16]中作了介紹,在此不再贅述。

圖5 網絡通信基本流程
程序功能自動評判實現機制如圖6所示。首先在學生實驗程序(窗體文件)中嵌入自動評判輔助代碼,然而編譯并運行學生實驗程序,最后分析學生實驗程序運行結果文件中的數據完成評分操作。為了防止學生實驗程序中可能存在的死循環等異常,本系統采用了基于定時器的學生實驗程序運行監測與異常中止機制。

圖6 程序功能自動評判實現機制
VB自動評判輔助代碼嵌入方法如圖7所示。首先根據自動評判閱卷描述信息構造CheckRunFunction過程,然后在窗體的Load事件過程中插入對CheckRunFunction過程的調用,調用結束后自動關閉當前學生實驗程序。
2.3系統界面
VB上機實驗在線評判系統采用VB6.0中文版開發,系統主要界面如圖8和圖9所示。

圖7 VB自動評判輔助代碼嵌入方法

圖8 服務器主界面圖

圖9 客戶端自動評判界面
本文介紹了基于C/S架構的VB上機實驗在線評判系統的設計與實現。目前該系統已經在本校的VB 程序設計基礎實驗教學進行了試用,已經能夠實現十幾個實驗任務的在線自動評判。該系統的應用把教師從大量重復性勞動中解放出來,從而有更多精力用于對學生進行針對性地指導,提高了學生分析問題、解決問題的能力,提高了教學質量。當然,目前的VB上機實驗在線評判系統仍然存在一些問題,如界面不夠友好,數據分析功能不足等,我們將不斷對該系統進行優化完善。
[1] 浙江省深化高校考試招生制度綜合改革試點方案[EB/OL].浙江省教育廳浙政發〔2014〕37號,(2014-9-19),http://www.zjedu.gov.cn/news/26772.html.
[2] 何文廣,周 珂,熊剛強.程序設計課程實驗教學改革與實踐[J].實驗室研究與探索,2016,35(6):163-165.
[3] 丁 蓉,朱 琳.“VB程序設計”課程的創新性實驗教學[J].實驗技術與管理,2012,29(8):163-165.
[4] 杜承達(譯).形成性評價(Formative Assessment)的本質及其對教與學的影響[J].考試研究,2010,6(1):4-18.
[5] 段漢周,凌 捷,鄭衍衡.VB程序設計考核自動評閱系統中若干問題的研究[J].計算機工程,2001,27(4):167-168.
[6] 劉 雙.VB程序設計題自動評閱技術的研究與實現[D].沈陽:沈陽工業大學,2006.
[7] 盛英潔.VB程序員考核自動閱卷系統的設計與實現[D].南京:南京理工大學,2003.
[8] 白金鳳.VB程序設計試題自動閱卷系統的設計與實現[D].長春: 吉林大學, 2014.
[9] 喬少杰,楊 燕,葛永明,等.基于B/S架構的多用戶在線程序評判系統設計與實現[J].計算機工程與科學, 2011, 30(A1): 58-61.
[10] 黃 瓊,劉 輝,廖家平.基于C/S的Office在線考試管理系統的設計與實現[J].實驗室研究與探索,2007,26(12):313-315.
[11] 蔣 蕓,周惟公,王亞芳.實驗物理考試與自動判卷系統的應用[J].實驗室研究與探索,2010,29( 10) :282-283.
[12] 劉 楠,孫國道,田賢忠.ACM在線評判系統設計與實現[J].計算機時代,2010(2):34-38.
[13] 陳湘驥,徐東風,楊秋妹.在線評判在C 語言課程設計教學中的應用[J].計算機教育,2010(3):97-100.
[14] 倪 晟,金炳堯,王璟瑤.實驗教學信息化體系建設的探索與實踐[J].實驗室研究與探索,2013,32( 6) :117-120.
[15] 侯淑英.B/ S 模式和C/ S 模式優勢比較[J].沈陽教育學院學報.2007,9(2):98-100.
[16] 袁利永,劉日仙.Script Control在自動閱卷系統中的應用研究[J].計算機工程與設計, 2010, 31(19): 4316-4319.
DesignandImplementationofOnlineAutomaticEvaluationSystemBasedonC/S
CHENGJuna,YUANLiyongb
(a.Experimental Teaching Center for Media and Communication Studies; b.Xingzhi College, Zhejiang Normal University, Jinhua 321004,Zhejiang, China)
In the experimental teaching of VB programming, training students’ ability of programming is a very important part.And students must pass a lot of programming practice in order to better understand the concept of programming and master VB programming capabilities.At present, the vast majority of colleges and universities still use artificial methods to evaluate the students’ VB experimental work on the computers, and there are many problems such as large workload, delayed feedback.Aiming at the problems of large workload and short of feedback in the experimental teaching of VB, this paper puts forward a design scheme of online experiment system based on C / S structure.First of all, the system functional requirements are analyzed, and the design scheme of the system is put forward.Then it introduces the implementation of key modules of network communication, VB automatic evaluation etc.Finally, the application of the system in VB experiment teaching is briefly introduced.
VB programming; experimental teaching; automatic evaluation; automatic marking

TP 311.1
A
1006-7167(2017)10-0140-05
2017-01-09
成 軍(1977-),男,浙江義烏人,碩士,實驗師,研究方向:實驗教學信息化、實驗室管理。Tel.:0579-82298787,13566997796; E-mail: chengj@zjnu.cn