宋 暉 華南師范大學物理與電信工程學院,廣州 510006
淺談《算法與數據結構》中的主線和模塊教學
宋 暉 華南師范大學物理與電信工程學院,廣州 510006
本文針對算法與數據結構課程邏輯性強、抽象的特點,提出了整體認知——局部探究——整體掌握的教學思路,即把握主線,各模塊擊破的教學方法。教學實踐表明,通過主線和模塊化的教學方法,學生建立了系統化的知識結構,對于數據結構中抽象的知識也更容易理解和掌握,教學效果得到了明顯的提高。
主線,模塊教學,數據結構
《算法與數據結構》是作為一門專業必修課程,是一門理論性和實踐性均很強的課程,不僅要學習基本理論知識,還要注重上機實踐,通過上機實踐驗證算法的正確性,掌握和鞏固所學理論知識。同時,本課程又是軟件開發與設計等課程的基礎。由于數據結構是介于數學、計算機硬件和計算機軟件三者之間的一門核心課程,它涉及到高等數學、離散數學、概率統計、計算機原理、程序設計等各方面知識,又由于數據結構課程具有多——概念多、內容多、方法多;雜——數據結構復雜、算法復雜;實踐性強——要求學生學會分析數據對象的特性,并選擇適當的數據結構和存儲結構來完成較為復雜的程序設計等特點,所以學習起來難度較大。根據課程的上述特點,就要求老師采用高效的教學方法去培養學生的邏輯思維能力,提高學生對問題的分析能力和實踐應用能力。因此,合理清晰的教學思路是老師教好這門課,學生學好這門課的前提和重要保障。
整體認知——局部探究——整體掌握的教學思路是本人在進行《數據結構》教學中采用的方法,為了實踐這一教學思路,要求教師在教學前必須非常熟悉教材,吃透教材,并參閱大量相關資料和書籍,在此基礎上將教學內容綜合分析思考,從中提煉共性的、規律性的知識體系,使知識系統化。
首先從教材的整體來看,邏輯結構這條主線貫穿始終,將各章節內容從總體上直接串聯起來,這點從教材的目錄中有所體現——從線性表到樹再到圖。教材先從線性表入手,再到非線性結構(樹、圖)的邏輯結構展開的。這種安排為教師的教和學生的學提供了一條非常有條理的線索,也符合由淺入深、從簡單到復雜的邏輯。
我們通過邏輯結構這條主線將各個章節內容從總體上直接串聯起來,為學生搭建數據結構課程的整體框架。因此,在具體教學過程中這部分內容講授起來層次分明、條理清楚,并且可以聯系生活中的一些實例,通過舉例來形象直觀地說明數據元素之間的相互關系,使得學生較容易掌握。如線性結構中的隊列、二叉樹、圖中的最小生成樹等都特別形象、直觀地顯示數據元素之間的相互關系。
接下來我們細化到數據結構的每個章節,發現每一章的邏輯結構、存儲結構、算法這三部分內容貫穿于數據結構始終,形成了結構完整、層次分明、條理清楚的清晰思路。存儲結構是邏輯結構在計算機中的具體實現。存儲結構是抽象的、具體的。在教材的安排中,每一章都要將某一確定的邏輯結構映射到存儲結構,從而實現數據在計算機中的存儲表示。并且,對于不同的邏輯結構來說,它們的存儲結構都是相通的,只是根據不同邏輯結構的特點選用不同的存儲結構。算法即為求解問題的一系列步驟?!稊祿Y構》課程在算法這一部分中,從空間與時間復雜度兩方面對算法進行比較評價,其目的是通過對算法的學習讓學生在具體編程序時選擇最佳的算法,從而使編出的程序盡可能占用最少的存儲空間和花費最少的時間。教材的最后兩個章節——排序、查找講述的就是不同的算法。
在具體的教學過程中我們對課程內容進行模塊劃分:數據結構的研究內容及基本概念為一模塊,按照數據邏輯結構的不同,將線性表、棧、隊列和數組作為一個模塊,樹及圖各自為一模塊,而專門講解算法的排序、查找合為一模塊,這樣使得課程內容清晰,模塊內容完整;其次,對于線性表、樹、圖各模塊,以從數據的邏輯結構,可采用何種存儲方式,到不同存儲方式下一些基本運算的實現為主線索進行教學,這樣有利于學生多方向思維,提高學習的主動性。
《數據結構》課程授課一般是依教材的內容和次序進行組織,一模塊一模塊內容、一堂課一堂課講解,因此,學生積累的是點,最多也就是面的知識。而《數據結構》課程中有很多內容是層層遞進,前后聯系的。例如鏈接存儲結構,在第二章線性表中有單鏈表、雙鏈表和循環鏈表三種,而后面的章節如棧和隊列的鏈表表示、樹的鏈表表示、圖的鄰接表以及鏈接法解決散列表沖突都是鏈表這部分內容的應用。因此我們在授課時應注意將這幾部分內容聯系起來進行歸納提煉并使其系統化,使學生能較好地理解各個知識點間的聯系, 做到舉一反三,從而“削減”課程的復雜度。也就是要把學生掌握的面的知識變成立體的知識并形成系統,這樣所學知識才能活起來、才能有用。
因此,我們在課程結束前,對數據結構內容進行總結和綜合,包括將每一章節模塊的邏輯結構、存儲結構和算法聯系在一起、理解不同邏輯結構到存儲結構的映射,從而實現數據在計算機中的存儲表示。邏輯結構、存儲結構和算法三部分內容相互穿插、聯系最后形成系統,使學生數據結構課程知識系統化。
數據結構的邏輯復雜,同其它計算機專業課程的知識聯系較多。把握這門課必須注意章節之間的聯系,以及與其它專業課程之間的聯系,通過反復的抽象、分類,理出從數據結構的概念到具體的數據結構之間的關聯,這種關聯是邏輯結構、存儲結構之間多對多的聯系。重視線性表及各種派生數據結構基本運算的算法設計思想及時間效率和空間效率的度量是學習數據結構的關鍵。
[1] 徐孝凱.數據結構實用教程(第二版)[M]. 北京:清華大學出版社.2006.9
[2] 吳立鋒.提高《數據結構》教學效果的探索[J]. 現代計算機.2010.6:80-82[3] 曲爽,姚艷秋.《數據結構》課程教學方法研究與實踐[J].吉林廣播電視大學學報. 2010,12:1-2
A Discussion on the Teaching of Thread and Module in "Algorithms and Data Structures"
Song Hui The School of Physics & Telecommunication Engineering, South China Normal University, Guangzhou, China, 510006
To the characteristics of data structure course,which are strong logic and Abstract, a teaching method of thread and module is been proposed in this article. Through this method, Systematization knowledge of data structure is understood for students and it can enhance teaching effects.
thread;modular teaching;data structure
G424
A
宋暉,女,1980年生,江西新余人,漢族,博士,講師。目前主要從事計算機技術、人工智能技術等方向的教學和科研工作。
10.3969/j.issn.1001-8972.2011.08.174