曾旭
摘要首先,闡述了傳統(tǒng)數據結構課程教學過程中存在的一些問題;然后,分析了問題的成因;最后,依據該課程的特性設計了教學內容、教學方法、教學手段、網絡資源、成績組成以及師資培養(yǎng)等方面相應的改革措施。
關鍵詞數據結構教學改革課程實踐
0引言
在計算機科學中,數據結構是計算機中存儲、組織數據的方式,是一門研究非數值計算的程序設計問題中計算機的操作對象(數據元素)以及它們之間的關系和運算等的學科,通常情況下,精心選擇的數據結構可以帶來最優(yōu)效率的算法。
數據結構作為一門獨立的課程在國外是從1968年才開始設立的。1968年美國唐·歐·克努特教授開創(chuàng)了數據結構的最初體系,他所著的《基本算法》是第一本較系統(tǒng)地闡述數據的邏輯結構和存儲結構及其操作的著作。數據結構在計算機科學中是一門綜合性的專業(yè)基礎課,數據結構是介于數學、計算機硬件和計算機軟件三者之間的一門核心課程。①②數據結構的先修課程主要有高級程序設計語言和離散數學。同時,數據結構也是操作系統(tǒng)、計算機網絡和數據庫原理等課程的基礎。③
數據結構由于其特殊性成為了理工科專業(yè)的重要課程。與此同時,也由于該課程的抽象性使得如何教授好數據結構成為任課教師厄待解決的首要問題。④
1存在的問題
數據結構作為一門專業(yè)基礎課,與其他課程相比具有一定的特殊性。該課程著重介紹利用經典算法和數據存儲結構來解決問題的思想以及該思想的程序實現,即:程序=數據結構+算法。由于課程內容抽象、理論性強、學習難度大,因此成為了“教師難教,學生難學”的兩難原因。
傳統(tǒng)的數據結構課程設置包括理論課和實驗課。理論課教授內容主要包括線性表、堆棧、隊列、數組、樹、圖及其相關算法的分析;實驗課主要是對理論課中經典算法進行驗證性的程序實現。理論課和實驗課教授過程中存在的問題主要有以下幾個方面:
1.1理論課
理論課介紹的數據結構及其相關算法較為經典,相關的經典算法很難與現實生活中的案例建立明顯的聯系。教師花費了大部分時間介紹課本知識,學生僅僅對知識點進行積累難以吸收和消化,最終覺得數據結構這門基礎課程實用性不強且難度較大,進而會放松對該課程的學習,導致學習效果差,還會影響后續(xù)核心課程的學習。
1.2實驗課
實驗課主要是對理論課中的經典算法進行驗證性實現。由于教材中的算法均是利用偽代碼進行介紹,故不能直接照搬教材中的例題。另外,再加上數據結構算法規(guī)模均較大,難以在短短的一次實驗課具體實現。以上問題使得學生在實驗課環(huán)節(jié)沒有得到更好的鍛煉。
2原因分析
造成教學效果差的原因有很多,我們不能把責任單一的歸結為任課教師的教學方式或者學生的學習態(tài)度的問題。從任教多年的經驗中,可以總結如下幾點原因是值得思考的出發(fā)點:
2.1教材
各個出版社出版的數據結構教材較多,其中較為經典者當屬清華大學出版的由嚴蔚敏和吳偉民主編的《數據結構(C語言版)》。該教材是各個理工科院校優(yōu)選的大學本科教材,但教材在內容的組織上理論性較強,給教學工作的開展設定了較高的難度,難以帶給學生趣味性。當然,不乏存在某些面向高職等學校的難度較低的教材,但其內容回避了數據結構的某些主要方面。
2.2學生
學生在理論課和實驗課的學習過程中會出現積極性不高或者對課程的認識出現偏差的情況。理論課的學習僅僅依賴課堂時間是不夠的,學生需要花更多的時間來預習或者復習,在自學的過程中對算法的思想產生一定程度的認知,然后在課堂上教師的講解下得到升華;實驗課的進行不能單單的認為是照搬教材上的偽碼,因為偽碼是不能運行的,而且實驗課的宗旨是“思想第一,實現第二”,短短的一次實驗課不一定非要實現一個算法,可以把更多的課余時間利用起來對算法進行研究和實現。學生應該正確認識數據結構理論課和實驗課的學習方法,并且找到合適的方式來學習。⑤
2.3教師
教師在教授過程中不免會出現一定程度上的照本宣科。特別是經驗不豐富的教師,也容易犯脫離聯系實際的教學錯誤,這更容易使原本就抽象的課程變成空中樓閣,給學生帶來一頭霧水,最終挫傷其積極性和主動性,導致教學效果不理想。
3改革措施
通過對上述現狀及其原因進行分析,為獲得較為理想的教學效果,使得學生為后續(xù)核心課程打下良好的基礎,特建議從以下幾方面進行改革。
3.1教學內容
為了使學生把更多的時間花費在重要的知識點上,教師應該合理安排教學內容。有限的課時數并不能貫穿整個教材,某些知識點可以安排學生自學。由于近年來參加研究生入學考試和軟考等專業(yè)認證的考生增多,教學重心應放在研究生入學考綱和軟考等相關認證的大綱上,對于曾經出現過的考題可以作為課堂例題進行講解,在基礎理論講解的過程中進行分析,加深學生的理解能力并增強其參與類似考試的自信心;對于不涉及的知識點可以略講或者取消。例如:組數章節(jié)中的廣義表部分在研究生入學考試中已經不再是考點,任課教師可以在該部分內容的介紹上有所弱化。
3.2教學方法
“興趣是一切工作得以順利開展的動力”,由于課程固有的概念多、算法抽象等特點,教師更應該在教學過程中采用合適的教學方法來提高學生的興趣。在介紹經典算法的過程中引入生動的案例,能夠在最大程度上調動學生學習的主動性、積極性和趣味性。例如:在介紹順序表時可以利用電話號碼薄案例來引入,按照筆畫排序后的電話號碼簿肯定比零亂的容易查找;為了更進一步提高查找效率,可以建立一個對應于原鏈表的索引表;隊列結構類似于排隊購票,先到先買;樹狀結構能夠將人機對弈問題各個步驟可能解決方案進行直觀的分類選擇;圖狀結構的遍歷可以引入教育網的路由方式作為案例;排序章節(jié)中時間復雜度與空間復雜度的概念可以利用一個體育教師指導全班從低到高排隊和兩個體育教師分別指導分梯度快速排隊,由此帶領學生們理解用空間換取時間和用時間換取空間的概念。
3.3教學手段
(1)單純的PPT教學并不能使蒼白的理論變得鮮活,為了形象地再現數據結構及其相關算法的思想,必須借助于更為形象的動畫演示。具有單步執(zhí)行功能的動畫演示能夠在一定程度上幫助學生理解算法的執(zhí)行過程。當然,單純的動畫演示并不能替代傳統(tǒng)的板書效果,必要的時候采取邊分析邊板書的教學方式,能夠最大限度地幫助學生理解算法的執(zhí)行過程。
(2)為了更好地讓學生積極、主動地融入到對算法的理解中去,必須從教師“一言堂”的授課方式轉變到有學生積極參與的形式。教師提前一次課選定適當的人員并分派任務,讓學生在課余時間自己做PPT和動畫演示,然后在課堂上為大家分析和講解算法。帶著任務的預習會讓學生更有決心進行分析,成功的課堂講解更能夠使學生找回學習的興趣。
(3)傳統(tǒng)的驗證性實驗只能讓學生機械地照搬經典算法,學生可以從多種渠道找到源代碼,然后生搬硬套的在短暫的一堂實驗課堂上進行小規(guī)模的驗證?;蛟S大部分學生能夠驗證成功,但該方式并沒有達到實驗課的目的,學生的提升也有限。為了讓學生帶著問題完成算法分析和設計,教師可以提供多個題目供學生們在自由組合的情況下利用課余時間完成相關實踐內容。由于時間較為充分,所以給定題目的規(guī)模可以稍大,讓學生綜合運用知識的能力、協(xié)作能力和創(chuàng)新能力均得到充分的發(fā)揮。
3.4網絡資源
短暫的課堂講授并不能滿足教學需求,為了更好地對學生進行輔導和交流,可以建立網絡課堂。教師可以把豐富的PPT、動畫演示、練習題、上機題、課程實踐題等教學資源共享到網絡上,并在留言區(qū)對學生進行在線輔導。互動的網絡教學能夠對學生們的疑問進行針對性的解答,最終讓學生們的普遍疑問得到共同的解決并獲益匪淺。
3.5成績組成
由于增加了課程實踐的環(huán)節(jié),故原有的卷面成績+實驗成績的總分方式應有所改變。課程實踐環(huán)節(jié)最能體現學生對基本知識點的掌握和升華,因此應在成績組成中有所體現。新的成績組成方式應該是:卷面成績+實驗成績+課程實踐成績。
3.6師資培養(yǎng)
在多方面得到改進的同時,也應該注重教師自身素養(yǎng)的培養(yǎng)。教師可以通過教研室內部指導、兄弟院校探討、國內國際會議交流的方式與時俱進的提高教學能力,以更好地完成課程教學改革工作,最終達到提高教學質量的目的。
4結束語
數據結構在培養(yǎng)學生抽象思維和邏輯推理能力的同時,也能夠鍛煉學生分析問題、解決問題的能力。⑥建立完整的知識體系,使知識融會貫通,并為后續(xù)課程打下良好的基礎是教學的最終目標。通過對教學內容、教學方法、教學手段、網絡資源、成績組成以及師資培養(yǎng)等教學改革的研究,形成一個完整的教學體系,必定能夠在教學工作中取得優(yōu)秀的成績。