在線測試平臺(Online Judge)評分方式簡介
ACM
國際大學(xué)生程序設(shè)計競賽(ICPC:International Collegiate Programming Contest)是由美國計算機(jī)協(xié)會(ACM:Association for Computing Machinery)主辦的年度競賽。每隊使用1臺電腦需要在5個小時內(nèi)使用C/C++、Java和Python中的一種語言編寫程序解決7到13個問題。程序完成之后提交評測機(jī)運行,運行的結(jié)果會判定為正確或錯誤兩種并及時通知參賽隊。具體結(jié)果如下:
1、Accepted. ——通過!(AC)
2、Wrong Answer.——答案錯誤。(WA)
3、Runtime Error.——程序運行出錯,意外終止等。(RE)
4、Time Limit Exceeded. ——超時(超出時間限制)。程序沒在規(guī)定時間內(nèi)出答案。(TLE)
5、Presentation Error. ——格式錯誤。程序沒按規(guī)定的格式輸出答案。(PE)
6、Memory Limit Exceeded. ——超內(nèi)存(超出內(nèi)存限制)。程序沒在規(guī)定空間內(nèi)出答案。(MLE)
7、Compile Error. ——編譯錯誤。程序無法編譯。(CE)
?注:競賽類具有選拔性,不適合基礎(chǔ)教學(xué)使用。
希冀平臺
基于動態(tài)測試的評分,由教師給出程序的多組測試數(shù)據(jù)和期望輸出。評分過程是運行學(xué)生程序然后判定輸出結(jié)果與期望輸出的匹配情況評判分?jǐn)?shù)。
(1)程序編寫正確,能夠得到正確的運行結(jié)果。采用黑盒測試法,希冀平臺自動完成,所有測試數(shù)據(jù)輸出結(jié)果完全正確,評分為滿分。
(2)程序通過編譯、鏈接,能夠運行,但是只能得到部分正確的結(jié)果。采用人工復(fù)核算法思路,檢查邏輯錯誤,根據(jù)程序的完成情況評分。保證在程序運行結(jié)果有誤但基本思路正確的情況下也可以得到合理的分?jǐn)?shù)。
(3)程序不能運行,也不能得到運行結(jié)果。采用人工復(fù)核關(guān)鍵點匹配方式評分,保證在學(xué)生程序有語法錯誤、不能正常運行的情況下也能得到合理的分?jǐn)?shù)。
關(guān)鍵點為題目涉及的知識點:如輸入、輸出、運算符、選擇、循環(huán)等要求的得分點,根據(jù)是否包含關(guān)鍵點、包含關(guān)鍵點個數(shù)及正確完成程度,結(jié)合程序語法錯誤和邏輯錯誤情況評分。
一道編程題人工復(fù)核評分參考,以滿分10分為例。
沒有采用要求的課程編程語言提交程序代碼,如Python課程題目提交C語言程序,零分。
程序能運行:
所有測試數(shù)據(jù)輸出結(jié)果完全正確,評分為滿分。
部分測試數(shù)據(jù)輸出結(jié)果完全正確,按程序邏輯思路并結(jié)合正確結(jié)果所占比例給分。
采用直接輸出期望結(jié)果的不合理方式,零分。
程序不能運行的:
只是大小寫、標(biāo)點符號、關(guān)鍵字等類似簡單語法問題、且問題僅限一處,修改這一處后就可以正確運行,9分;
包含題目涉及關(guān)鍵點,根據(jù)關(guān)鍵點個數(shù)、正確完成程度及邏輯思路等按比例給分;
語法錯誤較多,存在最基本的語法錯誤問題,顯示出不具備最基礎(chǔ)的編程技能,根據(jù)關(guān)鍵點完成情況,酌情給1-2分。

附:希冀官網(wǎng)介紹
1、代碼自動實時評判
教學(xué)常用的編程語言
支持C、C++、Java、Python、C#、Go、Matlab、Scala等高級語言程序的自動評分。
支持x86匯編語言的自動評測。
不僅僅告知正確與否
程序自動評判方面不僅僅告知正確與否,更側(cè)重對程序的全面分析,包括性能分析、代碼風(fēng)格檢查、靜態(tài)分析、錯誤原因分析等,幫助和引導(dǎo)學(xué)生寫出高質(zhì)量的程序。
各種輸入輸出方式
支持三類輸入方式(標(biāo)準(zhǔn)、文件、命令行參數(shù))與兩類輸出方式(標(biāo)準(zhǔn)、文件)的任意組合。
豐富的編程題型
支持接口編程、程序片段、完整代碼、大數(shù)據(jù)處理四類編程題型,從多角度考核編程與算法設(shè)計能力。
支持輸出結(jié)果的模糊比對
輸出結(jié)果中的大小寫、空格等不可見字符不影響評測正確性,可以利用通配符描述輸出結(jié)果。
支持基于LCS(最長公共子串)的“部分正確”得分規(guī)則。
真正的實時評判
利用CPU多核并行評判提交代碼,無須排隊評測,實時給出評判結(jié)果。?
2、智能化的代碼查重
可檢測出修改注釋、重新排版、標(biāo)識符重命名、代碼塊重排序、代碼塊內(nèi)語句重排序、常量替換、改變表達(dá)式中的操作符或者操作數(shù)順序、改變數(shù)據(jù)類型、增加冗余的語句或者變量、表達(dá)式拆分、控制結(jié)構(gòu)等價替換,共12種可能用到的抄襲手段,是目前精準(zhǔn)的相似性檢測算法之一。