廖雪花 厲蘭潔 唐思娩
摘要:C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)課是學(xué)生練習(xí)和鞏固C語(yǔ)言知識(shí)、加強(qiáng)實(shí)踐動(dòng)手能力鍛煉的機(jī)會(huì),針對(duì)在實(shí)際教學(xué)中無(wú)法兼顧每位學(xué)生的問(wèn)題,闡述Online Judge系統(tǒng)如何更好地實(shí)現(xiàn)智能評(píng)閱,促進(jìn)實(shí)驗(yàn)課更高效地進(jìn)行。
關(guān)鍵詞:Online Judge;C語(yǔ)言;實(shí)驗(yàn)課;教學(xué)改革
C語(yǔ)言程序設(shè)計(jì)是高校計(jì)算機(jī)相關(guān)專業(yè)的必修基礎(chǔ)課程,也是學(xué)生程序設(shè)計(jì)類的入門課程。C語(yǔ)言的掌握程度對(duì)學(xué)生后續(xù)計(jì)算機(jī)類專業(yè)課程的學(xué)習(xí)有很大的作用和影響。在實(shí)際教學(xué)過(guò)程中,實(shí)驗(yàn)課是學(xué)生獨(dú)立學(xué)習(xí)C語(yǔ)言進(jìn)行實(shí)地編程的機(jī)會(huì),實(shí)驗(yàn)課的上機(jī)實(shí)驗(yàn),可幫助學(xué)生消化和鞏固課堂所學(xué)知識(shí),也可幫助學(xué)生解決學(xué)習(xí)中的疑難問(wèn)題,更重要的是可激發(fā)和提高學(xué)生學(xué)習(xí)C程序設(shè)計(jì)的興趣。因此,實(shí)驗(yàn)課如何更高效率地幫助學(xué)生學(xué)習(xí)是非常關(guān)鍵且必要的。在未進(jìn)行改革探究之前,實(shí)驗(yàn)課就是學(xué)生自主地完成實(shí)驗(yàn)報(bào)告,完成后一并上交老師批改。對(duì)于學(xué)生而言,做得對(duì)錯(cuò)與否都無(wú)法第一時(shí)間得到反饋;對(duì)于教師而言,一個(gè)班級(jí)的批改量也極為巨大,需要耗費(fèi)不少時(shí)間,也無(wú)法針對(duì)每位同學(xué)做出反饋。這些無(wú)疑對(duì)C語(yǔ)言的學(xué)習(xí)和教學(xué)的推進(jìn)工作造成了一定的阻礙。
為此,在運(yùn)用SPOC平臺(tái)改進(jìn)C語(yǔ)言程序設(shè)計(jì)課程教學(xué)的同時(shí)充分利用平臺(tái)中的OnlineJudge智能評(píng)閱功能,能讓實(shí)驗(yàn)課發(fā)揮更大的效用。
1C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)課的教學(xué)現(xiàn)狀
一直以來(lái),實(shí)驗(yàn)課就是學(xué)生獨(dú)立完成相應(yīng)實(shí)驗(yàn)報(bào)告的課時(shí),這一期間有任課教師和帶機(jī)老師進(jìn)行輔導(dǎo)及檢查工作。在實(shí)驗(yàn)課上,教師們幾乎不停歇,因?yàn)榻鉀Q一個(gè)程序問(wèn)題需要對(duì)學(xué)生進(jìn)行多方面的引導(dǎo),再加上檢查學(xué)生的實(shí)驗(yàn)報(bào)告成果也并非僅檢查程序的運(yùn)行結(jié)果,還需要考察學(xué)生是否真正掌握了這個(gè)知識(shí)點(diǎn)。雖然每次實(shí)驗(yàn)課上老師們已盡心竭力,但還是無(wú)法照顧到每位學(xué)生,依舊有學(xué)生的問(wèn)題未得到輔導(dǎo)或解決。與學(xué)生的交流中,學(xué)生也反映這在一定程度上影響了他們對(duì)C語(yǔ)言程序設(shè)計(jì)的積極性。因此,急需一種方法幫助解決實(shí)驗(yàn)課上的這一問(wèn)題。
2C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)課的改革探究
2.1Online Judge簡(jiǎn)介
Online Judge在線測(cè)評(píng)系統(tǒng)(簡(jiǎn)稱OJ系統(tǒng))是一個(gè)基于B/S結(jié)構(gòu)的在線程序與算法設(shè)計(jì)練習(xí)、考試平臺(tái),能對(duì)學(xué)生用網(wǎng)頁(yè)瀏覽器提交到服務(wù)器的習(xí)題、作業(yè)等程序源代碼進(jìn)行在線編譯,生成可執(zhí)行文件,并從數(shù)據(jù)庫(kù)中調(diào)用測(cè)試數(shù)據(jù),從程序運(yùn)行的正確性、耗時(shí)、耗費(fèi)內(nèi)存及返回結(jié)果等各方面評(píng)測(cè)代碼,并精確反饋各方面的評(píng)測(cè)結(jié)果。在面向程序設(shè)計(jì)類課程的教學(xué)輔助方面,以PKU ACM Judge Online為代表的Online Judge系統(tǒng)能夠?qū)τ脩籼峤坏某绦蜻M(jìn)行“黑盒判定”來(lái)自動(dòng)生成判題結(jié)果。
2.2Online Judge在實(shí)驗(yàn)課中的應(yīng)用
筆者在中國(guó)大學(xué)MOOC網(wǎng)站上開(kāi)設(shè)了一門C語(yǔ)言程序設(shè)計(jì)課程的異步SPOC課程,平臺(tái)上的“測(cè)試與作業(yè)”板塊為實(shí)驗(yàn)課的開(kāi)展提供了極大的便利,該板塊可以在課程后臺(tái)管理頁(yè)面中自由添加單元作業(yè)及作業(yè)題,作業(yè)題的錄入包括以下6個(gè)部分:選擇本題編程語(yǔ)言、題目錄入并設(shè)定題目分值、程序是否需輸入、題目?jī)?nèi)容錄入、題目測(cè)試用例錄入、程序限制設(shè)置,如圖1~6所示。
為此,提前將實(shí)驗(yàn)報(bào)告中的試題在平臺(tái)上進(jìn)行錄入并設(shè)置分值及測(cè)試用例,待作業(yè)題成功發(fā)布之后,學(xué)生通過(guò)在相應(yīng)文本框中錄入C語(yǔ)言程序代碼,提交后OJ系統(tǒng)便會(huì)自動(dòng)開(kāi)始檢測(cè)。OJ系統(tǒng)主要通過(guò)學(xué)生提交的代碼能否順利通過(guò)之前設(shè)置的用例來(lái)判斷答案的正確與否。
實(shí)驗(yàn)課上,學(xué)生們?cè)跈C(jī)房通過(guò)平臺(tái)上的OJ系統(tǒng)來(lái)智能評(píng)閱自己的代碼是否正確,以不斷進(jìn)行修正,測(cè)試不通過(guò)的用例,會(huì)在頁(yè)面上提示代碼可能存在的某一方面的問(wèn)題,提醒學(xué)生認(rèn)真考慮編程時(shí)是否忽略了這一方面。OJ系統(tǒng)的智能評(píng)閱功能為教師和學(xué)生提供了極大的便利,極大解決了教師無(wú)法兼顧每位學(xué)生的局面。在實(shí)行為期一個(gè)學(xué)期的教學(xué)改革之后,學(xué)生對(duì)此次應(yīng)用OJ系統(tǒng)來(lái)測(cè)評(píng)作業(yè)、習(xí)題,以及階段考試的改革頗為滿意,對(duì)編程有了濃厚的興趣,對(duì)所學(xué)課程知識(shí)也有了很好的理解和掌握。
2.3Online Judge在應(yīng)用中的注意事項(xiàng)
Online Judge在線測(cè)評(píng)系統(tǒng)在C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)課中發(fā)揮了很大的作用,節(jié)省了教師檢查學(xué)生作業(yè)的時(shí)間,促進(jìn)了學(xué)生更加自主地學(xué)習(xí),增加了學(xué)生學(xué)習(xí)的興趣,提高了學(xué)生實(shí)踐動(dòng)手能力。但要使OJ系統(tǒng)更好地發(fā)揮效用,教師需要注意以下兩個(gè)方面:
(1)OJ系統(tǒng)需要教師對(duì)題目進(jìn)行正確描述和引導(dǎo)。題目?jī)?nèi)容錄入包括題目錄入、輸入格式、輸出格式、輸入樣例、輸出樣例五個(gè)部分,每部分都至關(guān)重要,若描述不準(zhǔn)確,誤導(dǎo)了學(xué)生對(duì)題目?jī)?nèi)容的理解,就會(huì)導(dǎo)致學(xué)生的代碼無(wú)法通過(guò)OJ系統(tǒng)的測(cè)試。對(duì)于OJ系統(tǒng)來(lái)說(shuō)也是一樣,用例中的格式是逗號(hào)就必須寫逗號(hào),否則測(cè)試就不通過(guò)。若題目中未明確表明,學(xué)生則會(huì)非常疑惑,屢試屢敗便會(huì)非常懊惱。因此,教師必須對(duì)題目進(jìn)行正確描述和引導(dǎo)。
(2)教師需要對(duì)測(cè)試用例考慮充分。測(cè)試用例的對(duì)錯(cuò)會(huì)影響OJ系統(tǒng)對(duì)學(xué)生提交代碼的評(píng)判。如除法中除數(shù)不能為0,若輸入為0,需要輸出如“0不能作除數(shù)”之類的提示語(yǔ)。又如負(fù)數(shù)的考慮,有些學(xué)生在編程代碼中會(huì)忽略,默認(rèn)輸入只能為正數(shù),那么教師在設(shè)置測(cè)試用例及分值時(shí)就要體現(xiàn)出來(lái),以引導(dǎo)學(xué)生全面考慮題目的用意。
OJ系統(tǒng)對(duì)教師提出了更高的要求,需要教師認(rèn)真負(fù)責(zé)全面地進(jìn)行準(zhǔn)備。
3結(jié)語(yǔ)
在C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)課中應(yīng)用OnlineJudge系統(tǒng),對(duì)教學(xué)效果的提升起了非常重要的作用,由此可見(jiàn)實(shí)現(xiàn)智能評(píng)閱對(duì)計(jì)算機(jī)程序設(shè)計(jì)類課程的重要性。筆者也積極地在OJ系統(tǒng)的基礎(chǔ)上開(kāi)發(fā)一套更智能的評(píng)閱系統(tǒng),以促進(jìn)程序設(shè)計(jì)類課程的改革,使學(xué)生更喜歡這類課程,更好地培養(yǎng)學(xué)生的編程能力和實(shí)踐能力。