鄒林方 郭一鳴 唐 鴛 周一峰 徐 濤 劉超英
?
基于Online Judge 的C語(yǔ)言教學(xué)
鄒林方1郭一鳴1唐 鴛2周一峰1徐 濤1劉超英1
1.成都理工大學(xué),四川 成都 610059 2.四川師范大學(xué),四川 成都 610101
慕課的興起顛覆了以往的教學(xué)模式,它提供了大量免費(fèi)、共享、高質(zhì)的課程,使得學(xué)習(xí)變得隨時(shí)隨地。各高校相繼在慕課平臺(tái)上推出了自己的課程,嘗試開(kāi)展了基于C語(yǔ)言的慕課課程。Online Judge作為本次C語(yǔ)言教學(xué)的自動(dòng)評(píng)閱工具,帶來(lái)了很多便利,但同時(shí)也存在一些不足之處。除了介紹Online Judge涉及的相關(guān)技術(shù)之外,還比較了Online Judge與手動(dòng)評(píng)閱,最后結(jié)合Online Judge的不足之處展望了Online Judge的發(fā)展方向。
Online;Judge;C語(yǔ)言;MOOC
MOOC潮流下,我院開(kāi)展了基于C語(yǔ)言的慕課課程,軟件工程專業(yè)2個(gè)班參加了此次的學(xué)習(xí)。除了傳統(tǒng)的課堂教學(xué)外,學(xué)生還可在MOOC平臺(tái)上觀看由授課老師發(fā)布的學(xué)習(xí)視頻,同時(shí)完成相應(yīng)的測(cè)驗(yàn)與作業(yè)。這些作業(yè)不再是知識(shí)點(diǎn)的鞏固與復(fù)習(xí),而是由小的編程作業(yè)組成,可以彌補(bǔ)以往學(xué)生在編程方面訓(xùn)練偏少的不足。作業(yè)的批改不再是老師的手動(dòng)評(píng)閱,而是借助于Online Judge[1]。
經(jīng)過(guò)一學(xué)期的學(xué)習(xí),Online Judge的確能激起學(xué)生的學(xué)習(xí)興趣,提高學(xué)生的編程能力。
Online Judge是在線評(píng)判系統(tǒng),最初用來(lái)于ACM-ICPC國(guó)際大學(xué)生程序設(shè)計(jì)競(jìng)賽?,F(xiàn)在廣泛用于各高校的程序類課程教學(xué)過(guò)程中,比較有名的如北京大學(xué)的POJ、浙江大學(xué)的ZOJ等。
1.1 Online Judge評(píng)閱過(guò)程
本次MOOC平臺(tái)C語(yǔ)言的教學(xué)也是使用的這種評(píng)閱系統(tǒng)。它的評(píng)閱過(guò)程如下:學(xué)生根據(jù)題目要求編寫(xiě)程序并提交,如果編譯不能通過(guò)則提示編譯不能通過(guò)。若編譯通過(guò),則依次通過(guò)每個(gè)測(cè)試用例。用例的評(píng)判具體為:將用例中給定的輸入作為提交程序的輸入,然后運(yùn)行程序,將程序輸出與用例中預(yù)先保存的輸出相比較,相同則獲得本用例相應(yīng)的分?jǐn)?shù),否則獲得0分。最后將各個(gè)用例分?jǐn)?shù)相加獲得本題得分[2]。
1.2 Online Judge優(yōu)缺點(diǎn)
Online Judge是程序自動(dòng)評(píng)閱系統(tǒng)的一種,它具有客觀、24小時(shí)可用、高效的特點(diǎn)。學(xué)生可利用此系統(tǒng)加大編程作業(yè)的練習(xí),提高自己的編程能力。及時(shí)的反饋可以讓學(xué)生發(fā)現(xiàn)程序中的錯(cuò)誤,吸取經(jīng)驗(yàn)。Online Judge也讓老師從繁重的批改作業(yè)中解放出來(lái),使老師更有精力關(guān)注于課程本身[3]。
然而在一學(xué)期的使用過(guò)程中,也發(fā)現(xiàn)了一些Online Judge的不足之處。
1.2.1 只考慮結(jié)果,不關(guān)心過(guò)程
有的學(xué)生投機(jī)取巧,直接輸出程序結(jié)果,完全沒(méi)有實(shí)現(xiàn)過(guò)程,自動(dòng)提交以后,系統(tǒng)仍然返回滿分。這種只考慮結(jié)果而不關(guān)心過(guò)程的方式實(shí)有不合理之處,同時(shí)也無(wú)法驗(yàn)證程序?qū)崿F(xiàn)是否滿足某些特殊要求。
1.2.2 沒(méi)有程序錯(cuò)誤程度的區(qū)分
編譯沒(méi)有通過(guò),學(xué)生就沒(méi)有成績(jī),即使程序只是有一點(diǎn)小小的錯(cuò)誤,沒(méi)有和其他錯(cuò)得很離譜,完全不會(huì)的學(xué)生區(qū)別開(kāi)來(lái),不能反映學(xué)生的真實(shí)水平。
1.2.3 約束條件多
要想成功通過(guò)測(cè)試用例,需要滿足很多約束條件。比如輸入輸出的格式問(wèn)題,學(xué)生往往在這方面出現(xiàn)錯(cuò)誤,這些約束加大了學(xué)習(xí)中的阻礙,深深地打擊了學(xué)習(xí)者的積極性[4]。
1.2.4 缺乏抄襲檢測(cè)功能
作業(yè)與測(cè)驗(yàn)中的程序答案很容易在網(wǎng)絡(luò)上找到。學(xué)生同時(shí)也會(huì)因?yàn)樘峤蛔鳂I(yè)截止時(shí)間的到來(lái)而復(fù)制其他同學(xué)的代碼來(lái)應(yīng)付。抄襲檢測(cè)可以檢測(cè)出兩份相同的代碼,從而端正學(xué)生的學(xué)習(xí)態(tài)度。然而聰明的學(xué)生會(huì)對(duì)復(fù)制來(lái)的程序進(jìn)行裝飾,這也增加了抄襲檢測(cè)的難度。
Online Judge這種通過(guò)運(yùn)行程序,依次檢測(cè)每個(gè)測(cè)試用例的方式為動(dòng)態(tài)評(píng)閱方式,但是一旦程序不能編譯通過(guò)便不能評(píng)分。這在平時(shí)的作業(yè)練習(xí)的過(guò)程中沒(méi)有太大的影響,但是在一些程序競(jìng)賽、考試就有關(guān)系了[5]。若一個(gè)同學(xué)的程序幾乎是正確的,就因?yàn)槿鄙僖粋€(gè)分號(hào)導(dǎo)致編譯不能通過(guò)得分為0。這種情況下就沒(méi)有體現(xiàn)出學(xué)生的真實(shí)水平?;蛟S我們可以從靜態(tài)評(píng)閱方式即不運(yùn)行程序來(lái)評(píng)閱程序。模擬手工評(píng)閱的過(guò)程,提供若干參考答案,并設(shè)置關(guān)鍵語(yǔ)句,為每個(gè)關(guān)鍵語(yǔ)句按重要性給予相應(yīng)的分?jǐn)?shù)[6]。若關(guān)鍵語(yǔ)句正確則獲得相應(yīng)的分?jǐn)?shù)??梢詮某绦虻南嗨菩詠?lái)實(shí)現(xiàn)這種評(píng)閱方式。由于同一功能程序的編寫(xiě)方式有很多種,所以如何減少程序的多樣性將是研究的重點(diǎn)。此種評(píng)閱方式可以很好地解決只輸出結(jié)果而獲得滿分,或因小過(guò)失而得0分的問(wèn)題。從程序的功能來(lái)評(píng)閱程序是無(wú)可置疑的[7]。以上提出的靜態(tài)評(píng)閱方式并不能取代動(dòng)態(tài)評(píng)閱方式。因?yàn)榫退愠绦蚝兴嘘P(guān)鍵語(yǔ)句也不能保證它能正常運(yùn)行,所以只能是輔助方式。從內(nèi)容和結(jié)果同時(shí)考慮的動(dòng)靜態(tài)結(jié)合的評(píng)閱方式將會(huì)使程序的自動(dòng)評(píng)閱更為合理[8]。
近幾年來(lái),MOOC的火熱顛覆了以往的教室學(xué)習(xí)模式,各種課程資源觸手可及,程序類課程的學(xué)習(xí)也十分熱門(mén),這勢(shì)必推動(dòng)程序自動(dòng)評(píng)閱技術(shù)的進(jìn)一步發(fā)展。學(xué)習(xí)者可以得到更有針對(duì)性、更加及時(shí)的反饋,使得學(xué)習(xí)變得隨時(shí)隨地[9]。程序的自動(dòng)評(píng)閱可以使教師從大量作業(yè)批改中解放出來(lái),可以使得學(xué)習(xí)者有更多實(shí)戰(zhàn)的機(jī)會(huì),彌補(bǔ)重理論輕實(shí)踐的不足。然而目前Online Judge還不夠成熟,它還有很多的不足之處,相信不遠(yuǎn)的未來(lái),一定會(huì)有一個(gè)更加合理、完善的Online Judge來(lái)輔助程序類課程的學(xué)習(xí)[10]。
[1]梅宏,王千祥,等.軟件分析技術(shù)進(jìn)展[J].計(jì)算機(jī)學(xué)報(bào),2009,32(9):374.
[2]王蘭.應(yīng)用于C語(yǔ)言無(wú)紙化考試的自動(dòng)閱卷系統(tǒng)的研究[D].長(zhǎng)春:吉林大學(xué),2006.
[3]馬培軍,王甜甜,蘇小紅.基于程序理解的編程題自動(dòng)評(píng)分方法[J].計(jì)算機(jī)研究與發(fā)展,2009,46(7):1136-1142.
[4]熊浩,晏海華.代碼相似性檢測(cè)技術(shù):研究綜述[J].計(jì)算機(jī)科學(xué),2010,37(8):155.
[5]鄧愛(ài)萍.程序代碼相似度度量算法研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,9.29(17):429.
[6]葉從歡,王光偉,黃蘭英,等.MOOC平臺(tái)下基于混合式學(xué)習(xí)的C語(yǔ)言教學(xué)模式研究[J].科技情報(bào)開(kāi)發(fā)與經(jīng)濟(jì),2015,25(22):129-130.
[7]丁凱,張運(yùn)凱,王方偉,等.基于MOOC平臺(tái)的C語(yǔ)言與程序設(shè)計(jì)混合式學(xué)習(xí)模式[J].中小學(xué)電教,2015(10):12-15.
[8]朱鴻鵬.《C語(yǔ)言程序設(shè)計(jì)》課程教學(xué)中的MOOC[J].知識(shí)窗:教師版,2015(9):38-39.
[9]廖雪花,厲蘭潔,唐思娩.基于OnlineJudge的C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)課教學(xué)改革研究[J].計(jì)算機(jī)教育,2016(6):33-34.
[10]唐曉,李強(qiáng),陳新,等.基于MOOC平臺(tái)的C語(yǔ)言課程教學(xué)模式研究[J].空軍預(yù)警學(xué)院學(xué)報(bào),2015(3):227-229.
C language Teaching based on Judge Online
Zou Linfang1Guo Yiming1Tang Yuan2Zhou Yifeng1Xu Tao1Liu Chaoying1
1.Chengdu University of Technology, Sichuan Chengdu 610059 2.Sichuan Normal University, Sichuan Chengdu 610101
The rise of subversion of the previous teaching mode, it provides a large number of free, shared, high quality courses, so that learning becomes anytime, anywhere. All colleges and universities have launched their own courses in the Mu class platform, try to carry out the C language based on the mu course. Online judge as a tool for the automatic marking of the C language teaching, brought a lot of convenience. But there are also some shortcomings. In this paper, in addition to introduce related technologies involved in the online judge. We also compare the online judge and manual marking. Finally, combined with the shortcomings of online judge and prospects the development direction of online judge.
Online; Judge; C language; MOOC
G642;TP312.1-4
A
1009-6434(2016)08-0108-02