靜網PWA視頻評論

以OJ系統和學科競賽為核心的程序設計實踐教學

2023年10月29日

- txt下載

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

收藏

相關推薦

清純唯美圖片大全

字典網 - 試題庫 - 元問答 - 简体 - 頂部

Copyright © cnj8 All Rights Reserved.