摘要:本文針對數(shù)據(jù)結(jié)構(gòu)課程特點提出了該課程的教學(xué)改革模式——以培養(yǎng)學(xué)生的實踐能力為核心的創(chuàng)新教學(xué)模式,該模式包含了課堂理論教學(xué)、課后練習(xí)與輔導(dǎo)、上機(jī)實踐、教學(xué)效果檢驗四個環(huán)節(jié)。本文對如何落實這四個環(huán)節(jié)進(jìn)行了詳細(xì)的闡述,提出了一個完整的數(shù)據(jù)結(jié)構(gòu)創(chuàng)新教學(xué)改革模式。
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu) 教學(xué)模式 實踐能力
在計算機(jī)科學(xué)與技術(shù)專業(yè)中,數(shù)據(jù)結(jié)構(gòu)是一門核心專業(yè)基礎(chǔ)課程,是該專業(yè)的必修課程,在本專業(yè)的課程體系中起著承上啟下的重要作用。因此學(xué)好數(shù)據(jù)結(jié)構(gòu)課程對學(xué)生的專業(yè)素質(zhì)的提高有著極其重要的作用,能有效地提高學(xué)生的計算機(jī)理論認(rèn)知水平和實踐能力,使學(xué)生能從現(xiàn)實世界中的問題中抽象出一個適當(dāng)?shù)臄?shù)學(xué)模型,然后在計算機(jī)上用相應(yīng)的數(shù)據(jù)結(jié)構(gòu)來表示,再設(shè)計一個針對該數(shù)學(xué)模型的算法進(jìn)行編程調(diào)試,最后獲得問題的解答。
筆者認(rèn)為數(shù)據(jù)結(jié)構(gòu)的教學(xué)不僅是讓學(xué)生了解數(shù)據(jù)結(jié)構(gòu)的理論知識,更重要的是培養(yǎng)學(xué)生解決實際問題的能力,因而數(shù)據(jù)結(jié)構(gòu)的教學(xué)要以培養(yǎng)學(xué)生的實踐能力為核心,重點提高分析設(shè)計能力和編程能力,這樣才能搞好數(shù)據(jù)結(jié)構(gòu)課程的教學(xué),為學(xué)生后續(xù)課程的學(xué)習(xí)及實踐打下良好的基礎(chǔ)。
一、數(shù)據(jù)結(jié)構(gòu)課程的特點
數(shù)據(jù)結(jié)構(gòu)是一門理論性強(qiáng)、思維抽象、難度較大的課程,是基礎(chǔ)課和專業(yè)課之間的橋梁。該課程的先行課程是計算機(jī)基礎(chǔ)、程序設(shè)計語言、離散數(shù)學(xué)等,后續(xù)課程有操作系統(tǒng)、編譯原理、數(shù)據(jù)庫原理、軟件工程等。通過本門課程的學(xué)習(xí),學(xué)生應(yīng)該能透徹地理解各種數(shù)據(jù)對象的特點,學(xué)會數(shù)據(jù)的組織方法和實現(xiàn)方法,并進(jìn)一步培養(yǎng)良好的程序設(shè)計能力和解決實際問題的能力,而且該課程的研究方法對學(xué)生在校和離校后的學(xué)習(xí)和工作也有著重要的意義。
數(shù)據(jù)結(jié)構(gòu)這門課程從內(nèi)容上看有這么幾個特點:
1. 課程內(nèi)容模塊化。各種數(shù)據(jù)結(jié)構(gòu)之間雖然存在一些內(nèi)在的聯(lián)系,但總的來說還是自成體系、較為獨立的,整個課程不具有明顯的整體性。
2. 語言實現(xiàn)多樣化。數(shù)據(jù)結(jié)構(gòu)的算法可應(yīng)用于不同的環(huán)境中,可以用不同的編程語言來實現(xiàn)。
3. 課程內(nèi)容發(fā)展化。課程內(nèi)容具有很強(qiáng)的可伸縮性,新的數(shù)據(jù)結(jié)構(gòu)、新的算法以及新的理論不斷出現(xiàn),而且數(shù)據(jù)結(jié)構(gòu)和算法也可以針對不同的問題進(jìn)行調(diào)整,同一個問題也可以用不同的數(shù)據(jù)結(jié)構(gòu)和算法來解決。
4. 課程內(nèi)容具有極其廣泛的適用性。數(shù)據(jù)結(jié)構(gòu)的概念、原理和方法在軟件開發(fā)的過程中具有極其重要的指導(dǎo)意義,可以幫助人們解決社會生產(chǎn)活動中的很多問題。
數(shù)據(jù)結(jié)構(gòu)課程的這些特點決定了實踐在學(xué)生學(xué)習(xí)活動中的重要地位,筆者在多年教學(xué)實踐探索中,總結(jié)出一種以培養(yǎng)學(xué)生的實踐能力為核心的教學(xué)模式,該模式通過課堂理論教學(xué)、課后練習(xí)與輔導(dǎo)、上機(jī)實踐、教學(xué)效果檢驗四大環(huán)節(jié)來培養(yǎng)學(xué)生解決實際問題的能力。
二、以培養(yǎng)實踐能力為核心的創(chuàng)新教學(xué)模式
1. 加強(qiáng)課堂理論教學(xué)
理論教學(xué)在培養(yǎng)學(xué)生的實踐能力方面的作用是基礎(chǔ)性的、指導(dǎo)性的,所以一定要加強(qiáng)課堂理論教學(xué)。
第一,在課程內(nèi)容上,要用發(fā)展的眼光融會各種教材的精華,不可拘泥于某一本教材。既要把傳統(tǒng)數(shù)據(jù)結(jié)構(gòu)的內(nèi)容講解透徹,又要增加新的內(nèi)容和方法,以適應(yīng)計算機(jī)科學(xué)的發(fā)展;既要把基本數(shù)據(jù)結(jié)構(gòu)的定義和分析、基本數(shù)據(jù)結(jié)構(gòu)的應(yīng)用講清楚,還要把各種數(shù)據(jù)結(jié)構(gòu)綜合運用以解決實際問題的方法講清楚。
第二,在教學(xué)重點上,既要培養(yǎng)學(xué)生扎實的理論基礎(chǔ),更要培養(yǎng)學(xué)生分析問題解決問題的能力。比如講解圖的鄰接表存儲表示,不能簡單地灌輸書本知識,而要向?qū)W生說明為了解決圖的存儲這個問題,把圖的結(jié)構(gòu)分解為弧結(jié)構(gòu)和頂點結(jié)構(gòu)的有機(jī)組合。通過類似的教學(xué),可以培養(yǎng)學(xué)生分解復(fù)雜問題為簡單問題并且最終解決復(fù)雜問題的能力。
第三,在教學(xué)方式上,可以根據(jù)授課內(nèi)容的不同采用啟發(fā)式教學(xué)、參與式教學(xué)、任務(wù)驅(qū)動式教學(xué)等形式多樣的教學(xué)方式以增強(qiáng)教學(xué)效果,激發(fā)學(xué)生學(xué)習(xí)的主動性。在課堂教學(xué)中不能只講多媒體課件,而要把板書與多媒體課件相結(jié)合。另外在教學(xué)中還要充分運用提問、課堂測驗、精講等方式,以此活躍課堂教學(xué)氣氛,培養(yǎng)學(xué)生的獨立思考和自學(xué)能力。
2. 搞好課后教學(xué)輔導(dǎo)
課堂的時間畢竟是有限的,為了幫助學(xué)生鞏固課堂所學(xué)的理論知識,為上機(jī)實踐做好理論和技術(shù)上的準(zhǔn)備,必須做好課后的教學(xué)輔導(dǎo)。我們主要從兩個方面來進(jìn)行課后教學(xué)輔導(dǎo)。
一是開展靈活多樣的網(wǎng)絡(luò)教學(xué)輔導(dǎo)活動。筆者向?qū)W生公布自己的E-mail、QQ,學(xué)生之間以及師生之間可以進(jìn)行實時或非實時的交流,實現(xiàn)學(xué)生間的互相討論以及師生間的答疑。網(wǎng)絡(luò)形式的教學(xué)輔導(dǎo)激發(fā)了學(xué)生的學(xué)習(xí)熱情,培養(yǎng)了學(xué)生的自學(xué)能力。
二是現(xiàn)場答疑,面對面的答疑有不可替代的解惑作用,為此安排兩周一次或一周一次的答疑是非常必要的。
3. 精心設(shè)計上機(jī)實踐
上機(jī)實踐是學(xué)生學(xué)好數(shù)據(jù)結(jié)構(gòu)、培養(yǎng)實踐能力最關(guān)鍵的環(huán)節(jié),一定要精心組織,合理設(shè)計,加強(qiáng)指導(dǎo)。
第一,選題要體現(xiàn)分析設(shè)計能力的培養(yǎng)。由于數(shù)據(jù)結(jié)構(gòu)課程不具有明顯的整體性,各種數(shù)據(jù)結(jié)構(gòu)之間相對獨立,所以首先要選擇一些單一數(shù)據(jù)結(jié)構(gòu)的上機(jī)題來進(jìn)行基本的訓(xùn)練,然后再選擇一些綜合運用的上機(jī)題來進(jìn)行拓展訓(xùn)練。給學(xué)生布置的綜合運用上機(jī)題不宜過細(xì),應(yīng)留有余地,并把握好難度,不事先指定使用某種數(shù)據(jù)結(jié)構(gòu),而要求學(xué)生從實際出發(fā),在具體、真實的環(huán)境中分析研究數(shù)據(jù)對象的特性,構(gòu)造合理的數(shù)據(jù)結(jié)構(gòu)以及相應(yīng)的算法。
第二,鼓勵學(xué)生使用新興的編程語言,加強(qiáng)編程能力的培養(yǎng)。上機(jī)實踐可以進(jìn)一步鍛煉學(xué)生的編程能力,要求學(xué)生編制的程序一定要有完整的數(shù)據(jù)結(jié)構(gòu)說明和注釋,要有容錯處理,要能正常運行。由于程序設(shè)計語言不斷發(fā)展,我們鼓勵學(xué)生根據(jù)自己的實際水平和愛好,自由選擇更先進(jìn)或更合適的編程語言,像C++語言和JAVA語言等。另外,還可以向?qū)W生提供一些基本的樣例程序和典型數(shù)據(jù)結(jié)構(gòu)的類代碼庫,使不同層次的學(xué)生各有所獲。
第三,強(qiáng)化上機(jī)實踐的教學(xué)組織管理工作。給學(xué)生布置的上機(jī)題可以分為必做題和選作題,必做題涵蓋教學(xué)大綱的重要知識點,難度一般,每一名學(xué)生都要做完;選作題有一定難度,由學(xué)生組成若干個學(xué)習(xí)小組,協(xié)作完成分配的上機(jī)題,從而鍛煉學(xué)生的團(tuán)隊協(xié)作能力。
4. 認(rèn)真檢驗教學(xué)效果
為了保證學(xué)生在數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)過程中確實提高實踐能力,確保教師進(jìn)行教學(xué)效果的檢驗和評估,可以采取以下檢查方式。
一是課堂小測驗。測驗的內(nèi)容只限于最近一周或兩周內(nèi)講解的知識點。通過測驗,可以了解課堂教學(xué)效果以及學(xué)生的學(xué)習(xí)態(tài)度和學(xué)習(xí)積極性,如果出現(xiàn)問題要及時找出原因并加以解決。
二是認(rèn)真批改作業(yè)。通過作業(yè)中出現(xiàn)的各類錯誤,找出一些共性的問題,集中加以解決。也可以通過與學(xué)生談話、辦公室答疑和網(wǎng)上答疑,了解學(xué)生學(xué)習(xí)這門課程的情況以及對教師教學(xué)的評價,師生互動,共同搞好教學(xué)。
三是認(rèn)真檢查上機(jī)題的完成情況。檢查工作最好在機(jī)房進(jìn)行。檢查時不僅要求學(xué)生演示最終的運行結(jié)果,還要隨機(jī)詢問設(shè)計思路、出錯處理,甚至源程序語句說明等,以確認(rèn)學(xué)生獨立或合作完成指定的任務(wù),達(dá)到培養(yǎng)實踐能力的目的。
結(jié)束語
針對數(shù)據(jù)結(jié)構(gòu)課程的特點,著眼于培養(yǎng)學(xué)生的實踐能力,本文從教學(xué)實踐的各個環(huán)節(jié)闡述了作者探究數(shù)據(jù)結(jié)構(gòu)課程教學(xué)模式的心得體會。該模式在數(shù)據(jù)結(jié)構(gòu)課程數(shù)年的教學(xué)實踐中取得了很好的效果,大大提高了學(xué)生的實踐能力。隨著計算機(jī)科學(xué)技術(shù)的發(fā)展和培養(yǎng)人才的需要,數(shù)據(jù)結(jié)構(gòu)的創(chuàng)新教學(xué)模式必將不斷發(fā)展完善。
參考文獻(xiàn):
[1]嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)[M].北京:清華大學(xué)出版社,2002.
[2]李治軍,廖明宏,張巖.數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計教學(xué)模式的探討[J].計算機(jī)教育,2006,(2).