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