耿霞 王玉存 吳秋蘭
摘要:分析當前非計算機專業數據結構教學中存在的問題,針對非計算機專業學生的特點,基于5個“滿足”,提出一種培養學生學習興趣的教學方法。
關鍵詞:非計算機專業;數據結構;教學質量;興趣式教學法
0、引言
數據結構是研究非數值問題中計算機的操作對象以及它們之間關系和操作的學科。數據結構課程的性質和研究內容決定了它不僅是計算機專業的基礎課,而且已經成為眾多理工專業的重要課程,比如數學、信息、測繪、遙感、電子、通信等專業均開設了此課程。它所討論的內容和方法,不僅是一般程序設計的基礎,而且對學生繼續學習計算機領域的其他知識都很有幫助。
由于教學目標、學生基礎、課時設置等因素的不同,非計算機專業數據結構的教學具有自身的特點和規律,以往該課程的教學研究主要針對計算機專業展開,而針對非計算機專業數據結構教學的研究較少。因此,筆者從非計算機專業的角度闡述數據結構教學過程中存在的問題,進而分析原因,探討興趣式教學方法,為提高教學效果尋找途徑。
1、非計算機專業數據結構教學中存在的問題
1)前導課程知識掌握不足。
高級語言程序設計是數據結構課程重要的前導課程之一。非計算機專業學生所學的高級語言一般是C或者c++,受課時限制等原因,非計算機專業學生只能掌握編程語言的一些基本知識,對數據結構中大量用到的數組、函數、結構體、指針、遞歸等知識掌握不足,因而理解算法和設計算法的能力較差,直接妨礙了數據結構課程的學習,影響了學生對數據結構知識的理解,甚至使學生喪失了學好這門課的自信心和學習興趣。
2)課時和教學目標之間存在矛盾。
數據結構涉及四大邏輯結構(線性、樹、圖和集合)、兩大存儲結構(順序存儲和鏈式存儲)、查找、排序等眾多算法,這些知識點自成體系,而且對非計算機專業學生都很重要。相對計算機專業,非計算機專業的理論課學時一般都相對不足,在教學的過程中往往每個知識點都提到但重點不突出,另外,有些經典算法比較復雜,學生學習基礎較薄弱,很難在較少的學時內理解掌握,教學難度大。
3)輕實踐。
非計算機專業的數據結構實驗課時普遍很少,為了兼顧眾多實驗內容,大多數實驗任務的規模都比較小,缺乏系統性和應用性,使學生對課程的實用性產生疑惑,降低了進一步學習這門課程的興趣。
4)教學內容與專業脫節。
目前,非計算機專業一般都沒有結合專業特點加強某部分知識點的學習,學生無法體會到數據結構理論知識如何為專業實踐服務,無法深刻理解學習數據結構的目的,也無法很好地調動學生學習這門課程的興趣和積極性。
2、“5個滿足”的興趣式教學
愛因斯坦說:“我認為對于一切情況,只有熱愛才是最好的老師,它遠遠超過責任感”。針對非計算機專業的特點,教師在數據結構教學中要“因專業施教”,從學生的實際情況出發,掌握學生的心理需求,提高學生的學習動力。在整個數據結構的教學過程中,筆者認為可以從“5個滿足、5個促進”來著手培養學生的學習興趣。
1)滿足學生的求助心理,促進學生產生積極情緒。
首先,解決前導課程知識的不足。前導課程知識不足使非計算機專業學生在最初學習數據結構課程時容易產生畏難心理。教師一方面可以提前和前導課程授課教師積極溝通,對數據結構涉及的一些知識點進行有目的的講解,如動態存儲分配、結構體、指針等,鍛煉學生編寫調試的能力,為后續學習數據結構創造條件。另一方面,重視初期的教學效果,不要使學生在一開始就“掉隊”。目前大多數教材都是在前兩章介紹基本概念和線性表,這兩章知識非常重要,是其他后續章節的重要基礎,教師在講授這兩章內容時,可適當放慢授課節奏,由淺入深引導學生進行學習,只有學生對數據結構感覺入門了,才有繼續學好后續內容的動力。
其次,及時發現并解決教學中的問題。在教學過程,教師要及時發現學生學習中存在的問題,對具有普遍性的問題進行講解。由于課時有限,課下可以通過一些即時通信工具,如QQ、微信等延伸教學,幫助學生查缺補漏,及時解決學習中碰到的問題,盡可能減少學生學習數據結構過程中的“絆腳石”,保證學生的學習興趣不會消失,促使學生產生積極情緒。
2)滿足學生的實用心理,理論聯系實際促進學生增強求知欲。
不同專業有自身不同的特點和需求,數據結構需要加強課程的專業應用性。根據不同專業選取不同的重點內容進行學習,學生們體會到數據結構是一門抽象理論與實踐緊密結合且非常有趣味的課程,從而激發學生們的學習興趣。例如,路徑分析是地理信息系統網絡分析中的關鍵問題,針對測繪、遙感、地信等專業,在講授圖結構時,可重點講授圖的幾個應用問題:使用Dijkslla算法和Floyd算法求最短路徑、AOE網和關鍵路徑等。數學、信息等專業需要處理的數據越來越多,大量的數據需要壓縮存儲,哈夫曼編碼在數據的無損壓縮方面發揮著重要的作用,因此在對數學、信息等專業講授數據結構時,可重點講授二叉樹的一個經典應用,即哈夫曼樹和哈夫曼編碼。
實例教學可以激發學生的學習興趣,實際需求是引發學生學習興趣的最直接動機。結合具體的應用實例講解知識點,可增加教學的趣味性,吸引學生的注意力。比如,將棧和表達式求值結合起來,可使學生更直觀地了解棧的應用價值,從而更有動力去學習棧的相關知識。再如,美國流行一種找詞游戲,要求游戲者從一張填滿字符的正方形表中找出所有的英文單詞,這些詞可以橫著讀、豎著讀或者斜著讀,設計這個游戲可以借助數據結構中字符串和多維數組的知識。將理論知識和學生感興趣的東西結合起來,會使學生感覺新奇,并且拓寬了學生的知識面。
3)滿足學生主動參與教學的意愿,互動教學促進學生產生學習興趣。
我國思想家孔子說過:“學而不思則罔”,也就是說如果只是一味學習而不思考,就會感到迷惑而無所收獲。西方的哲人康德說過“感性無知性則盲,知性無感性則空”。可見,在知識的獲取上,無論是東方還是西方都強調學和思的結合,這就啟示我們,在數據結構的教學過程中,要改變傳統的教學模式,讓眾多的學生主動參與課堂教學,積極主動地思考問題,由被動接受知識變為主動吸收知識,從而提高學生主動學習的積極性,鍛煉學生良好的思維能力。endprint
教學實踐過程中,可以對重點難點內容有效設計“提問—討論—解決方法—再提問”的方式,用問題激發學生積極主動地思考,引導他們解決問題。比如,循環隊列這個難點不容易理解,教師可以先從前面學過的線性表的順序存儲人手,讓學生思考如何改造數組實現隊列的順序存儲,然后再通過不斷地反復提問、思考、解決問題、再提問的方式,學生自然而然地掌握循環隊列的有關知識,并且通過這種互動式教學,提高學生獨立思考問題的能力,養成相互交流學習體會的習慣,進一步提高分析問題和解決問題的能力。
4)滿足學生的專業實踐教學需求,促進學生實踐能力。
數據結構是一門理論和實踐結合緊密的課程,對數據結構的學習最終體現在程序設計上。實踐教學在非計算機專業數據結構學習中具有舉足輕重的作用。
在傳統的實踐教學中,往往采用規模較小的一般性實驗作為實踐內容,這種實踐是驗證性的,比較簡單直接,學生得到的鍛煉比較少,激發不了學生的學習興趣。另外,不同專業學生學習的側重點是不同的,如果采用統一的尺度要求所有學生,往往起不到較好的教學效果。為了達到“因專業施教”的目的,可以采用層次化的設計思想,把實驗自下而上分為基礎性實驗、應用性實驗和綜合性實驗。基礎性實驗注重對基礎知識的理解和掌握,主要鍛煉學生把教材中的算法轉換為程序的能力;應用性實驗是在基礎性實驗的基礎上,以鞏固和應用數據結構的基礎知識為目的,注重培養學生理論和實踐相結合的能力;綜合性實驗涉及多個知識點,注重培養學生綜合應用知識和創新的能力。例如,電子、通信專業的學生在學習計算機語言時,側重計算機硬件方面的應用,主要培養基本的編程能力,實驗內容以基礎性實驗為主,兼顧應用性實驗;測繪、遙感、信息等專業側重于培養分析問題、解決問題的能力,實驗內容以應用性實驗為主,適當增加綜合性實驗。在進行綜合性實驗時,教師可以將學生分組,把問題進行模塊劃分,通過學生的分工協作,培養學生的軟件工程意識,增強學生團結合作的能力。
5)滿足學生的競爭要求,建立有效的激勵機制促進學生產生主動學習的熱情。
優秀作品展示是一種有效的激勵機制。心理學家指出,在教學過程中,學生如果獲得成功,就會產生愉悅、輕松的情緒,這種情況反復出現就會產生學習興趣,久而久之就產生了學習動機。在數據結構教學過程中,教師可以將優秀的實驗作業、學生的創新思想等進行統一展示和講解,通過這種方式既可以增強部分學生的自信心,又可以在班級內形成良好的競爭氛圍,提升教學質量。
在教學中,教師可以向學生介紹ACM國際大學生程序設計競賽。競賽題目有趣且有挑戰性,ACM網站上的排行榜自然而然地會在學生中間形成一種競爭的氛圍。教師將學生在ACM網站上做題的情況納入最后成績的評定,可以進一步激發學生主體學習的積極性,提高學生的編程能力,使學生更加了解數據結構的廣泛應用。
3、結語
心理學研究表明,當學生對學習對象有興趣時,大腦中有關學習神經的細胞處于高度興奮狀態,而無關的則處于抑制狀態。孔子也認為:“知之者不如好之者,好之者不如樂之者。”在非計算機專業數據結構的教學過程中,如果學生產生了濃厚的興趣,就會自覺克服學習過程中遇到的困難,從而達到較好的教學效果。如何針對非計算機專業的特點,在數據結構的講授過程中因專業施教,激發學生的學習興趣,仍是一個長期探索的過程。endprint