摘 要: 《數(shù)據(jù)結(jié)構(gòu)》在計(jì)算機(jī)課程體系中的具有很特殊的地位,其工程性和實(shí)踐性都很強(qiáng)。針對(duì)高職教學(xué)中存在的一些問(wèn)題,本文做了探索,目的是提高學(xué)生對(duì)該課程的學(xué)習(xí)興趣,提高其編程能力和職業(yè)素養(yǎng)。
關(guān)鍵詞: 數(shù)據(jù)結(jié)構(gòu) 項(xiàng)目驅(qū)動(dòng) 實(shí)例教學(xué)法
1.課程特點(diǎn)與定位
《數(shù)據(jù)結(jié)構(gòu)》課程是高職院校計(jì)算機(jī)專業(yè)學(xué)生必修的一門專業(yè)基礎(chǔ)課,是計(jì)算機(jī)專業(yè)的核心課程,通過(guò)該課程的教學(xué),使學(xué)生學(xué)會(huì)分析研究計(jì)算機(jī)處理數(shù)據(jù)的結(jié)構(gòu)特性,為實(shí)際工程問(wèn)題的數(shù)據(jù)選擇適當(dāng)?shù)倪壿嫿Y(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和相應(yīng)的處理算法,并掌握算法的時(shí)間和空間的分析與評(píng)估技術(shù)。從而為學(xué)生今后進(jìn)行軟件開(kāi)發(fā)的相關(guān)工作奠定良好的基礎(chǔ)。
課程概念多、較抽象,有些算法思想難理解、難掌握。以往傳統(tǒng)的課堂知識(shí)點(diǎn)講授形式,重理論、輕實(shí)現(xiàn),重知識(shí)、輕理論,因此在教與學(xué)的過(guò)程中,無(wú)法激發(fā)學(xué)生的學(xué)習(xí)興趣,不利于學(xué)生的創(chuàng)新精神及實(shí)踐技能的培養(yǎng)。另外,高職學(xué)生的基礎(chǔ)較薄弱的特點(diǎn)也決定了理論性的教學(xué)難度較大,《數(shù)據(jù)結(jié)構(gòu)》已被高職學(xué)生認(rèn)為是計(jì)算機(jī)課程中最難學(xué)的課程之一。
為此,我們?cè)诮虒W(xué)中,針對(duì)本校高職學(xué)生的特點(diǎn)采用了“基于項(xiàng)目驅(qū)動(dòng)的實(shí)例教學(xué)法”,其主體就是對(duì)課程中的重難知識(shí)點(diǎn),選配相應(yīng)的項(xiàng)目實(shí)例,通過(guò)恰當(dāng)?shù)膶?shí)例進(jìn)行演示和說(shuō)明,把抽象概念形象化、具體化,幫助學(xué)生理解掌握有關(guān)的課程內(nèi)容。并在項(xiàng)目實(shí)例的基礎(chǔ)上,學(xué)生結(jié)合實(shí)際問(wèn)題進(jìn)行二次設(shè)計(jì)和開(kāi)發(fā),從而提高學(xué)生軟件開(kāi)發(fā)的技能和職業(yè)素養(yǎng),進(jìn)一步激發(fā)學(xué)生對(duì)解決實(shí)際問(wèn)題方法的思考和探索。
2.項(xiàng)目驅(qū)動(dòng)實(shí)例的教學(xué)實(shí)施
2.1項(xiàng)目平臺(tái)的選取
VisualC#是Visual Studio.NET中的一種新型的編程語(yǔ)言,它由C++演變而來(lái),是一種簡(jiǎn)單的、現(xiàn)代化、類型安全和面向?qū)ο蟮恼Z(yǔ)言。用C#設(shè)計(jì)的程序是建立運(yùn)行于.NET平臺(tái)上的、范圍廣泛的企業(yè)級(jí)應(yīng)用程序。學(xué)生掌握了使用C#描述數(shù)據(jù)的結(jié)構(gòu)和算法,可以快速設(shè)計(jì)出各類的視窗環(huán)境下的應(yīng)用軟件,使得學(xué)生走出校園就可迅速地適應(yīng)職業(yè)崗位需求。
2.2項(xiàng)目實(shí)例的設(shè)計(jì)
通過(guò)對(duì)高職院校《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)大綱和教材的認(rèn)真研究,我們參閱了大量的相關(guān)資料,將課程的知識(shí)點(diǎn)、重點(diǎn)和難點(diǎn)經(jīng)提煉和歸納,融入各個(gè)具體的項(xiàng)目實(shí)例之中,項(xiàng)目實(shí)例涵蓋了所有的教學(xué)內(nèi)容。我們從工程實(shí)際出發(fā),精選出了9個(gè)項(xiàng)目實(shí)例:
項(xiàng)目實(shí)例1:顯示FAT32的目錄結(jié)構(gòu)(知識(shí)點(diǎn):線性表、鏈表)
項(xiàng)目實(shí)例2:串行通訊數(shù)據(jù)緩沖區(qū)的實(shí)現(xiàn)(知識(shí)點(diǎn):隊(duì)列、循環(huán)隊(duì)列)
項(xiàng)目實(shí)例3:遞歸函數(shù)調(diào)用現(xiàn)場(chǎng)保護(hù)模擬(知識(shí)點(diǎn):棧、順序棧)
項(xiàng)目實(shí)例4:求最長(zhǎng)公共子串(知識(shí)點(diǎn):串)
項(xiàng)目實(shí)例5:繪制二叉樹(shù)(知識(shí)點(diǎn):樹(shù)、二叉樹(shù))
項(xiàng)目實(shí)例6:迷宮最短路徑問(wèn)題(知識(shí)點(diǎn):圖)
項(xiàng)目實(shí)例7:二分查找的實(shí)現(xiàn)(知識(shí)點(diǎn):查找)
項(xiàng)目實(shí)例8:數(shù)字LED的字形顯示(知識(shí)點(diǎn):哈希表)
項(xiàng)目實(shí)例9:霍爾快速排序的實(shí)現(xiàn)(知識(shí)點(diǎn):排序)
這些項(xiàng)目實(shí)例在設(shè)計(jì)時(shí)均采用圖形化,顯示數(shù)據(jù)的結(jié)構(gòu)、數(shù)據(jù)的變化情況,直觀、清晰地反映各數(shù)據(jù)結(jié)構(gòu)的特性,以及相應(yīng)算法處理數(shù)據(jù)的過(guò)程。通過(guò)運(yùn)行和演示實(shí)例,學(xué)生深刻地了解和掌握了數(shù)據(jù)結(jié)構(gòu)。
2.3項(xiàng)目實(shí)例教學(xué)過(guò)程
項(xiàng)目實(shí)例教學(xué)過(guò)程由三環(huán)節(jié)構(gòu)成:
(1)引入知識(shí)點(diǎn):教師通過(guò)運(yùn)行和演示項(xiàng)目實(shí)例,引導(dǎo)學(xué)生學(xué)習(xí)和掌握項(xiàng)目實(shí)例所涉及的知識(shí)點(diǎn),理清相關(guān)的重點(diǎn)和難點(diǎn),明確項(xiàng)目實(shí)例的實(shí)際工程意義。
(2)分析源代碼:教師分析項(xiàng)目實(shí)例的關(guān)鍵代碼,促使學(xué)生進(jìn)一步掌握解決與項(xiàng)目實(shí)例同類問(wèn)題的具體算法和編程方法;
(3)項(xiàng)目再開(kāi)發(fā):教師布置一個(gè)與項(xiàng)目實(shí)例相近的工程問(wèn)題,每個(gè)學(xué)生模仿項(xiàng)目實(shí)例編制相應(yīng)的應(yīng)用代碼;或在項(xiàng)目實(shí)例上,通過(guò)二次開(kāi)發(fā),編制相應(yīng)的應(yīng)用代碼。
教學(xué)過(guò)程中的第三步是關(guān)鍵的環(huán)節(jié),該環(huán)節(jié)能夠明確清楚地反映出學(xué)生掌握教學(xué)內(nèi)容,達(dá)到教學(xué)目的的程度。項(xiàng)目實(shí)例教學(xué)過(guò)程應(yīng)提倡“精講多練,師生互動(dòng),分層實(shí)施、機(jī)練為主”,要確保學(xué)生在各個(gè)層面都得到發(fā)展和提高,培養(yǎng)學(xué)生的創(chuàng)新意識(shí)和職業(yè)技能,實(shí)現(xiàn)知識(shí)與技能的雙豐收。
2.4項(xiàng)目結(jié)果檢查
(1)項(xiàng)目開(kāi)發(fā)完成后,學(xué)生需要自行對(duì)項(xiàng)目應(yīng)用代碼進(jìn)行測(cè)試,檢驗(yàn)應(yīng)用程序是否達(dá)到了教師對(duì)該項(xiàng)目提出的要求,是否實(shí)現(xiàn)了所有的功能,以此提高學(xué)生的排錯(cuò)能力,培養(yǎng)學(xué)生的責(zé)任心,養(yǎng)成良好的職業(yè)習(xí)慣。
(2)對(duì)應(yīng)用項(xiàng)目書(shū)寫(xiě)規(guī)范的項(xiàng)目報(bào)告,項(xiàng)目報(bào)告主要包含項(xiàng)目的分析,項(xiàng)目方案的設(shè)計(jì)、項(xiàng)目實(shí)施等,還有項(xiàng)目的開(kāi)發(fā)優(yōu)點(diǎn)和不足。
(3)填寫(xiě)調(diào)試報(bào)告,其中寫(xiě)明出錯(cuò)的原因、測(cè)試數(shù)據(jù),以及改正的方法,使得每完成一個(gè)項(xiàng)目,學(xué)生都有一次提高。
(4)教師根據(jù)項(xiàng)目的結(jié)果和項(xiàng)目的質(zhì)量進(jìn)行檢查,判斷教學(xué)是否已達(dá)到了預(yù)期的目的和效果。
2.5項(xiàng)目結(jié)果講評(píng)
教師針對(duì)學(xué)生開(kāi)發(fā)項(xiàng)目的過(guò)程進(jìn)行總結(jié),并挑選一兩個(gè)學(xué)生開(kāi)發(fā)的項(xiàng)目進(jìn)行點(diǎn)評(píng),指出其中好的設(shè)計(jì)和不足之處,以及容易出錯(cuò)的問(wèn)題,幫助學(xué)生提高發(fā)現(xiàn)問(wèn)題、解決問(wèn)題的能力,鞏固已學(xué)的知識(shí),拓展思維,鍛煉創(chuàng)新能力。
教師根據(jù)每個(gè)學(xué)生的項(xiàng)目結(jié)果、項(xiàng)目報(bào)告和調(diào)試報(bào)告分別進(jìn)行成績(jī)的評(píng)定,同時(shí)做好各項(xiàng)成績(jī)的記錄留檔,學(xué)期末所有項(xiàng)目的成績(jī)累計(jì)結(jié)果,作為項(xiàng)目考核成績(jī)。
課程成績(jī)?cè)u(píng)定是由三部分組成:項(xiàng)目考核成績(jī)、理論考核成績(jī)和平時(shí)考核成績(jī)。其中項(xiàng)目考核成績(jī)占60%,理論考核成績(jī)占30%,平時(shí)考核成績(jī)占10%。
3.結(jié)語(yǔ)
《數(shù)據(jù)結(jié)構(gòu)》在計(jì)算機(jī)課程體系中的具有很特殊的地位,其工程性和實(shí)踐性都很強(qiáng),針對(duì)高職教學(xué)中存在的一些問(wèn)題,我們?cè)谡n程體系、教學(xué)過(guò)程、考核結(jié)構(gòu)方面,做了探索,從兩年的教學(xué)實(shí)踐效果來(lái)看,學(xué)生對(duì)《數(shù)據(jù)結(jié)構(gòu)》課程的學(xué)習(xí)興趣提高了,編程能力和職業(yè)素養(yǎng)也在提高。但教學(xué)改革的步伐不會(huì)停止,我們還會(huì)在《數(shù)據(jù)結(jié)構(gòu)》課程上做更多的探索。
參考文獻(xiàn):
[1]李秉璋,羅燁.C++程序設(shè)計(jì).大連理工大學(xué)出版社,2010.9.
[2]陳廣.數(shù)據(jù)結(jié)構(gòu)(C#語(yǔ)言描述).北京大學(xué)出版社,2009.3.
[3]李勇,邢躍.數(shù)據(jù)結(jié)構(gòu)課程教學(xué)法探析[J].網(wǎng)絡(luò)財(cái)富,2008(07).