劉勇 田凱 周曉琳 吳佳偉
摘? 要:通過分析各高校在線評測系統(tǒng)應(yīng)用于實踐教學(xué)的現(xiàn)狀,結(jié)合北京化工大學(xué)在線評測系統(tǒng)應(yīng)用實際,對九年來的計算機科學(xué)與技術(shù)專業(yè)的編程課程教學(xué)實踐和程序設(shè)計類學(xué)科競賽的培養(yǎng)情況進(jìn)行數(shù)據(jù)分析和整理研討。經(jīng)驗表明,文章分析的以在線評測系統(tǒng)為基礎(chǔ),以學(xué)科競賽為目標(biāo)的實踐教學(xué)模式有利于培養(yǎng)優(yōu)秀的計算機科學(xué)與技術(shù)專業(yè)學(xué)生。
關(guān)鍵詞:程序在線評測系統(tǒng);學(xué)科競賽;實踐教學(xué)
中圖分類號:G640 文獻(xiàn)標(biāo)志碼:A? ? ? ? ?文章編號:2096-000X(2021)06-0028-04
Abstract: Based on the analysis of the current Online Judge (OJ) system application of practical teaching in other universities, in this paper, we analyze the practical application of OJ system in Beijing University of Chemical Technology. In the last nine years, we widely used OJ system in teaching practice of programming courses and the training process of programming competition. Our experience shows that the practical teaching mode based on OJ system and programming competition is beneficial to cultivate excellent computer science and technology students.
Keywords: Online Judge System; programming competition; practice teaching
引言
近年來,全國高校對于大學(xué)生實踐能力的培養(yǎng)越來越重視,而對于計算機相關(guān)專業(yè)的學(xué)生來說,提高自己的動手編程能力也就是提高了實踐能力。程序設(shè)計類課程具有入門難,兩極分化嚴(yán)重、實踐性強等特點。對于各大高校,計算機專業(yè)的競賽具有參加人才難挑選,培養(yǎng)難度高等特點。
所以,如何滿足新時期教育發(fā)展的需求,如何提高實踐教學(xué)的成果,如何培養(yǎng)具有更高水平的程序設(shè)計類競賽人才,是高校教師亟待解決的問題。隨著我國教育信息化研究的不斷深入和進(jìn)程不斷加快,各大高校紛紛將現(xiàn)有的教育技術(shù)引入到實踐教學(xué)中。為此,作者將北京化工大學(xué)在線評測系統(tǒng)應(yīng)用到計算機科學(xué)和技術(shù)專業(yè)的實踐教學(xué)中,對所收集的大量實踐數(shù)據(jù)進(jìn)行了合理統(tǒng)計和分析得出,使用新的基于在線評測系統(tǒng)的教學(xué)有助于激發(fā)學(xué)生的學(xué)習(xí)興趣,提高學(xué)校和學(xué)生參加計算機類相關(guān)競賽的積極性并獲得優(yōu)異的成績。
一、在線評測系統(tǒng)應(yīng)用現(xiàn)狀
在線測評(Online Judge, OJ)系統(tǒng),起源于ACM國際大學(xué)生程序設(shè)計競賽(ACM International Collegiate Programming Contest, ACM ICPC)[1]。經(jīng)過ACM競賽30多年的發(fā)展[4],各大高校紛紛開發(fā)了屬于自己的在線評測系統(tǒng)。其中國內(nèi)著名的OJ系統(tǒng)包括:北京大學(xué)的POJ,該網(wǎng)站有強大的軟硬件系統(tǒng),每天代碼提交次數(shù)高達(dá)3000次;浙江大學(xué)的ZOJ,浙江大學(xué)通過ZOJ舉辦浙江大學(xué)計算機程序設(shè)計能力考試(PAT),PAT的成績可以作為多家企業(yè)招聘和研究生復(fù)試的機試成績。此外杭州電子科技大學(xué)的HDOJ、電子科技大學(xué)的UESTC OJ和華中科技大學(xué)的HustOJ都在程序競賽領(lǐng)域有較高的知名度。國外知名的在線評測系統(tǒng)有西班牙Valladolid大學(xué)的OJ(UVA)、俄羅斯Ural立大學(xué)Online Judge(URAL)、Codeforces和atcoder等。近年來各大公司也使用一些針對求職面試的在線評測系統(tǒng),比如國內(nèi)知名的??途W(wǎng)和計蒜客等。這些評測系統(tǒng),不僅廣泛應(yīng)用于教學(xué)、對學(xué)科競賽人員的培訓(xùn)和求職面試中,還對外開放注冊,為其他程序愛好者們提供題庫和代碼評測服務(wù)。
二、基于在線測評系統(tǒng)的實踐教學(xué)
目前,在線評測系統(tǒng)廣泛應(yīng)用在各大高校計算機科學(xué)和技術(shù)專業(yè)的教學(xué)和競賽的培養(yǎng)中。
在教學(xué)方面,各大高校將該系統(tǒng)直接應(yīng)用于程序設(shè)計類課程的上機實驗教學(xué)中[2]。任課教師根據(jù)程序設(shè)計類課程的實驗內(nèi)容和具體要求[3],合理布置實驗任務(wù),新增題目或者從題庫中選擇合適的題目供學(xué)生上機練習(xí)。學(xué)生在編寫、調(diào)試完程序后,將程序提交給評測系統(tǒng)進(jìn)行判斷。評測系統(tǒng)會在后臺進(jìn)行編譯,并結(jié)合測試輸入樣例得出運行結(jié)果,與測試輸出樣例進(jìn)行比對,給出評判結(jié)果。教師可以通過系統(tǒng)在網(wǎng)上抽查學(xué)生作業(yè),及時發(fā)現(xiàn)問題給出指導(dǎo),該系統(tǒng)的使用大大減輕教師的工作壓力。學(xué)生課后可以繼續(xù)登錄系統(tǒng),完成未完成的實驗,保證了教學(xué)的連續(xù)性在一定程度上,提高了教學(xué)質(zhì)量。
在課程范圍方面,該系統(tǒng)的應(yīng)用主要集中在C/C++ 語言、Java語言、Python語言的教學(xué)上,對這幾門語言的教學(xué)質(zhì)量有很大提高。而對于其他計算機專業(yè)相關(guān)的課程,例如編譯原理、算法分析和設(shè)計、計算機組成原理、數(shù)據(jù)庫原理等涉及較少[4]。在計算機類學(xué)科競賽的培養(yǎng)中,各大高校使用在線評測系統(tǒng)選拔參加學(xué)科競賽的學(xué)生,進(jìn)行模擬比賽,提高競技水平。
三、本校實例
(一)北京化工大學(xué)在線評測系統(tǒng)
我校基于開源的HustOJ系統(tǒng)部署了北京化工大學(xué)在線評測系統(tǒng)(Online Judge system of BUCT),主要用于我校程序設(shè)計類課程的實踐教學(xué)、校內(nèi)周賽、月賽、“藍(lán)橋杯”軟件大賽的選拔和集訓(xùn)以及參加ACM競賽的隊員集訓(xùn)[5]。
北京化工大學(xué)在線測評系統(tǒng)(BUCT OJ)使用php語言開發(fā),后臺數(shù)據(jù)庫使用MySQL,采用B/S架構(gòu),主要系統(tǒng)模塊包括系統(tǒng)維護(hù)和管理、題庫管理、實時狀態(tài)、排名、競賽和作業(yè)、ACM競賽專區(qū)、討論版。校內(nèi)訪問網(wǎng)址為www.buctcoder.com,校外網(wǎng)址為http://39.106.31.26/,系統(tǒng)主界面為圖1。
經(jīng)過多年不斷的豐富和完善,BUCT OJ已經(jīng)積累了近5000道編程題目,題目類型涵蓋了數(shù)據(jù)結(jié)構(gòu)、算法設(shè)計與分析、C/C++語言程序設(shè)計、Java語言程序設(shè)計、 Python語言程序設(shè)計、程序設(shè)計課程設(shè)計、ACM/ICPC 程序設(shè)計方法與實踐[6]等幾門課程的主要知識點;題目難度覆蓋面也很廣,有適合剛?cè)腴T新手的題目,有適合入門以后需要多加練習(xí)的題目,有適合選拔學(xué)生競賽的題目,有適合參加學(xué)科競賽學(xué)生訓(xùn)練的題目等多種類型題目。
BUCT OJ系統(tǒng)已經(jīng)有超過70萬份代碼的提交,這些數(shù)據(jù)都存儲在數(shù)據(jù)庫中,我們可以使用這些數(shù)據(jù)對學(xué)生的學(xué)習(xí)進(jìn)度,實踐水平進(jìn)行合理的分析,專業(yè)性的進(jìn)行培養(yǎng)。
(二)OJ系統(tǒng)在我校的應(yīng)用
OJ系統(tǒng)已經(jīng)在我校程序設(shè)計教學(xué)和學(xué)科競賽中使用了九年時間,在使用過程中,我們不斷總結(jié)經(jīng)驗,積累方法,形成一整套基于在線評測系統(tǒng)的課程教學(xué)和學(xué)科競賽培養(yǎng)方案。
1. 實時評測教學(xué)
系統(tǒng)管理員在開學(xué)初將學(xué)生的信息導(dǎo)入OJ中,根據(jù)學(xué)號生成相應(yīng)的賬號。任課教師可以通過評測系統(tǒng)的狀態(tài)顯示功能,查看學(xué)生做題情況,對學(xué)生做題過程中遇到的共性問題給予針對性的講解和及時指導(dǎo),對排名靠前的同學(xué)可以進(jìn)行重點培養(yǎng)為學(xué)科競賽人員,對排名靠后的學(xué)生進(jìn)行重點輔導(dǎo)。為適應(yīng)不同層次學(xué)生的學(xué)習(xí)需求,教師可以根據(jù)學(xué)生的知識掌握情況,及時調(diào)整實驗任務(wù),進(jìn)行題目的分級分類,從而達(dá)到有效反饋、合理調(diào)控、提高課堂教學(xué)效果的目的。
2. 更好的教學(xué)效能
教師把例題和課后作業(yè)題目掛到在線評測系統(tǒng)上,例題幫助學(xué)生進(jìn)行熟悉練習(xí),課后作業(yè)設(shè)置好起止時間,學(xué)生通過在線評測系統(tǒng)按時間要求進(jìn)行作業(yè)提交,系統(tǒng)會統(tǒng)計出每道題目的提交次數(shù)、提交通過的題目數(shù)量及所使用的編程語言,對本次作業(yè)的完成情況進(jìn)行排名,并可導(dǎo)出到Excel文件。教師可以方便地獲取到所有學(xué)生每道題目的做題情況,查看是否抄襲,記錄總結(jié)學(xué)生遇到的問題,在課堂教學(xué)中進(jìn)行針對性講解。在線評測系統(tǒng)的使用,簡化作業(yè)批改,使教師可以注重教育教學(xué)及自身素質(zhì)的提高,從而提高教學(xué)效能。學(xué)生提交作業(yè)后,系統(tǒng)會快速給出評判結(jié)果,及時得知作業(yè)完成情況,即可進(jìn)行后續(xù)修改與再次提交,與傳統(tǒng)收發(fā)作業(yè)的模式相比,這種方式科學(xué)運用了生物心理學(xué)的規(guī)律,既縮短了反饋周期,又能激發(fā)學(xué)生的學(xué)習(xí)潛能和學(xué)習(xí)熱情。
3. 公平客觀的考核評價機制
使用在線評測系統(tǒng)進(jìn)行實驗課考核,評判結(jié)果公正客觀。學(xué)生通過使用在線評測系統(tǒng),可實現(xiàn)對每次考核內(nèi)容的系統(tǒng)化管理,發(fā)現(xiàn)當(dāng)前課程學(xué)習(xí)的薄弱部分,主動彌補。每次考核都會給出系統(tǒng)排名,可使學(xué)生意識到學(xué)習(xí)差距,從而能對自身提出更高要求,調(diào)動學(xué)生學(xué)習(xí)積極性。
此外,將該系統(tǒng)直接用于學(xué)生程序設(shè)計語言類課程的考試上,傳統(tǒng)的試卷考試對于程序設(shè)計語言類課程有很大的局限性,對老師的批改、學(xué)生的創(chuàng)新都有很大的影響。我們可以使用該系統(tǒng),進(jìn)行上機考試,規(guī)定的時間內(nèi)完成規(guī)定的題目。這一方法更加公平公正。
4. 合理的激勵機制
評測系統(tǒng)會根據(jù)提交通過題目數(shù)量、提交通過比率給出總排名,從而鞭策落后的學(xué)生努力追趕,給名列前茅的學(xué)生一些自信,激勵他們繼續(xù)堅持。將ACM競賽機制引入實踐課教學(xué)中,每年定期開展程序設(shè)計類競賽,如新生賽、月賽、周賽、校賽、女生賽,以慶祝某個節(jié)假日為主題的節(jié)日賽等。通過以上不同形式的激勵,激發(fā)學(xué)生的學(xué)習(xí)動力,引導(dǎo)學(xué)生培養(yǎng)良好的學(xué)習(xí)習(xí)慣,形成積極向上的學(xué)習(xí)氛圍,從而促進(jìn)教學(xué)質(zhì)量的提高[7]。并且可以通過這些比賽選撥優(yōu)秀的學(xué)生進(jìn)入到ACM隊,為我校培養(yǎng)更多更優(yōu)秀的競賽型學(xué)生,為參加學(xué)科競賽并獲得高水平獎勵打下基礎(chǔ)。
5. 學(xué)科競賽
學(xué)校的ACM隊的教師會對基于評測系統(tǒng)選拔出來的計算機學(xué)科競賽的學(xué)生進(jìn)行集中教學(xué)和管理,教師同樣會錄入新的題目或從已往的題庫中選擇合適的題目用于隊員的平時訓(xùn)練,嚴(yán)格控制他們的時間,提高效率。定期舉行隊員之間的競賽,或者是讓他們參與其他高校的比賽。制定并實行合理賞罰制度,幫助學(xué)校挑選最合適的學(xué)生去參加學(xué)科競賽,提高學(xué)生水平,為學(xué)校獲得優(yōu)異的成績[8]。
四、數(shù)據(jù)分析
(一)“藍(lán)橋杯”軟件大賽獲獎數(shù)據(jù)和代碼提交數(shù)
我校從第四屆(2013年)“藍(lán)橋杯”開始參加軟件類大賽,至今已經(jīng)參加了七屆,圖2對第四屆(2013年)到第十屆(2019年)我校參加“藍(lán)橋杯”軟件大賽的獲獎情況進(jìn)行統(tǒng)計。由圖2可以看出我校在“藍(lán)橋杯”軟件大賽中獲獎總數(shù)呈上升趨勢,圖中的水平線對應(yīng)的為某一項的平均值,平均獲獎數(shù)為36,這證明我校基于OJ的計算機學(xué)科競賽培養(yǎng)有一定的成績。我校在“藍(lán)橋杯”軟件大賽省賽在獲獎數(shù)量也呈上升趨勢由2013年的19項增加到2019年的47項?!八{(lán)橋杯”軟件大賽的規(guī)則是省賽一等獎選手獲得直接進(jìn)入全國總決賽資格。我們可以看出我校在全國總決賽的獲獎情況有波動。與省賽相比, 我們會發(fā)現(xiàn)國賽的獲獎受很多因素的影響,例如我校師生對藍(lán)橋杯的重視程度不如ACM/ICPC,沒有投入更多的精力;某一屆學(xué)生對編程的興趣感的強弱;某一屆學(xué)生生源地的影響(部分省份在中學(xué)時就會進(jìn)行編程教育)。
對我校在線評測系統(tǒng)上2013至2019年的代碼提交數(shù)進(jìn)行了統(tǒng)計如圖3。經(jīng)過對比圖2和圖3,我們發(fā)現(xiàn)我校在“藍(lán)橋杯”軟件大賽中獲獎數(shù)量和當(dāng)年學(xué)生在OJ系統(tǒng)上提交代碼的數(shù)量大致相符合,可能某一年會受到某位代課老師教學(xué)習(xí)慣(在教學(xué)中使用OJ多/少的情況),學(xué)校對于學(xué)生開課內(nèi)容等原因的影響,會出現(xiàn)獲獎的數(shù)量和當(dāng)年學(xué)生在OJ系統(tǒng)上提交代碼的數(shù)量不太相符的情況??傮w來說,可以看出,代碼提交的數(shù)量和獲獎數(shù)量成正相關(guān)。代碼提交多的年份,獲獎數(shù)量也越多。實踐證明,我們的OJ系統(tǒng)在教學(xué)中的使用更頻繁,學(xué)生使用OJ課下練習(xí)的次數(shù)也在增加,這樣有助于我們的學(xué)生提高編程動手能力,增加他們對于編程的興趣,有助于我校培養(yǎng)高水平的計算機相關(guān)專業(yè)學(xué)生。
(二)獲獎人數(shù)對應(yīng)生源地
圖4為我校在第四屆到第十屆(2013-2019)“藍(lán)橋杯”軟件大賽中獲獎人數(shù)及其對應(yīng)省份的分布情況,其中餅圖所占面積越大表示我校在該省份生源中獲得“藍(lán)橋杯”軟件大賽獎的數(shù)量越多。圖中每個省份后面的數(shù)字表示我校在該省份生源中的獲獎人數(shù)。這其中受到我校計算機專業(yè)學(xué)生生源地的影響,在幾個獲獎人數(shù)多的省份相對生源比較多。
從圖4可以看到,山東,河北,山西,河南,福建等省份的學(xué)生獲獎人數(shù)獲獎數(shù)量都比較多。我們調(diào)查發(fā)現(xiàn)由于這幾個省份對于中學(xué)編程教育更加重視,基礎(chǔ)更好。建議學(xué)校在分配宿舍的時候可以根據(jù)這些統(tǒng)計信息進(jìn)行合理分配,以一帶多,相互促進(jìn),共同提高,從而達(dá)到培養(yǎng)更多高水平計算機專業(yè)人才的目的。
五、結(jié)束語
經(jīng)過九年教學(xué)實踐證明,基于北京化工大學(xué)在線評測系統(tǒng)的教學(xué)實踐研究,取得了良好的教學(xué)成果,為我校培養(yǎng)了一批具備編程能力和參加競賽的學(xué)生,并在各種計算機學(xué)科競賽中獲得了優(yōu)秀的成績。但是不能過分依賴系統(tǒng),教師的引導(dǎo)和監(jiān)督作用不可忽視。如果缺乏教師的引導(dǎo)和監(jiān)督,容易導(dǎo)致學(xué)生流于形式,影響學(xué)習(xí)。
參考文獻(xiàn):
[1]張赫堯,史文靜,施爾寧,等.基于Online Judge與ACM_ICPC模式的課程探究[J].計算機光盤軟件與應(yīng)用,2014,17(23):212+214.
[2]范江波,張學(xué)輝,張建兵.以O(shè)nline Judge為突破口的程序設(shè)計課程全過程學(xué)業(yè)評價改革實踐[J].科教導(dǎo)刊(中旬刊),2019(09):96-97.
[3]陸國棟,陳臨強,何欽銘,等.高校學(xué)科競賽評估:思路、方法和探索[J].中國高教研究,2018(02):63-68+74.
[4]苗桂君,劉勇,許南山.在線評測系統(tǒng)在程序設(shè)計類教學(xué)中的應(yīng)用研究[J].計算機教育,2016(09):157-162.
[5]李博,孟成博.對HUSTOJ在線評測系統(tǒng)的若干優(yōu)化與創(chuàng)新[J].現(xiàn)代計算機(專業(yè)版),2013(35):47-50+56.
[6]黃宏博.基于ACM競賽平臺模式的程序設(shè)計題自動判題系統(tǒng)設(shè)計[J].時代教育,2014(03):64-65.
[7]王桂平.高校學(xué)科競賽培訓(xùn)模式探索與實踐[J].計算機教育,2019(07):142-145.