沈涵飛
(蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院,江蘇 蘇州 215123)
在線評測系統(tǒng)在高職程序設(shè)計(jì)實(shí)踐教學(xué)中的應(yīng)用
沈涵飛
(蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院,江蘇 蘇州 215123)
為提高程序設(shè)計(jì)課程的教學(xué)質(zhì)量,文章構(gòu)建了一個(gè)基于在線評測系統(tǒng)的練習(xí)平臺,并針對高職學(xué)生改進(jìn)了應(yīng)用方式,同時(shí)將評價(jià)的重點(diǎn)放在了學(xué)生運(yùn)用計(jì)算機(jī)解決問題的能力上。實(shí)踐表明,在線評測系統(tǒng)的使用有效提高了教學(xué)質(zhì)量。
在線評測系統(tǒng);核心筆記;程序設(shè)計(jì)教學(xué);計(jì)算思維
程序設(shè)計(jì)類課程是高職院校計(jì)算機(jī)相關(guān)專業(yè)的核心課程,這類課程的實(shí)踐性很強(qiáng),實(shí)踐教學(xué)在整個(gè)課程中占據(jù)了核心地位。以往教學(xué)過程中過于注重語句、語法和一些細(xì)節(jié),基本上是以高級語言自身的體系為脈絡(luò)展開的,沒有把邏輯與編程解題思路放在主體地位上[1]。學(xué)生普遍反映課程枯燥難學(xué),解決問題的能力并沒有明顯提高,不適應(yīng)社會對軟件開發(fā)人才的需求。
高質(zhì)量的教學(xué)要充分考慮課程本身的特點(diǎn)和學(xué)生的特點(diǎn)來展開。2010年首屆“九校聯(lián)盟(C9)計(jì)算機(jī)基礎(chǔ)教學(xué)課程研討會”上,明確提出計(jì)算機(jī)基礎(chǔ)教學(xué)的核心任務(wù)是計(jì)算思維能力的培養(yǎng)[2]。教育部高等學(xué)校計(jì)算機(jī)基礎(chǔ)課程教學(xué)指導(dǎo)委員會提出了大學(xué)計(jì)算機(jī)基礎(chǔ)教學(xué)4個(gè)方面的能力培養(yǎng)目標(biāo):對計(jì)算機(jī)的認(rèn)知能力、應(yīng)用計(jì)算機(jī)解決問題的能力、基于網(wǎng)絡(luò)的學(xué)習(xí)能力、依托信息技術(shù)的共處能力[3]。程序設(shè)計(jì)類課程的主要目標(biāo)就是培養(yǎng)學(xué)生應(yīng)用計(jì)算機(jī)(體現(xiàn)為編寫程序)解決問題的能力。
另一方面,高職學(xué)生和本科學(xué)生相比,在理論學(xué)習(xí)方面的能力和積極性有較大的差距。針對這一特點(diǎn),在教學(xué)過程中,需要合理設(shè)計(jì)練習(xí)內(nèi)容,以問題求解為中心,語言語法圍繞問題逐步引入。
根據(jù)課程和學(xué)生的特點(diǎn)確定的新的教學(xué)方式以程序設(shè)計(jì)為主線組織教學(xué),在問題求解過程中理解高級語言的語法,以培養(yǎng)學(xué)生的計(jì)算思維(問題求解能力)為核心。這種教學(xué)方式的實(shí)施離不開練習(xí)平臺的支撐。實(shí)踐表明,將最初用于高水平編程競賽的在線評測系統(tǒng)應(yīng)用到程序設(shè)計(jì)課程的實(shí)驗(yàn)教學(xué)是一種可行并有效的方式。
傳統(tǒng)方式存在兩大問題:(1)教師評閱紙質(zhì)作業(yè)需要耗費(fèi)大量的時(shí)間和精力;(2)反饋周期較長,導(dǎo)致學(xué)生的學(xué)習(xí)興趣逐漸減退,不利于學(xué)生學(xué)習(xí)積極性的發(fā)揮。把在線評測系統(tǒng)引入程序設(shè)計(jì)課程的教學(xué)可以有效地解決這兩個(gè)問題。
在線評測(Online Judge,OJ),是基于Web的服務(wù)器端判題系統(tǒng)。用戶注冊后,可以根據(jù)題目在線提交多種程序(C,C++,JAVA,Pascal,Python)源代碼,系統(tǒng)對源代碼進(jìn)行編譯和執(zhí)行,采用黑盒測試,通過預(yù)先設(shè)置的測試數(shù)據(jù)來檢驗(yàn)源代碼的正確性。
在線評測系統(tǒng)最先應(yīng)用于ACM-ICPC國際大學(xué)生程序設(shè)計(jì)競賽和信息學(xué)奧林匹克競賽的自動(dòng)判題和訓(xùn)練中,現(xiàn)已逐步應(yīng)用于本科院校高級語言程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)與算法分析等課程的實(shí)踐教學(xué)中,并取得了較好的效果[4]。
在實(shí)踐過程中,采用的是HUST Online JudgeSystem,這是由華中科技大學(xué)畢業(yè)生王良晶等開發(fā)并在2008年底以GPL協(xié)議進(jìn)行開源的在線評測系統(tǒng)[5],該系統(tǒng)基于LAMP平臺,提供了使用Ubuntu的LiveCD,用戶無需安裝即可使用其完整功能,并可以圖形化方式完成系統(tǒng)安裝,降低了使用門檻。基于此系統(tǒng),文章搭建了C/C++/JAVA程序自動(dòng)評測系統(tǒng),網(wǎng)址為http://learn.siso.edu.cn/JudgeOnline。
4.1 在線評測系統(tǒng)的適應(yīng)性改進(jìn)
高水平程序設(shè)計(jì)競賽和高職程序設(shè)計(jì)實(shí)踐教學(xué)的目的和參與者存在很大差別,要充分發(fā)揮在線評測系統(tǒng)的作用還需要針對課程和學(xué)生特點(diǎn)進(jìn)行改進(jìn)。筆者采取了下列措施使之能更好地服務(wù)于課程的教學(xué):(1)大幅度增加了基礎(chǔ)題目的比重,讓學(xué)生能夠花較少的時(shí)間完成大多數(shù)練習(xí),增強(qiáng)學(xué)生的信心;(2)創(chuàng)建套題,增強(qiáng)題目之間的關(guān)聯(lián)性、循序漸進(jìn),給學(xué)生提供更多的臺階,鼓勵(lì)學(xué)生自主學(xué)習(xí);(3)充分利用Web的特點(diǎn),在題目中盡可能配圖,增強(qiáng)系統(tǒng)對于90后學(xué)生的親和力,讓學(xué)生樂于使用;(4)對于難度較大的題目,通過在題目中給出提示、線索、部分代碼等方式,降低學(xué)生完成的難度,減少學(xué)生的挫敗感。
4.2 核心筆記(Key Note)提高解決問題的效率
為配合在線評測系統(tǒng)在教學(xué)中的使用,提高學(xué)生解決問題的效率,克服學(xué)生的畏難情緒,文章精心設(shè)計(jì)了核心筆記(Key Note)。從形式上看,核心筆記僅是一張A4紙。
核心筆記的內(nèi)容凝聚了程序設(shè)計(jì)課程所有的核心知識點(diǎn)和最常用代碼,課程的次要內(nèi)容只提供線索,在需要的時(shí)候,學(xué)生可以依據(jù)線索在互聯(lián)網(wǎng)上查找,這也有助于培養(yǎng)學(xué)生的網(wǎng)絡(luò)學(xué)習(xí)能力。
提交到在線評測系統(tǒng)的程序可以劃分成類型聲明、輸入、數(shù)據(jù)計(jì)算和輸出4部分。在核心筆記中,對常用的聲明、輸入、輸出歸納成表格供學(xué)生參考,這樣可以避免學(xué)生在這些部分出現(xiàn)錯(cuò)誤,有利于學(xué)生將精力集中在問題求解的核心部分—數(shù)據(jù)計(jì)算。
核心筆記還將實(shí)驗(yàn)題目中最常用到的代碼設(shè)計(jì)成模塊,學(xué)生可以運(yùn)用這些模塊來解決較復(fù)雜的問題,這也有助于學(xué)生在實(shí)踐中體會結(jié)構(gòu)化程序設(shè)計(jì)的核心—函數(shù)和模塊劃分。
4.3 教學(xué)內(nèi)容和順序的調(diào)整
新的教學(xué)模式需要對傳統(tǒng)的教學(xué)內(nèi)容和順序進(jìn)行調(diào)整。在新的教學(xué)方式下,程序設(shè)計(jì)課程的上半學(xué)期以實(shí)踐課為主,課程重點(diǎn)放在講思路,學(xué)生只需理解和掌握核心筆記中極為有限的內(nèi)容,更多的是鼓勵(lì)學(xué)生運(yùn)用知識解決問題,培養(yǎng)計(jì)算思維。
通過半個(gè)學(xué)期的學(xué)習(xí)后,學(xué)生的計(jì)算思維和問題求解能力得到了有效的提高,在此基礎(chǔ)上,下半學(xué)期的課程實(shí)現(xiàn)了理論課和實(shí)驗(yàn)課并重,逐步引入了程序設(shè)計(jì)語言的更多語法和細(xì)節(jié),介紹了同一問題的不同解決方式。學(xué)生的感性知識有了足夠的積累,對于理論知識的接受度也就大大提高。
4.4 評價(jià)方式的轉(zhuǎn)變
優(yōu)秀的評價(jià)機(jī)制能夠點(diǎn)燃學(xué)生的學(xué)習(xí)熱情,激發(fā)他們的創(chuàng)新欲望。傳統(tǒng)的實(shí)驗(yàn)教學(xué)方式很難準(zhǔn)確評價(jià)每個(gè)學(xué)生的成績,這也在一定程度上影響了學(xué)生的積極性。
在采用新的實(shí)驗(yàn)平臺后,盡管學(xué)生完成實(shí)驗(yàn)的狀況一目了然,系統(tǒng)可以直接生成Excel成績單,但并沒有簡單地?fù)?jù)此來確定學(xué)生的實(shí)驗(yàn)成績。如果直接依據(jù)系統(tǒng)生成的成績單作為實(shí)驗(yàn)成績,很多學(xué)生就會抄襲其他同學(xué)的作業(yè),并不自己獨(dú)立去完成。這樣的成績既缺乏公信力,也無法促進(jìn)學(xué)生自主學(xué)習(xí)。
筆者嘗試了探索新的考試方式?,F(xiàn)在采用的考試主要考查運(yùn)用計(jì)算機(jī)進(jìn)行問題求解的能力,運(yùn)用計(jì)算機(jī)主要體現(xiàn)為使用編程語言,也可以借助于計(jì)算器和Excel等其他工具??荚噧?nèi)容包括15~20個(gè)問題,如求1~n的平方和、計(jì)算給定區(qū)間內(nèi)素?cái)?shù)的個(gè)數(shù)、韓信點(diǎn)兵等。每個(gè)問題給出多組輸入,要求學(xué)生運(yùn)用計(jì)算機(jī)填寫輸出結(jié)果。很多題目在較為簡單的情形下,筆算或者利用計(jì)算器就能獲得答案,這也有助于學(xué)生理解計(jì)算思維,為編寫程序進(jìn)行問題求解提供了臺階??荚嚥捎霉P試方式,提供了紙質(zhì)試卷,題目類型全部是填空題,學(xué)生可以借助于不聯(lián)網(wǎng)的計(jì)算機(jī)答題。
考試不能攜帶教材,但為了避免部分學(xué)生由于基礎(chǔ)掌握不夠好,出現(xiàn)完全無法答題的情形,允許學(xué)生攜帶核心筆記。學(xué)生要獲得高分,就需要踏踏實(shí)實(shí)地完成盡可能多的問題??荚嚧螖?shù)也從一次考試變?yōu)槎啻慰荚?,只要學(xué)生愿意投入時(shí)間,就可以不斷提升自己的成績,有利于充分釋放學(xué)生的潛力。
采用基于在線評測系統(tǒng)、以問題求解為核心的練習(xí)平臺后,具有以下效果:(1)學(xué)生真正成了課程的主體,主動(dòng)解決問題;(2)實(shí)現(xiàn)了教師角色的轉(zhuǎn)變,從傳統(tǒng)的向?qū)W生傳授知識轉(zhuǎn)變?yōu)閰f(xié)助學(xué)生解決問題;(3)學(xué)生提交作業(yè)后,能夠獲得及時(shí)反饋,有利于培養(yǎng)學(xué)生的興趣;(4)學(xué)生可以實(shí)時(shí)看到班級同學(xué)的完成狀況,形成了你追我趕的學(xué)習(xí)氛圍;(5)有利于盡早發(fā)現(xiàn)學(xué)習(xí)有潛力的學(xué)生,進(jìn)行有針對性的培養(yǎng);(6)構(gòu)建了開放、自主學(xué)習(xí)的實(shí)驗(yàn)環(huán)境,學(xué)生可以在課外通過網(wǎng)絡(luò)訪問,不再受時(shí)間和地點(diǎn)的約束。
基于在線評測系統(tǒng)的練習(xí)平臺除了用于程序設(shè)計(jì)的教學(xué)外,也用于高職學(xué)生軟件設(shè)計(jì)與開發(fā)競賽的培訓(xùn),兩者實(shí)現(xiàn)了無縫銜接。
在采用了基于在線評測系統(tǒng)的練習(xí)平臺后,教學(xué)質(zhì)量有了大幅度的提高。
本文分析了高職程序設(shè)計(jì)課程的現(xiàn)狀,提出了“以學(xué)生為中心、在問題求解過程中適時(shí)引入語法”的理念,并以開源的在線評測系統(tǒng)HustOJ為基礎(chǔ)構(gòu)建了練習(xí)平臺,鼓勵(lì)學(xué)生應(yīng)用核心筆記來解決問題,將評價(jià)的重點(diǎn)放在了學(xué)生運(yùn)用計(jì)算機(jī)解決問題的能力上。這些措施突出了課程的重點(diǎn),降低了學(xué)習(xí)過程中的障礙,激發(fā)了學(xué)生的好勝心和學(xué)習(xí)熱情,培養(yǎng)了學(xué)生的計(jì)算思維。在采取了新的教學(xué)方式后,教學(xué)質(zhì)量有了大幅度的提高,在藍(lán)橋杯程序設(shè)計(jì)大賽中取得了優(yōu)異的成績。
[1]吳文虎.計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課程改革[J].中國大學(xué)教學(xué),2004(2):13-14.
[2]何欽銘,陸漢權(quán),馮博琴.計(jì)算機(jī)基礎(chǔ)教學(xué)的核心任務(wù)是計(jì)算思維能力的培養(yǎng)[J].中國大學(xué)教學(xué),2010(9):5-9.
[3]教育部高等學(xué)校計(jì)算機(jī)基礎(chǔ)課程教學(xué)指導(dǎo)委員會.高等學(xué)校計(jì)算機(jī)基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略研究報(bào)告暨計(jì)算機(jī)基礎(chǔ)課程教學(xué)基本要求[M].北京:高等教育出版社,2009.
[4]林巧,韓建民.基于在線評測系統(tǒng)的C語言實(shí)踐教學(xué)探討[J].實(shí)驗(yàn)科學(xué)與技術(shù),2011(9):37-39.
[5]張浩斌. 基于開放式云平臺的開源在線評測系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)科學(xué),2012(39):339-343.
Application of online judge system on experimental teaching of program design in polytechnic institute
Shen Hanfei
(Suzhou Industrial Park Institute of Services Outsourcing, Suzhou 215123, China)
In order to improve the teaching quality of program design course, we construct the online judge system for higher vocational college students in this paper. We focus on the evaluation of students’ability to solve problems by using the computer. Practice shows that the use of online judge system can effectively improve the quality of teaching.
online judge system; Key Notes; experimental teaching; computational thinking
項(xiàng)目名稱:網(wǎng)絡(luò)課程資源庫《C語言程序設(shè)計(jì)》;項(xiàng)目編號:zyk-006。
沈涵飛(1978— ),男,江蘇蘇州,碩士,設(shè)計(jì)師,講師;研究方向:信息化教學(xué),移動(dòng)互聯(lián)網(wǎng),云計(jì)算。