劉麗杰 (黑龍江八一農(nóng)墾大學(xué)信息技術(shù)學(xué)院,黑龍江大慶1 63319)
《數(shù)據(jù)結(jié)構(gòu)》是一門極具抽象性的課程,其特點就是邏輯性強,概念多,算法多,要求學(xué)生具有一定的程序設(shè)計能力。這就首先給學(xué)生的理論學(xué)習(xí)造成一定的困難,很多學(xué)生認(rèn)為學(xué)習(xí)這門課程太枯燥、太抽象、不好學(xué),學(xué)了也不知有什么用。慢慢的學(xué)生很容易產(chǎn)生畏難和茫然的情緒,在學(xué)習(xí)過程中缺乏信心。但 《數(shù)據(jù)結(jié)構(gòu)》是計算機科學(xué)與技術(shù)專業(yè)中的一門核心課程,也是一門理論與實踐緊密結(jié)合的基礎(chǔ)課程,《數(shù)據(jù)結(jié)構(gòu)》課程的學(xué)習(xí)效果不僅關(guān)系到其他后續(xù)課程的學(xué)習(xí),也關(guān)系到計算機專業(yè)學(xué)生的專業(yè)素質(zhì)和軟件設(shè)計水平,在計算機及相關(guān)專業(yè)的課程體系中起著承上啟下的重要作用[1-3]。因此,研究《數(shù)據(jù)結(jié)構(gòu)》課程的教學(xué)改革是具有一定的深遠(yuǎn)意義。
《數(shù)據(jù)結(jié)構(gòu)》具有抽象性和靈活性等特點,對邏輯思維能力要求高,知識點很多而且靈活多變,這就要求教師在選擇和安排教學(xué)內(nèi)容時多搜集一些生活中的實例,在講授時深入淺出地把這些例子和書本中的理論知識聯(lián)系起來,從而使深奧的理論變得生動有趣。例如在講棧時,可以舉一個數(shù)制轉(zhuǎn)換的例子,把棧先進后出的特點及如何在數(shù)制轉(zhuǎn)換中使用棧來存放余數(shù)聯(lián)系起來,進一步說明棧的應(yīng)用;或者在講解圖的最短路徑算法時,可將其與城市交通的最優(yōu)路徑選擇聯(lián)系在一起,下面就以此為例詳細(xì)講解一下。
通常情況下,兩城市間的 “最佳路徑”可能需要考慮的并非僅僅是 “空間距離”的最短,還有 “時間最短”和 “費用最小”。根據(jù)人們出行的需求不同,經(jīng)濟能力不同,選擇的 “最佳路徑”也不同??紤]到只是以該案例加強教學(xué)效果,故在不考慮其他因素的前提下,僅以“空間距離”最短來講解。如圖1給出了幾個城市之間的火車運行情況,判斷火車能否從一個城市到達(dá)另一個城市,就是看從這個城市出發(fā)順著箭頭的方向是否能夠到達(dá)目標(biāo)城市,如果能夠到達(dá)的話,則找出共有幾條路徑?其中路徑長度最短的是哪一條?這樣,城市間最佳路徑的選擇就轉(zhuǎn)換成了一個圖的求最短路徑問題,其對應(yīng)的圖結(jié)構(gòu)如圖2所示。

圖1 城市地圖

圖2 城市地圖對應(yīng)的圖結(jié)
以鄭州為例,列出從鄭州到其他各個城市的最短路徑長度和詳細(xì)路徑,如圖3所示。這是一個典型的求最短路徑的圖的問題。在該例中使用鄰接矩陣作為圖的結(jié)構(gòu),使用隊列記錄最短路徑上途經(jīng)的城市,使用迪杰斯特拉(Dijkstra)算法求解,詳細(xì)說明請見代碼中注釋。

編寫程序?qū)崿F(xiàn)算法并調(diào)試運行通過,學(xué)生就此會進一步體會到圖的概念及其應(yīng)用,并不像原來理解的那樣空洞、抽象。通過與實際應(yīng)用的密切聯(lián)系,學(xué)生對所學(xué)知識的理解和應(yīng)用能力及學(xué)習(xí)興趣都會有很大提高。

