向程冠+熊世桓+熊偉程+左羽
摘 要:《數(shù)據(jù)結(jié)構(gòu)》課程是計算機專業(yè)的核心“飯碗”課程之一,然而在傳統(tǒng)的教學(xué)中教師往往只教理論,沒有實際的代碼實現(xiàn)過程演示,講解的例子缺乏應(yīng)用性,學(xué)生學(xué)得枯燥無味。課題組經(jīng)過教學(xué)改革,將ACM/ICPC問題驅(qū)動引入課堂教學(xué),采用問題驅(qū)動的教學(xué)方法,并貫穿于整個理論教學(xué)、實驗實訓(xùn)的過程,組織學(xué)生參加程序,以競促學(xué),以競促教,提高學(xué)生的算法設(shè)計能力,取得了良好的教學(xué)效果。
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu) 算法設(shè)計 ACM/ICPC 問題驅(qū)動
中圖分類號:TP391 文獻標識碼:A 文章編號:1672-3791(2017)07(b)-0179-02
在高校計算機專業(yè)的課程中,《數(shù)據(jù)結(jié)構(gòu)》一直處于核心地位,與程序設(shè)計課程是計算機專業(yè)的“飯碗”課程,傳統(tǒng)的教學(xué)中一般是老師講學(xué)生聽,教學(xué)過程一直由老師主導(dǎo),學(xué)生處在觀眾位置,教師只講原理,從不展示實現(xiàn)過程,脫離實際應(yīng)用,導(dǎo)致學(xué)生動手能力差,不能將理論應(yīng)用于實踐。怎么上好這門課程、如何進行教學(xué)改革一直是高校課程改革的重要課題。
1 背景及意義
《數(shù)據(jù)結(jié)構(gòu)》是計算機相關(guān)專業(yè)的一門專業(yè)基礎(chǔ)課程[1]。課程從ADT思想出發(fā),主要有線型、樹型和圖型三大類數(shù)據(jù)結(jié)構(gòu)、查找和排序兩大類基本算法以及算法分析的基礎(chǔ)[2]。培養(yǎng)學(xué)生設(shè)計算法、開發(fā)程序的能力,使學(xué)生能夠根據(jù)實際問題的需要,選擇適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)及設(shè)計出相應(yīng)的算法;通過實驗,進一步鍛煉學(xué)生的動手能力,培養(yǎng)學(xué)生分析和解決實際問題的能力。為學(xué)生學(xué)習(xí)操作系統(tǒng)、編譯原理和數(shù)據(jù)庫等后續(xù)課程奠定基礎(chǔ)。ACM/ICPC(ACM International Collegiate Programming Contest,國際大學(xué)生程序設(shè)計競賽)是由美國計算機協(xié)會(ACM)主辦的一項旨在展示大學(xué)生創(chuàng)新能力、團隊精神和在壓力下編寫程序、分析和解決問題能力的年度競賽,經(jīng)過近40年的發(fā)展,已經(jīng)成為全球最有影響力、參賽水平最高的大學(xué)生程序設(shè)計競賽[4]。顯然,前者在于傳授知識,后者在于檢驗、使用知識,二者具有辯證統(tǒng)一的關(guān)系。在《數(shù)據(jù)結(jié)構(gòu)》課程傳統(tǒng)的教學(xué)模式中,通常把已有的經(jīng)典算法通過代碼直接給學(xué)生講解,學(xué)生處于“要我學(xué)”的模式,實驗教學(xué)中只是要求學(xué)生驗證即可[3],學(xué)生主要是“聽中學(xué)”,由于其學(xué)習(xí)難度大,即使部分學(xué)生可以聽懂,但要編程實現(xiàn)時卻無從下手。而ACM/ICPC題庫中涵蓋了線性結(jié)構(gòu)、樹型結(jié)構(gòu)、圖結(jié)構(gòu)和集合的知識運用,并且題目具有趣味性,將ACM/ICPC的模式應(yīng)于到《數(shù)據(jù)結(jié)構(gòu)》課程的教學(xué)改革中,以ACM/ICPC問題驅(qū)動教學(xué),以競促學(xué),以競促教,變“聽中學(xué)”為“做中學(xué)”,對于培養(yǎng)學(xué)生的自主探索能力和創(chuàng)新能力具有深遠的意義。
2 基于ACM/ICPC問題驅(qū)動的《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)改革
2.1 基于ACM/ICPC問題驅(qū)動的理論教學(xué)改革
ACM/ICPC中的題目不僅專業(yè)性強、覆蓋面廣(囊括了線性結(jié)構(gòu)、樹型結(jié)構(gòu)、圖型結(jié)構(gòu)和集合的知識點),而且具有味性、實用性、創(chuàng)新性。在《數(shù)據(jù)結(jié)構(gòu)》課程的教學(xué)中,傳授理論知識前將ACM/ICPC問題先拋出來,促使學(xué)生尋求解題的方法及所需理論知識,將教學(xué)活動變成“困惑——探索——掌握”的問題解決過程,變傳統(tǒng)的“聽中學(xué)”為“做中學(xué)”。在理論教學(xué)中針對一個知識點結(jié)合一個ACM問題,如果問題太難可遵循ACM出題的原則設(shè)計問題。
2.2 基于ACM/ICPC問題驅(qū)動的實驗教學(xué)改革
《數(shù)據(jù)結(jié)構(gòu)》是一門實踐性很強的課程,在實驗教學(xué)中,將理論課上提出的ACM問題作為基本實驗,及時運用所學(xué)知識解決實際問題。嚴格按照ACM/ICPC 競賽的方式,將學(xué)生分成三人一個組,并要求每個小組的學(xué)生在POJ(PKU Online Jude,北京大學(xué)在線評測系統(tǒng))中完成實驗,把每次實驗當(dāng)成一次競賽,根據(jù)學(xué)生完成的情況及排名評定實驗成績,這將使學(xué)生重視每次實驗,對于提高學(xué)生團隊協(xié)作能力有很大幫助,提高學(xué)生運用所學(xué)知識解決實際問題的能力。
2.3 “以競促學(xué)、以競促教”模式研究
對于新建的應(yīng)用型本科院校,計算機專業(yè)的培養(yǎng)方案中明確要求學(xué)生四年內(nèi)擁有“六個一”,其中一次競賽獲獎排在首位,這也符合學(xué)校培養(yǎng)應(yīng)用型人才的方針。在教學(xué)中,可以鼓勵、引導(dǎo)學(xué)生參加ACM/ICPC競賽,可行參加省賽。因為ACM/ICPC的難度大,對教師也是考驗,可每年先組織教師外出參加ACM/ICPC學(xué)習(xí)(如北京大學(xué)每年暑期均會開辦ACM/ICPC競賽訓(xùn)練班),參加學(xué)習(xí)的教師再指導(dǎo)幾組學(xué)生,對學(xué)生集中培訓(xùn),強化《數(shù)據(jù)結(jié)構(gòu)》知識在ACM/ICPC競賽中的應(yīng)用,增強師生教學(xué)默契,教學(xué)相長,提高學(xué)生團隊實戰(zhàn)能力。
2.4 結(jié)合ACM/ICPC模式改進《數(shù)據(jù)結(jié)構(gòu)》教學(xué)計劃
合理調(diào)整《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)中理論與實踐學(xué)時的分配,注重實踐環(huán)節(jié),將ACM/ICPC題庫中的經(jīng)典題目作為理論課的問題驅(qū)動[5],要求學(xué)生學(xué)習(xí)理論知識后解決給出的實際問題,并將提出的問題作為實踐教學(xué)環(huán)節(jié)的一部分內(nèi)容,讓學(xué)生在實驗課程中編程解決實際問題。
2.5 結(jié)合ACM/ICPC模式改革實驗考核方法
學(xué)生實驗完全在POJ(PKU Online Jude,北京大學(xué)在線評測系統(tǒng))中完成,要求3個同學(xué)一組,精誠合作,共同完成,培養(yǎng)學(xué)生的團隊協(xié)作能力。成績評定按照ACM/ICPC競賽規(guī)則進行,即根據(jù)提交成功的題目數(shù)量、運行結(jié)果與排名評定實驗成績。
2.6 組織學(xué)生參加每年度的ACM/ICPC程序設(shè)計競賽,提升知識運用能力
《數(shù)據(jù)結(jié)構(gòu)》教學(xué)的重點應(yīng)從“被動灌輸知識”向“主動運用知識”轉(zhuǎn)變,積極組織學(xué)生參加ACM/ICPC競賽,可有效將所學(xué)知識運用于實踐,由于部分地區(qū)對于ACM/ICPC的引入較晚,目前還沒有ACM/ICPC賽區(qū),可以組織學(xué)生參加其它地區(qū)的比賽,為營造ACM/ICPC氛圍貢獻力量。
3 結(jié)語
將ACM/ICPC問題驅(qū)動引入《數(shù)據(jù)結(jié)構(gòu)》課堂教學(xué),將競賽試題在課前分配給學(xué)生,要求學(xué)習(xí)相關(guān)章節(jié)的知識后,用所學(xué)知識解決問題,并通過代碼完成,采用競賽規(guī)則評判學(xué)生的實驗成績,可有效將所學(xué)知識轉(zhuǎn)化為解決問題的技能,從而提高了學(xué)生的算法設(shè)計能力和程序編寫能力,為今后《數(shù)據(jù)結(jié)構(gòu)》課程的教學(xué)改革提供參考,推動學(xué)校教學(xué)改革的進程。
參考文獻
[1] 徐惠紅.《數(shù)據(jù)結(jié)構(gòu)》教學(xué)改革的探索[J].福建電腦,2005(11):162,146.
[2] 李紅.談高職數(shù)據(jù)結(jié)構(gòu)課的教學(xué)[J].遼寧教育行政學(xué)院學(xué)院,2008(4):81-82.
[3] 詹嘉紅,藍宗輝,宋鳳艷.探究式教學(xué)法在生物化學(xué)實驗教學(xué)中的運用[J].實驗室研究與探索,2008(9):91-93.
[4] 藺永政,朱紅巖.學(xué)科競賽促進計算機類創(chuàng)新型人才培養(yǎng)和深化實踐教學(xué)改革的探討[J].大學(xué)教育,2013(13):114-115.
[5] 程林輝.《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)改革探討[J].軟件導(dǎo)刊,2015(5):176-177.