【摘要】文章介紹計(jì)算機(jī)公共課電子考試系統(tǒng)的信息建模和功能建模,并且對(duì)系統(tǒng)實(shí)現(xiàn)進(jìn)行了詳細(xì)討論。通過(guò)電子考試系統(tǒng)實(shí)現(xiàn)平時(shí)作業(yè)的提交、批改,期中和期末考試的組織和安排,以及日常學(xué)生和教師的互動(dòng),減輕了公共課教師的工作強(qiáng)度,取得了良好的效果。
【關(guān)鍵詞】計(jì)算機(jī)公共課;電子考試系統(tǒng);Ajax;Browser-Server架構(gòu)
【中圖分類號(hào)】G434【文獻(xiàn)標(biāo)識(shí)碼】B 【論文編號(hào)】1009—8097 (2008) 07—0090—03
引言
中國(guó)人民大學(xué)開設(shè)了《計(jì)算機(jī)基礎(chǔ)》、《Internet應(yīng)用》、《數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用》、《多媒體技術(shù)與應(yīng)用》、《網(wǎng)頁(yè)設(shè)計(jì)》等面向非計(jì)算機(jī)專業(yè)的全校公共課,這些課程分布在大學(xué)一年級(jí)和大學(xué)二年級(jí)開設(shè)。作為必修基礎(chǔ)課,每年有將近2500名各個(gè)專業(yè)的學(xué)生選修了上述課程,每個(gè)教學(xué)班的規(guī)模在150-200人之間。
對(duì)學(xué)生的平時(shí)作業(yè)進(jìn)行批改,進(jìn)行期中和期末考試的安排,對(duì)于教師來(lái)講,需要極大的勞動(dòng)強(qiáng)度。為了提高工作效率,公共課教研室決定開發(fā)電子考試系統(tǒng)。通過(guò)該平臺(tái)實(shí)現(xiàn)教師和學(xué)生的互動(dòng),教師對(duì)學(xué)生平時(shí)作業(yè)的修改,完成期中和期末考試的安排,各項(xiàng)成績(jī)自動(dòng)進(jìn)行統(tǒng)計(jì)匯總,生成學(xué)生的總成績(jī),通過(guò)系統(tǒng)互連,導(dǎo)入教務(wù)處的電子教務(wù)系統(tǒng)。該系統(tǒng)減輕了公共課教師的工作強(qiáng)度,提高了工作效率,取得了良好的效益。