圖3 鄭州到其他城市的最短路徑
1)現(xiàn)代化多媒體教學(xué)手段與傳統(tǒng)教學(xué)手段相結(jié)合 現(xiàn)代化多媒體教學(xué)手段在某些課程的教學(xué)過程中發(fā)揮了極大的作用,但對于像 《數(shù)據(jù)結(jié)構(gòu)》這種理論性很強的課程,課堂中完全使用多媒體課件的教學(xué)效果可能并不如想象中那樣理想。比如在講解線性表、樹或者圖的時候輔以多媒體課件直觀表示,可以加強學(xué)生的理解;在講解算法或者某些證明時也用多媒體課件,效果就不是很好[4]。尤其是在講解算法時,學(xué)生更喜歡教師用粉筆邊寫邊解釋,這樣雖然速度比使用多媒體課件稍慢,但學(xué)生的理解會更透徹,對學(xué)生的影響也會更深刻。當(dāng)然,這種理解只是學(xué)生對某一點上的理解,還需要結(jié)合多媒體,由點到面展開,發(fā)揮兩者的長處。
2)借助校園網(wǎng)絡(luò)平臺 借助校園網(wǎng)絡(luò)平臺,將 《數(shù)據(jù)結(jié)構(gòu)》的課件、習(xí)題、典型算法源程序、算法演示動畫等教學(xué)資料,進行匯集整理、分類,放在校園網(wǎng)上供師生共享,形成一種全新的教學(xué)模式,開展靈活多樣的網(wǎng)絡(luò)教學(xué)輔導(dǎo)活動,還可以在網(wǎng)站上實現(xiàn)在線答疑、在線測試、學(xué)習(xí)論壇等功能,讓學(xué)生可以在網(wǎng)上靈活地進行學(xué)習(xí)、復(fù)習(xí)或自我測試。同時,學(xué)生之間以及師生之間可以進行實時或非實時的交流,實現(xiàn)同學(xué)間的互相討論以及師生間的答疑。
3)采用 “雙向互動”式的教學(xué)方法 教師的職責(zé)不僅要教會學(xué)生新知識,更重要的要教會學(xué)生如何去獲取新知識,教學(xué)中既要注重教師的教又要注重學(xué)生的學(xué)。采取 “合作互動”的方法,在教師的指導(dǎo)下讓學(xué)生自己學(xué)會提出問題、分析問題和解決問題,將以 “教師為主體”、以 “課程為中心”的教學(xué)方式變?yōu)?“以學(xué)生為主體”、以 “能力為中心”,使學(xué)生由被動的接受變?yōu)橹鲃拥陌l(fā)現(xiàn)[5]。另外,通過師生共同回顧所學(xué)內(nèi)容來找出需要改進和深化的地方,在算法設(shè)計之前要讓學(xué)生積極思考,遇到問題時教師再進行適當(dāng)提示,最終找出解決問題的方法。
《數(shù)據(jù)結(jié)構(gòu)》課程實際上是程序設(shè)計課程的延續(xù)和深化,程序設(shè)計課程只要求學(xué)生按照程序設(shè)計的要求和規(guī)范來設(shè)計一些滿足給定要求的程序即可,它強調(diào)的是程序設(shè)計基礎(chǔ)的理念;但 《數(shù)據(jù)結(jié)構(gòu)》課程強調(diào)的是軟件的理念,《數(shù)據(jù)結(jié)構(gòu)》的實驗問題表面上是程序設(shè)計,但設(shè)計的要求和程度是不一樣的,它要求學(xué)生掌握的是 《數(shù)據(jù)結(jié)構(gòu)》的抽象特性[4-6]。
在實驗教學(xué)中,學(xué)生是實驗的主體,教師可以根據(jù)學(xué)生對教學(xué)內(nèi)容的掌握情況來設(shè)計相應(yīng)層次的上機實踐內(nèi)容,采用針對不同學(xué)生進行不同的教學(xué)方法,即分層次教學(xué),也就是實驗課上既要有基本實驗的訓(xùn)練,也要有能讓學(xué)生獨立思考、綜合運用知識創(chuàng)新等體現(xiàn)能力的實驗。為了學(xué)生能夠?qū)W好復(fù)雜的程序設(shè)計,在實驗課上進行強化訓(xùn)練,要求學(xué)生編寫的程序正確易懂、結(jié)構(gòu)清楚,并進行嚴(yán)格的課堂打分制度,目的是培養(yǎng)學(xué)生的數(shù)據(jù)抽象能力、分析問題、解決問題的能力以及軟件開發(fā)的能力,為學(xué)生計算機程序設(shè)計與應(yīng)用奠定了良好的基礎(chǔ)。堅持以 “數(shù)據(jù)的組織方式和算法設(shè)計”為主線,以 “培養(yǎng)綜合應(yīng)用能力”為目標(biāo),鼓勵學(xué)生自行設(shè)計與開發(fā)綜合實驗項目 (大型作業(yè))、設(shè)計開發(fā)算法的多媒體演示軟件、多參加ACM等程序設(shè)計練習(xí),使學(xué)生通過自學(xué)、討論、參加訓(xùn)練比賽等多種方式來激發(fā)學(xué)習(xí)興趣,嘗試自主、個性化學(xué)習(xí),充分發(fā)揮潛力,培養(yǎng)并提高其綜合能力[6]。
[1]張紅霞,盤麗麗.《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)改革研究與探討 [J].現(xiàn)代計算機 (專業(yè)版),2009(6):79-81.
[2]周玉林,賴鑫生.《數(shù)據(jù)結(jié)構(gòu)》教改中的問題研究與探討[J].上饒師范學(xué)院學(xué)報,2008(3):84-88.
[3]張 娟,安少華,胡選子,等.“數(shù)據(jù)結(jié)構(gòu)”課程的教學(xué)改革與實踐 [J].計算機教育,2008(16):53-54.
[4]鐘治初.《數(shù)據(jù)結(jié)構(gòu)》課程實驗教學(xué)改革的理論與實踐探討 [J].內(nèi)江科技,2007(3):149-150.
[5]蔡世霞,孫玉琦.《數(shù)據(jù)結(jié)構(gòu)》課程教改模式研究[J].北京城市學(xué)院學(xué)報,2009(5):62-65.
[6]陶影,張斌.《數(shù)據(jù)結(jié)構(gòu)》實驗教學(xué)應(yīng)重視算法設(shè)計與分析能力的培養(yǎng) [J].實驗室研究與探索,2008(12):119-122.