編者按:提到測評系統,很容易想到的是輸入一個選項就會得到一個評判結果。事實上,隨著計算機技術和用戶需求的不斷發展,人們對測評系統的要求也越來越多,已經不再停留在簡單客觀題目的評判。本期,我們來了解測評系統的發展過程,特別是人工智能技術的應用。
主持人:
倪俊杰 浙江省桐鄉市鳳鳴高級中學
嘉 賓:
劉宗凡 廣東省肇慶市四會中學
邱元陽 河南省安陽縣職業中專
金 琦 浙江師范大學附屬中學
楊 磊 天津市第五中學
虞穎健 浙江省海寧市第一中學
倪俊杰:在線測評系統(Online Judge System,簡稱OJ系統)作為一種采用黑盒測試原理進行計算機程序正確性判斷的自動化程序,越來越受到人們的追捧。這一期,我們先繼續探討有關程序設計OJ系統的話題,接著探討測評系統以及智能技術的應用。
虞穎?。篛J系統最早是1995年的UVa(University of Valladolid)系統,來自于國際大學生程序設計競賽(ACM/ICPC)。在計算機類的在線評測系統中,一般包含各種不同的考題類型,如填空題、選擇題和需要編寫程序代碼的主觀題。OJ系統廣泛應用于世界各地高校學生程序設計的訓練、參賽隊員的訓練和選拔、各種程序設計競賽以及數據結構和算法的學習及作業的自動提交判斷。
國外對在線評測系統的研究起步較早。1999年,英國華威大學開發的BOSS系統可以對學生通過Web提交的程序進行評改。該系統需要提前準備測試數據集,并將每組測試數據輸入,然后將測試輸出與期望結果進行比對。該系統的主要優點是將各個功能模塊獨立開來,避免了單個
模塊出現故障后影響其他功能模塊的正常運行。2002年,英國Open College系統正式上線,該系統是英國政府和大學合作開發的一款在線學習和測評系統,每年有百萬左右的英國人通過在線學習和考試獲得相關行業的專業證書。美國加利福利亞大學的PC2系統是目前最具影響力的程序評測系統之一,其提供編程競賽控制、閱卷、計分等功能,支持絕大多數的編程語言。PC2系統采用Java語言編寫,幾乎可以適用于任何機器環境,能夠極大地提高教師在競賽和考試中的效率。澳大利亞的馬丁·多格瑪斯(Martin Dougiamas)博士主持開發的Moodle網絡教育平臺系統,因為功能強大而享譽中外,并且完全免費,易于安裝,發展迅速。
劉宗凡:國內的在線評測系統發展迅速,2002年以來許多高校和重點中學建立了面向競賽的在線編程評測平臺。較為知名的有北京大學的POJ、華中科技大學的HUSTOJ、杭州電子科技大學的HDU、浙江大學的ZOJ、湖南師大附中的OJ、學軍中學的OJ等,高?;蛑攸c中學將這類在線評測系統應用于課外教學培訓,提供給學生進行自主練習,以彌補課內編程教學的不足。
我國的一些高校,編程類的期末考試已經開始使用OJ,相對傳統的紙質試卷方式,使用在線評測系統不僅方便快捷,而且省時省力。隨著信息化教育的不斷深入,越來越多的考試形式轉移到了網上,OJ系統在我們的日常生活中扮演著越來越重要的角色。
倪俊杰:在線評測系統大多是基于B/S架構的程序,它運行在服務器上,學生或者評測者通過瀏覽器就可以進行編程類題目的評測,直接通過網頁提交程序源代碼,并不需要在本地安裝系統。雖然OJ系統有多種類型,平臺架構與開發技術也存在差異,但對于程序設計類的OJ系統,其使用方法大致相同。
邱元陽:的確如此,我們可以從測試類型和評測結果來了解。
第一,程序數據測試類型。①測試樣例。題目中給出的測試樣例一般都是非常簡單的實例,僅憑樣例難以測出程序的完整性能。但是,OJ系統后臺有著大量的測試數據,其中包含一些極限情況,如數據小于0等特殊情況,以考查編程者的思維完整度;還有超大數據(指規模n很大的測試數據),以考查程序的時間復雜度等。因此,通過簡單的樣例并不意味著此題能得滿分,樣例只是一個示范。②單點測試。后臺的測試數據是放在一個數據文件中的,其中有n組不同的測試數據。單點測試要求代碼只需要處理一組數據輸入即可,OJ系統通過n次運行該代碼實現對n組數據的測試,如PAT就是采用單點測試。③多點測試。要求代碼能循環處理完所有的測試數據,即OJ系統只運行一次代碼實現對n組數據的測試,如CSP、codeup都采用多點測試。
第二,常見評測結果,OJ系統會有各種反饋,主要包括下列情形:①Accepted正確通過;②Compile Error編譯錯誤(選錯語言/頭文件/語法等);③Runtime Error運行時錯誤:內存非法訪問(指針指向非法內存區,數組越界等)、遞歸爆棧、浮點運算錯誤(除數為0,模數為0);④Wrong Answer答案錯誤:程序邏輯問題、多輸出了調試信息;⑤Presentation Error格式錯誤:已經極為接近Accepted,一般是多輸出了換行或空格符;⑥Time Limit Exceeded運行超時:檢查數據規模與時間復雜度;⑦Memory Limit Exceeded內存超限:不能在函數內部開過大的局部數組,大數組應在全局區開辟;⑧Output Limit Exceeded輸出超限:死循環輸出過多內容。
倪俊杰:那么,我們能不能自己搭建一個OJ系統呢?現在OJ系統也有很多是集成的,可以根據需要自己搭建。
金琦:是的,下面以青島OJ為例介紹如何搭建OJ網站系統。在搭建之前,先簡要介紹docker。docker是Docker Lnc公司開源的一個基于LXC(Linux Container)技術搭建的Container容器引擎,誕生于2013年。Docker的主要特點包括更高效的系統資源利用、更快速的啟動速度、一致的運行環境、更輕松的遷移。
首先,網站服務器配置,可以購買云空間服務。使用Termius軟件注冊后開始配置主機。在服務器上新建一個“qingdaoj”的文件夾,存儲OJ系統。