一 系統(tǒng)設(shè)計(jì)
1 信息建模
我們首先進(jìn)行系統(tǒng)的信息建模,主要的實(shí)體包括:教師、學(xué)生、課程、教學(xué)班、題庫(kù)、試卷、考試安排、考試答卷、平時(shí)作業(yè)、作業(yè)答卷、教學(xué)班成績(jī)表等。各個(gè)實(shí)體及其關(guān)系,簡(jiǎn)述如下。
① 教師表存儲(chǔ)教師的基本信息,包括姓名、登錄系統(tǒng)的用戶名、密碼,以及教師的聯(lián)系信息,根據(jù)教師的意愿,可以把某些聯(lián)系方式公布給學(xué)生,以便學(xué)生和教師通過(guò)不同渠道進(jìn)行交流,這些聯(lián)系方式包括辦公室電話、家庭電話、移動(dòng)電話、電子郵件、及時(shí)通訊號(hào)碼(QQ、MSN、Yahoo Messenger ID)等。② 學(xué)生實(shí)體的主要屬性包括學(xué)號(hào)、姓名、系統(tǒng)用戶名稱和密碼等,學(xué)生的其它信息一般不在系統(tǒng)里進(jìn)行維護(hù)。③ 課程表保存課程信息,包括課程的名稱、課程的簡(jiǎn)介、課程的教學(xué)大綱、以及課程的學(xué)分等基本信息。④ 教學(xué)班是一個(gè)關(guān)聯(lián)實(shí)體,把教師、課程、和學(xué)生聯(lián)系起來(lái),一般持續(xù)一個(gè)學(xué)期的時(shí)間。教學(xué)班的屬性包括教學(xué)班號(hào),教學(xué)班起止時(shí)間等。⑤ 題庫(kù)按照各門課程來(lái)進(jìn)行組織,題庫(kù)里包含各種類型的試題,包括客觀題和主觀題??陀^題的題型主要有填空題、單選題、多選題、對(duì)錯(cuò)題等,主觀題包括簡(jiǎn)答題、操作題和綜合題。對(duì)每個(gè)題目的所屬章節(jié)進(jìn)行標(biāo)記,方便進(jìn)行單元測(cè)試。為了在機(jī)器自動(dòng)出題的時(shí)候,平衡試卷的難度,每個(gè)題目的難度以5分制進(jìn)行指定,從1分到5分,表示難度加大,5分的題目難度最大。⑥ 試卷是題庫(kù)里題目的一個(gè)子集,目的是進(jìn)行期中考試和期末考試,試卷以兩種方式進(jìn)行生成,分別是機(jī)器自動(dòng)出題和教師人工出題。⑦ 試卷制作完成,還需要進(jìn)行考試安排,考試安排把考試的時(shí)間、考試的試卷、參加考試的教學(xué)班確定下來(lái)。該教學(xué)班的學(xué)生在考試期間登錄系統(tǒng),即可參加考試;每個(gè)考試可以只使用一個(gè)試卷,或者使用A卷和B卷,座位之間根據(jù)IP地址的特點(diǎn),由服務(wù)器端顯示不同的試卷,以避免相臨座位的學(xué)生互相抄襲。⑧ 平時(shí)作業(yè)由教師發(fā)布,在某個(gè)時(shí)間段,開放給某個(gè)教學(xué)班的學(xué)生來(lái)進(jìn)行作答。之所以在平時(shí)作業(yè)當(dāng)中限制開放時(shí)間,目的是督促學(xué)生盡快完成作業(yè),而不是臨到學(xué)期末才突擊拷貝其他同學(xué)作業(yè)提交。⑨ 考試答卷和作業(yè)答卷,則是每個(gè)學(xué)生的每個(gè)考試安排、或每次作業(yè)有一份答卷;教師負(fù)責(zé)考試答卷的判卷和作業(yè)答卷的批改,并且給出成績(jī)。⑩每個(gè)教學(xué)班的平時(shí)作業(yè)、期中考試、期末考試成績(jī),按照事先設(shè)定的比例關(guān)系(比如平時(shí)20%,期中30%,期末50%),在學(xué)期末匯總到教學(xué)班成績(jī)表,以Excel文件格式進(jìn)行導(dǎo)出,以文件方式導(dǎo)入教務(wù)處的電子教務(wù)系統(tǒng),完成和學(xué)生學(xué)籍管理的集成。把成績(jī)導(dǎo)入到電子教務(wù)系統(tǒng),可以通過(guò)系統(tǒng)接口,直接進(jìn)行導(dǎo)入,目前我們正在對(duì)系統(tǒng)進(jìn)行后續(xù)開發(fā),增加包括該功能在內(nèi)的增強(qiáng)功能。各個(gè)實(shí)體及其關(guān)系如圖2所示,1:*表示一對(duì)多的關(guān)系。

