东方亚洲欧a∨人在线观看|欧美亚洲日韩在线播放|日韩欧美精品一区|久久97AV综合

        標(biāo)準(zhǔn)化機試系統(tǒng)的開發(fā)與拓展 標(biāo)準(zhǔn)化考試的弊大于利

        發(fā)布時間:2020-02-16 來源: 幽默笑話 點擊:

          摘要:本文結(jié)合自己多年開發(fā)標(biāo)準(zhǔn)化機試系統(tǒng)的經(jīng)驗,詳細闡述常用機試系統(tǒng)的原理、缺陷,提出改進方法及新的解決方案,并在已有基礎(chǔ)上,設(shè)計出更加科學(xué)實用的系統(tǒng),發(fā)展并拓寬現(xiàn)有考試系統(tǒng)的應(yīng)用范圍。最后給出無相鄰重復(fù)的隨機抽題算法,以確保隨機抽題的公正性。
          關(guān)鍵詞:機試系統(tǒng);連通圖著色;隨機抽題
          中圖分類號:TP27 文獻標(biāo)識碼:A
          
          在我國高等教育體制中,計算機教育一直被擺在重點位置。幾乎所有高等院校的所有專業(yè)都至少開設(shè)有一門計算機課程!坝嬎銠C文化基礎(chǔ)”(以下簡稱“計文”)或相關(guān)課程是必不可少的。工科專業(yè)一般開設(shè)有C/C++、Java程序設(shè)計,文科會學(xué)習(xí)VB、VFP等。
          有教學(xué)過程就必然要有科學(xué)規(guī)范的評價機制。計算機課程的教學(xué)評價一般通過筆試和機試兩種方式進行。作為非常注重培養(yǎng)實踐能力的學(xué)科,機試加筆試顯然比單純筆試更加適合計算機課程教學(xué)。筆試可以勝任像C/C++、Java代碼編程和計算機原理概念的考查。但像計算機操作水平或VC、VB可視化編程等,就只能通過機試才可得到真正科學(xué)的評判。
          本文所探討的機試,專指編程或計算機操作類機考,不涉及用機考代替筆試的無紙化考試。以下將針對機試系統(tǒng)開發(fā)與技術(shù)創(chuàng)新等問題進行討論。
          
          1 常用標(biāo)準(zhǔn)化機試系統(tǒng)的原理、缺陷及改進
          
          標(biāo)準(zhǔn)化機試系統(tǒng)常采用以下兩種原理實現(xiàn):
          
          1.1 截屏法
          截屏法的原理較為簡單?忌鎸Φ牟皇钦嬲能浖缑,而是靜態(tài)的截圖界面。在每個靜態(tài)截圖的相應(yīng)位置設(shè)置熱點區(qū),比如活動的菜單、按鈕、工具欄等。每一屏的輸出結(jié)果是唯一的。如果考生根據(jù)考題要求,點擊了當(dāng)前正確的熱點區(qū),則認為操作正確,屏幕將立刻顯示下一截屏。否則,系統(tǒng)停在此屏,等待考生正確點擊。如果考生放棄此題或中途交卷,系統(tǒng)會根據(jù)考生最終到達了該題的哪一步來給出相應(yīng)得分。
          例如,在Visual Basic窗體中設(shè)計一個“退出”按鈕,功能是點擊按鈕后窗體退出:
          
          上圖中每一個方塊代表一個屏。截屏法用屏幕的變化來模擬真實的軟件環(huán)境,但同時產(chǎn)生了路徑唯一性問題?忌挥悬c擊了正確的區(qū)域,或者輸入正確的命令后才可進入下一屏。這與真實的軟件環(huán)境差距甚遠。考生在不了解考題意圖的情況下,會感覺無所適從。加上軟件中能夠?qū)崿F(xiàn)同一功能的操作有多種,而每個人的操作習(xí)慣又不可能完全一樣,這都影響了截屏式系統(tǒng)的通用性。比如上述圖例中第三步“查看代碼”,還可用菜單操作和右鍵操作實現(xiàn),但考生只有點擊了“查看代碼”按鈕后才能進行下一步。
          要想提高題目的通用性,必須通過在實現(xiàn)同一功能的所有區(qū)域設(shè)置熱點來改進。但考題設(shè)置的工作量也隨之加大,同時很難顧及到點擊或輸入錯誤時的軟件變化。
          截屏法的技術(shù)含量不高,對系統(tǒng)的要求較低,并且沒有軟件環(huán)境的限制。其最大優(yōu)勢在于能架設(shè)在B/S(瀏覽器/服務(wù)器)模式上。因為瀏覽器中很難包含真正的軟件環(huán)境,而截屏法規(guī)避了這一難點。
          
          1.2 文件比較法
          文件比較法以真實的軟件作考試環(huán)境,并且要事先做好標(biāo)準(zhǔn)答案文件,因而一般架構(gòu)在C/S(客戶端/服務(wù)器)模式上?忌ㄟ^操作相應(yīng)軟件生成或修改考題所要求的文件。考試完畢后。系統(tǒng)將考生做的文件與標(biāo)答文件詳細對照。如果對照一致,則給出相應(yīng)得分。
          對于C/C++、Java一類代碼編程的考試,只需要對考生源程序和標(biāo)答源程序做逐行掃描,根據(jù)對比源程序字符來判分。同一功能可能還有多種寫法,都應(yīng)設(shè)置在標(biāo)準(zhǔn)答案中。如果是純粹的函數(shù)編寫,應(yīng)設(shè)置輸出結(jié)果文件。通過比較輸出的結(jié)論評分。
          這種忽略操作過程、分析結(jié)論評分的方法比截屏法更加客觀公正,能夠檢驗考生真實的計算機操作和編程水平?荚囅到y(tǒng)完善之后,考題就十分容易設(shè)置和變化。
          國內(nèi)高校中開設(shè)VFP數(shù)據(jù)庫課程的專業(yè)較多。下面以VFP機試系統(tǒng)為例,說明文件比較法機試系統(tǒng)的開發(fā)與關(guān)鍵技術(shù)的實現(xiàn):
          
          系統(tǒng)用VFP9編寫,因為在VFP環(huán)境下啟動考試環(huán)境和處理VFP體系的文件都具有一定優(yōu)勢。并且VFP9也能夠勝任C/S模式軟件的高效開發(fā)。服務(wù)器端用SQL Server數(shù)據(jù)庫儲存考試信息、考試時間、考題和標(biāo)準(zhǔn)答案。考試機(客戶端)必須獲得了這些信息后才可參與考試。因此,服務(wù)器端能夠完全掌控考試的類型和具體要求。
          1.2.1 抽題
          傳統(tǒng)的機試系統(tǒng)往往簡略甚至忽略這一環(huán)節(jié),只是保證每一臺考試機上的考題是隨機抽取。但如果相鄰的考試機抽到一樣的考題,那么考試的公正性就有可能會打折扣。所以必須使任意相鄰的考試機抽到不同的考題。
          可以利用同一局域網(wǎng)各聯(lián)網(wǎng)機器IP地址的不同,在每場考試之前由服務(wù)器端生成一個抽題方案表,儲存在數(shù)據(jù)庫中。開考時,每臺考試機都訪問這個抽題表,獲得各自題號,再下載相應(yīng)數(shù)據(jù)進行考試。
          無相鄰重復(fù)的隨機抽題算法在本文的第四節(jié)給出。
          1.2.2 評分
          傳統(tǒng)的評分方案僅僅只是評判某些題目要求的文件是否生成,或者比較字符類文件和表文件。這對于C/C++、Java等代碼類的考試是適用的。
          但如果為可視化編程,如VC、PB、VFP等,或計文中的Word、Excel辦公軟件,涉及文件繁多,有窗口、菜單、程序、文檔、數(shù)據(jù)。這些文件的類型、格式都不相同。這一類的評分只有采用掃描二進制文件內(nèi)容的方法才可進行。所以必須先分析出這些文件的內(nèi)部構(gòu)造,才能設(shè)置相應(yīng)的評分程序。
          比如要在數(shù)據(jù)庫中兩表間建一個永久關(guān)聯(lián)。分析DBC文件后發(fā)現(xiàn),永久關(guān)聯(lián)會在DBC文件中增加256個字節(jié)的內(nèi)容,格式為:
          Relation Relation 1……Field(字段名)…Field(字段名)…
          對應(yīng)16進制為:
          52 65 6C 61 74 69 6F 6E 20 20 52 65 6C 61 74 69 6F 6E 20 31……46 69 65 6C 64…46 69 65 6C 64…
          通過讀取DBC文件的二進制內(nèi)容,并查找此16進制代碼,就可以判斷考生是否回答正確。只要得到一次這樣的代碼,就能相應(yīng)作出其它類似題目的判分程序。利用這一方法,幾乎可以設(shè)置出任何一種軟件科目的判分機制。
          需要注意的是,如果將評分都交給服務(wù)器端完成,會給服務(wù)器造成很大的工作量。應(yīng)該為每一套題設(shè)置對應(yīng)的評分程序,并隨考題數(shù)據(jù)一起下載到考試機上。最后由考試機完成判分,將判分結(jié)果傳回服務(wù)器。為了不讓考生修改或刪除評分程序,或者在非考試環(huán)境里答題,考試系統(tǒng)應(yīng)在運行時屏蔽對考試系統(tǒng)以外的所有操作,以保安全。
          考試的最終目的是為了指導(dǎo)和改進教學(xué)。因此,評分程序應(yīng)當(dāng)細化到題,甚至于知識點。這樣做能讓服務(wù)器獲得詳細的評分結(jié)果,以便統(tǒng)計具體的教學(xué)得失。
          
          2 一種更好的機試系統(tǒng)設(shè)計思路
          
          文件比較法也同樣有一定的缺陷。此法只是評判結(jié)果,完全忽略了過程。考生就算掌握了知識點,但在操作中有一點小失誤,導(dǎo)致結(jié)果未能生成或不完整,都會極大影響對該考生的公正評價。如果在對結(jié)果文件評判的同時,又能判斷操作的正誤,就能彌補評分的缺失。
          可以另外用VC++或BCB設(shè)計一個外殼程序,隨答題環(huán)境一起運行,環(huán)境退出時關(guān)閉。外殼程序的任務(wù)是將考生的鼠標(biāo)操作記錄到一個文本文檔中。
          用API函數(shù)SetWindowsHookEx建立Hook,將程序添加到Hook鏈中,目的是監(jiān)視Windows消息??[1]?:
          tsHook =(HWND)SetWindowsHookEx(WH_MOUSE, MntProc, tsInstance, 0);
          MntProc函數(shù)得到每一次考生點擊的按鈕或菜單的標(biāo)號,并依次追加到鼠標(biāo)操作記錄userdo.txt文件中:
          LRESULT CALLBACK MntProc(int nCode, WPARAM wParam, LPARAM lParam)
          {
          WPARAM bmid;
          FILE *fp;
          bmid = wParam; // bmid得到按鈕或菜單的標(biāo)號
          ……
          fp = fopen(“d:\\cpexam\\pinf\\userdo.txt”,“a”);
          fprintf(fp, “%4d”, bmid);
          fclose(fp);
          ……
          return CallNextHookEx(tshook, nCode, wParam, lParam);
          }
          函數(shù)返回CallNextHookEx(),繼續(xù)啟動下一個Hook傳遞消息。
          當(dāng)考生點擊交卷或系統(tǒng)自動交卷后,用UnhookWindowsHookEx()函數(shù)卸載Hook,并退出外殼程序。最后的userdo.txt中保存的文本為考生操作的按鈕和菜單的序列。
          此類系統(tǒng)的評分標(biāo)準(zhǔn)應(yīng)包含兩方面。一方面是生成文件的得分,另一方面通過分析鼠標(biāo)操作記錄文件中按鈕和菜單標(biāo)號的前后關(guān)系給出操作得分。
          
          3 無相鄰重復(fù)的隨機抽題算法
          
          相鄰考試機抽到不同的考題,是保證考試公正性的重要環(huán)節(jié)。抽題前先要保證參與考試的機器IP地址或計算機名是順序的,比如計算機名為:cs1、cs2、cs3、…… cs[n],并且順序擺放成如下矩陣:
          
          為保證每一臺機器抽到與四周8臺都不同的題,可以將此矩陣看成一個平面連通圖。故問題可歸結(jié)為連通圖的“五色”著色問題:用5種顏色可以給任一平面簡單連通圖G=<V, E>正常著色?[2]?。在實際算法中,只需考慮連通圖相鄰5個頂點中的某一點與其余各點均不同,并遍歷所有點。
          具體規(guī)則如下:
          (1)第一排每點不與左點相同
         。2)其余各排為:
           a最左點不與上點和右上點相同
           b最右點不與左點、左上點和上點相同
           c其余各點不與左點、左上點、上點和右上點相同
          以下用VFP表述算法,其中pctt為考試機總數(shù),tmt為總題量,a為當(dāng)前考試機編號:
          dimension t(pctt)
          t=0 && 初始化數(shù)組t
          t(1)=int(1+tmt*rand()) && 隨機初始化cs??[1]?
          do case
          case tmt>=5 && 考慮“五色”情況
           for n=2 to a && 第一排每臺抽題與左邊不同
           do while .t.
           t(n)=int(1+tmt*rand())
           if t(n)<>t(n-1)
           exit
           endif
           enddo
           endfor
           for n=a+1 to pctt && 除第一排外
           do case
           case (n-1)%a=0 && 每排最左邊需與上、右上都不同
           do while .t.
           t(n)=int(1+tmt*rand())
           if t(n)<>t(n-a) and t(n)<>t(n-a+1)
           exit
           endif
           enddo
           case (n)%a=0 && 每排最右邊需與上、左上、左都不同
           do while .t.
           t(n)=int(1+tmt*rand())
           if t(n)<>t(n-a) and t(n)<>t(n-a-1) and t(n)<>t(n-1)
           exit
           endif
           enddo
           otherwise
           do while .t.
           t(n)=int(1+tmt*rand()) && 處于中間則需與上、左上、左、右上都不同
           if t(n)<>t(n-a) and t(n)<>t(n-a+1) and t(n)<>t(n-a-1) and t(n)<>t(n-1)
           exit
           endif
           enddo
           endcase
           endfor
          endcase
          考慮極端情況:題庫中只有4套題,即經(jīng)典的“地圖四色問題”,只能另設(shè)算法,讓抽題矩陣形成如下狀況:(數(shù)字代表題的編號)
          1 2 1 2 1 2 1 ……
          3 4 3 4 3 4 3 ……
          1 2 1 2 1 2 1 ……
          3 4 3 4 3 4 3 ……
          ……
          如果題量再少,將無法使每一臺機器抽到與四周8臺都不同的題。如果題量較多,數(shù)量大于機器數(shù),可考慮直接用考題數(shù)組覆蓋機器陣列。
          每場考試前運行抽題程序,在服務(wù)器端生成抽題表。為使抽到的考題下載到考試機,客戶端程序用以下語句創(chuàng)建一個Winsock接口引用testpc,以便得到客戶端的計算機名(testpc.LocalHostName):
          testpc=createobject(“MSwinsock.Winsock”)
          或者用testpc.LocalIP獲得客戶端IP。然后訪問服務(wù)器的抽題表,用計算機名或IP地址對應(yīng)查詢本場考試的考題編號,并下載考題到本機。
          
          4 結(jié)語
          
          文中涉及的原理與方法已在機試系統(tǒng)的實際開發(fā)中得以應(yīng)用,并獲得了良好收效。但不同學(xué)科有不同的教學(xué)特點和特定的評價機制,本文只是重點論述比較通行的技術(shù)和方法。此類系統(tǒng)還可進一步優(yōu)化。最好能將軟件環(huán)境內(nèi)嵌到考試系統(tǒng)中,由系統(tǒng)直接控制軟件操作,并根據(jù)操作直接評分。當(dāng)然,這需要軟件廠商的技術(shù)支持才能實現(xiàn)。
          
          參考文獻
          
          [1]姜山. HOOK專題[DB/OL]. http://www.省略/china/community/program/originalarticles/techdoc/hook.mspx.
          [2]方世昌.離散數(shù)學(xué)[M]. 陜西:西安電子科技大學(xué)出版社,1996.

        相關(guān)熱詞搜索:標(biāo)準(zhǔn)化 拓展 開發(fā) 標(biāo)準(zhǔn)化機試系統(tǒng)的開發(fā)與拓展 素質(zhì)拓展系統(tǒng)定制開發(fā) 山東大學(xué)素質(zhì)拓展系統(tǒng)

        版權(quán)所有 蒲公英文摘 smilezhuce.com