docker-compose up -d
最后,通過瀏覽器訪問服務器HTTP 80端口或HTTPS 443端口,就可以查看OJ系統。如果需要漢化,也可以通過修改配置文件改成中文格式。
倪俊杰:除了針對程序的測評系統,還有很多面向文件的測評系統,尤其是針對Office文件的自動測評技術,在文件校驗、技能測評、教學考試等領域發揮了重要的作用。
金琦:操作類文件的自動測評,其難點在于不僅要校驗結果文件,還要匹配分析過程性記錄數據。大部分應用型軟件提供了可編程接口(自動化接口),利用這些接口可以獲取相關的信息。例如,可以利用VBA(全稱Visual Basic for Application,是由微軟公司開發的新一代標準宏語言)控件技術實現對Office文件的自動測評。這種技術也廣泛用于Office操作的自動評測,如技能水平考試中。這種技術比較適合B/S架構,任何用戶只需在瀏覽器中輸入網址即可使用系統,不需要在客戶端安裝軟件。
邱元陽:Office文件測評系統,可以設計成四層結構方式,如展示層(網頁端)、邏輯層(.NET程序集)、宏比對層(Office VBA)、數據庫層(數據庫系統)。這種方式具有良好的擴展性,若要對操作題進行修改則只需修改操作步驟并修改對應標準文件宏代碼即可。除了VBA,還可以借助OLE(Object Linking Embedding)技術來實現文件自動測評。這是一種微軟系統中的進程交互通信機制,實際上就是一個編程接口,是面向對象實現嵌入與鏈接的最佳方案,也是Windows應用程序之間互相操縱的一種技巧。其主要目的是為一些功能強大的軟件設計一個標準接口,可以讓應用程序通過對象的方式來使用Office軟件的對應功能。
倪俊杰:計算機技術與人工智能的發展為測評領域注入了新的活力,推動了智能化測評的產生。
虞穎?。涸谲浖y試領域中,人工智能(AI)增加了自動響應外部輸入和實時變化的功能。自動化應用程序測試可以加速驗證和確認代碼。例如,可以將人工智能添加到組合中,使發現和修復錯誤變得更快,更容易。隨著軟件復雜性的增加,自動化也必須進行擴展,以提供更多的功能,在工作流程中更早地識別和解決問題。
邱元陽:在視力測評系統中,美國斯坦福大學計算機科學家克里斯·皮奇(Chris Piech)和他的同事開發了一種人工智能(AI)在線視力測試系統。該系統的測試診斷結果比傳統的字母表測試更準確。用戶只需打開網頁(https://myeyes.ai/),通過校準屏幕大小、輸入與屏幕的距離即可進行測試,測試過程中可以運用四個方向鍵來判斷字母“E”的方向。該算法會根據每一個答案,使用統計數據對下一次顯示的字母大小進行調整。隨著測試的進行,該算法能夠對測試分數做出更準確的預測。
劉宗凡:人工智能技術在教育測評領域也有很多應用。2020年11月,華南師范大學發布了國內首個運用人工智能、大數據等技術,輔助教師能力水平提升的系統產品,即“教師能力AI測評系統”。該系統是由AI+教師能力發展實驗室、教師能力測評指標體系,以及教師能力AI測評云平臺三部分構成,為教師課堂教學能力進行“畫像”、幫助教師進行教學反思、為教師專業發展精準助力的產學研合作產品。
實際上,關于人工智能測評系統的應用需求越來越廣泛,也有專門做測評服務的機構,如中國信息通信研究院。
我們可以期待,人工智能等新型技術會給測評技術注入強大的活力,在更多領域更大范圍內發揮重要的作用。