2 功能建模
為了對(duì)系統(tǒng)的功能進(jìn)行建模,我們從使用系統(tǒng)的用戶角色入手進(jìn)行分析。系統(tǒng)的主要角色包括管理員、教師、以及學(xué)生。
管理員角色:管理員主要負(fù)責(zé)系統(tǒng)的初始設(shè)置、數(shù)據(jù)的導(dǎo)入、數(shù)據(jù)的備份等系統(tǒng)的日常維護(hù)工作。除了這些功能,所有的其它功能對(duì)管理員開放,以便在學(xué)生和教師遇到系統(tǒng)或者授權(quán)問(wèn)題不能解決的時(shí)候,可以求助于管理員。
教師角色:教師角色是系統(tǒng)的關(guān)鍵角色,整個(gè)系統(tǒng)是由教師進(jìn)行驅(qū)動(dòng)的。教師角色的功能包括:題庫(kù)維護(hù),出試卷,發(fā)布平時(shí)作業(yè),試卷判分,平時(shí)作業(yè)批改,回答學(xué)生提出的問(wèn)題,發(fā)布公告等。
系統(tǒng)在使用的過(guò)程中,如果題庫(kù)的題目有歧義,教師可以進(jìn)行修改,并且可以通過(guò)設(shè)計(jì)新的題目豐富題庫(kù),以增加考核覆蓋的廣度。
與課程教授同步,教師可以發(fā)布平時(shí)作業(yè),并且在課堂上告訴學(xué)生,在某個(gè)時(shí)間段里面下載題干,完成作業(yè)要求,把文件上傳。
電子考試系統(tǒng)的核心功能,是考試的組織和安排。作為教師角色,負(fù)責(zé)出試卷的工作,試卷以兩種方式進(jìn)行生成,分別是計(jì)算機(jī)自動(dòng)出題和人工出題。自動(dòng)出題的實(shí)現(xiàn)策略是,由教師指定少量參數(shù),比如考試覆蓋的章節(jié)范圍,各種題型的數(shù)量,考試的難度系數(shù)等,系統(tǒng)根據(jù)這些參數(shù),從題庫(kù)中以隨機(jī)方式選擇題目組織成試卷。人工出卷子,則完全通過(guò)手工的方式,從題庫(kù)往試卷里增加題目。自動(dòng)出題可以減少出題時(shí)間,而人工出題,則在試卷的質(zhì)量上更勝一籌。我們建議,首先采用自動(dòng)出題方式生成試卷草稿,然后通過(guò)人工增刪的方式進(jìn)行細(xì)微調(diào)整。
學(xué)生角色:對(duì)應(yīng)教師的作業(yè)發(fā)布和考試安排,學(xué)生角色的主要功能是完成作業(yè)和參加考試。
當(dāng)學(xué)生完成作業(yè)和考試以后,教師必須進(jìn)行判分。對(duì)于客觀題來(lái)講,可以由系統(tǒng)進(jìn)行自動(dòng)判分,包括選擇題和對(duì)錯(cuò)題,在答對(duì)和答錯(cuò)上是沒(méi)有歧義的,但是填空題往往存在不能完全自動(dòng)判分的狀況,比如學(xué)生把答案“MPEG”寫成“Mpeg”,系統(tǒng)往往判斷不出來(lái),對(duì)于不能進(jìn)行自動(dòng)判分的客觀題,系統(tǒng)一般不能武斷地給0分,而是改為人工判分。對(duì)于主觀題,則只能進(jìn)行人工判分,一般采用某個(gè)題目批量判分的方式,而不是判完一個(gè)學(xué)生的卷子,然后再判另外一個(gè)學(xué)生的卷子。
其它功能:為了增加師生的互動(dòng),系統(tǒng)提供答疑解惑功能,學(xué)生可以把問(wèn)題提交給老師,老師登錄系統(tǒng)看到該問(wèn)題可以作答;如果某些問(wèn)題問(wèn)的比較多,則老師方可以制作成“常見問(wèn)題解答”,公告給全體學(xué)生看到。系統(tǒng)的其它功能包括教案查詢與下載、網(wǎng)絡(luò)文件管理等。
二 系統(tǒng)實(shí)現(xiàn)
系統(tǒng)以Browser-Server的方式進(jìn)行實(shí)現(xiàn),整個(gè)系統(tǒng)是一個(gè)三層結(jié)構(gòu),如圖4所示。
教師和學(xué)生通過(guò)瀏覽器操作電子考試系統(tǒng),中間層是應(yīng)用服務(wù)器,后臺(tái)由數(shù)據(jù)庫(kù)服務(wù)器和FTP服務(wù)器組成,分別負(fù)責(zé)存儲(chǔ)系統(tǒng)基本信息,以及管理上傳文件。
為了支持大量用戶并發(fā)訪問(wèn)系統(tǒng),保持系統(tǒng)良好的性能表現(xiàn),我們采用如圖5所示的應(yīng)用系統(tǒng)設(shè)計(jì)方案,使用了MVC,F(xiàn)accedil;ade等不同的設(shè)計(jì)模式[1]。
1 客戶端實(shí)現(xiàn)
Web頁(yè)面扮演客戶端的功能??蛻舳说拈_發(fā)工作包括:① 設(shè)計(jì)頁(yè)面布局(Layout),利用控件,創(chuàng)建頁(yè)面;② 建立頁(yè)面元素(包括控件)所需要的樣式(Cascading Style Sheet)。通過(guò)對(duì)樣式單獨(dú)進(jìn)行定義,可以很方便地改變界面的風(fēng)格;③ 建立客戶端請(qǐng)求處理函數(shù)、以及服務(wù)器應(yīng)答的回調(diào)函數(shù)??蛻舳说恼?qǐng)求函數(shù),一般通過(guò)提交按鈕來(lái)進(jìn)行觸發(fā);而回調(diào)函數(shù)則負(fù)責(zé)處理服務(wù)器端的應(yīng)答信息,把結(jié)果展示出來(lái)。為了對(duì)結(jié)果進(jìn)行展示,可以把渲染工作交給一個(gè)渲染函數(shù)(Render Function)來(lái)進(jìn)行實(shí)現(xiàn);④ 實(shí)現(xiàn)渲染函數(shù)。服務(wù)器的應(yīng)答數(shù)據(jù),可以通過(guò)不同的方式顯示給用戶。渲染函數(shù)的功能是,解析服務(wù)器的應(yīng)答信息,把結(jié)果組裝成一定的格式,在客戶端頁(yè)面的結(jié)果顯示區(qū)域(Result Area)顯示出來(lái)。
2 數(shù)據(jù)交換
我們使用AJAX技術(shù)實(shí)現(xiàn)客戶端和服務(wù)器端的數(shù)據(jù)交換[2]。傳統(tǒng)的Web頁(yè)面交互方式,有兩個(gè)缺點(diǎn):①交互只有同步一種模式,必須等到服務(wù)器端完成信息提取,并且返回頁(yè)面以后,用戶才能觀察到結(jié)果,開始新的交互。②頁(yè)面整體更新的模式,導(dǎo)致網(wǎng)絡(luò)帶寬的浪費(fèi),因?yàn)榧词固峤豁?yè)面和響應(yīng)頁(yè)面有很大的部分是相同的,響應(yīng)頁(yè)面也必須把相同部分重新進(jìn)行發(fā)送。AJAX技術(shù)通過(guò)異步方式實(shí)現(xiàn)與服務(wù)器的數(shù)據(jù)交換,避免了上述的問(wèn)題。
我們采用開源AJAX開發(fā)工具包Dojo實(shí)現(xiàn)客戶端的功能,數(shù)據(jù)以JSON格式進(jìn)行編碼,減少不必要的網(wǎng)絡(luò)帶寬開銷[3] [4]。JSON(Java Script Object Notation)是Java Script語(yǔ)言里對(duì)對(duì)象進(jìn)行表示的一種方法。JSON對(duì)象表示法,完全用文本實(shí)現(xiàn),可以用不同的語(yǔ)言生成和解析對(duì)象,包括C、C++、C#、Java、JavaScript、Perl、Python等語(yǔ)言。JSON的語(yǔ)言無(wú)關(guān)性,使其非常適用于AJAX客戶端和服務(wù)器的數(shù)據(jù)交換。JSON對(duì)象的一個(gè)實(shí)例是,var myJSONObject = {\"id\": 3, \"name\": \"覃雄派\", \"研究方向\": [\"Web\",\"并行數(shù)據(jù)庫(kù)\",\"內(nèi)存數(shù)據(jù)庫(kù)\"]}。可以看出,JSON表示方法很簡(jiǎn)潔,沒(méi)有XML表示法的大量冗余。JSON表示法還具有如下的優(yōu)點(diǎn):①瀏覽器解析JSON的速度比解析XML快的多,于是用戶的響應(yīng)加快了;②因?yàn)镴SON的語(yǔ)言無(wú)關(guān)性,可以用不同的后臺(tái)編程語(yǔ)言(比如Java)操作JSON對(duì)象,保證AJAX Web應(yīng)用和服務(wù)器端的平滑連接;③JSON不僅執(zhí)行性能高,而且運(yùn)行穩(wěn)定。
3 服務(wù)器端實(shí)現(xiàn)
服務(wù)器端架構(gòu):服務(wù)器端采用EJB3.0技術(shù)來(lái)實(shí)現(xiàn)[5]??蛻舳说恼?qǐng)求通過(guò)服務(wù)器端的Faccedil;ade部件進(jìn)行接收,調(diào)用后臺(tái)的業(yè)務(wù)應(yīng)用,利用持久層的服務(wù)進(jìn)行數(shù)據(jù)的存取,完成用戶請(qǐng)求的功能,并且把應(yīng)答數(shù)據(jù)以JSON的格式,返回給客戶端。這種Faccedil;ade - Business Logic模式,優(yōu)化了服務(wù)器端的架構(gòu),提供系統(tǒng)擴(kuò)展和演化的靈活性。EJB是一個(gè)重量級(jí)技術(shù),對(duì)于某些功能,我們使用Spring框架軟件實(shí)現(xiàn)服務(wù)器端的服務(wù)集成[6]。服務(wù)器端的數(shù)據(jù)存取,使用Hibernate來(lái)進(jìn)行操作[7]。
JSON-RPC Java ORB for Server:JSON-RPC Java Orb提供了把Java 對(duì)象以JSON-RPC服務(wù)暴露出來(lái)的機(jī)制,使之能夠處理JSON-RPC請(qǐng)求,并且以JSON格式進(jìn)行結(jié)果編碼,返回客戶端[8]。SON-RPC Java Orb提供一個(gè)客戶端的API,以便對(duì)服務(wù)器端服務(wù)進(jìn)行訪問(wèn)。
三 總結(jié)
電子考試系統(tǒng)的實(shí)現(xiàn)降低了考試組織工作的強(qiáng)度,提高了公共課考試的工作效率。系統(tǒng)采用AJAX技術(shù)實(shí)現(xiàn),客戶端與服務(wù)器端的數(shù)據(jù)交換效率大大提高,用戶的響應(yīng)速度加快;服務(wù)器端具有良好的擴(kuò)展性,支持大量用戶的并發(fā)訪問(wèn)。經(jīng)過(guò)一段時(shí)間的運(yùn)行,系統(tǒng)完全滿足設(shè)計(jì)目標(biāo),實(shí)現(xiàn)了高效率的電子化考試管理。
————————
參考文獻(xiàn)
[1] 馬林納斯卡(美國(guó))著,饒若南等譯. EJB設(shè)計(jì)模式[M]. 北京:機(jī)械工業(yè)出版社, ISBN: 7111130324, 2006:15-45.
[2] 曹衍龍,葉達(dá)峰.AJAX編程技術(shù)與實(shí)例[M]. 北京:人民郵電出版社, 2007:5-15.
[3] Dojo Team. Dojo Toolkit Documentation [EB/OL].
[4] JSON Org. JSON Specification [EB/OL].
[5] Sun Corporation. EJB 3.0 Specification[EB/OL].
[6] Spring Team. Spring Framework [EB/OL].
[7] Hibernate Team. Hibernate Framework [EB/OL].
[8] Meta Paradigm. JSON-RPC-Java[CP/OL].
Design and Implementation of E-Exam System for Computer Science Common Course
TAN Xiong-pai
(School of Information Renmin University of China, Beijing, 100872, China)
Abstract: Information modeling and functionality analysis for computer science common course E-Exam system is introduced in detail as well as system implementation. With the help of E-Exam system, home working and examination is organized with less effort, the system also promote interactions between students and lecturers.
Keywords: Computer Science Common Course; E-Exam System; AJAX; Browser-Server Architecture