婁小平 戴 軍
[摘要]“數據結構”是計算機科學與技術專業(yè)一門重要的專業(yè)基礎課程,針對該課程的特點,提出從先行基礎課程的銜接、教學內容的組織、教學手段的創(chuàng)新、以及實踐環(huán)節(jié)等方面進行改革的思路,以提高該門課的教學效果。
[關鍵詞]數據結構 教學內容 教學手段
中圖分類號:G42文獻標識碼:A文章編號:1671-7597(2009)0320122-01
一、引言
《數據結構》是計算機程序設計的重要理論技術基礎,是計算機學科的核心課程。但是由于“數據結構”課程概念多、綜合性強、技巧性強,學生往往感到內容并不難,課也都聽得懂,可是一做算法設計題就感到無從下乎,寫出的算法結構不清晰、效率低下,根據課程內容編寫上機題更是困難重重等。
二、《數據結構》課程的現狀
(一)《數據結構》課程的特點
(1)課程要求學生能較好地掌握《計算機導論》、《程序語言設計》以及《離散數學》這三門先行基礎課程;(2)課程中包括了大量的基本概念、算法的基本思想,而且內容抽象;(3)課程中的數據結構復雜、算法復雜,其實踐應用性也要求學生學會對問題的分析并用相應的數據。
(二)《數據結構》教學中存在的問題
1.有關數學知識不夠。必要的數學知識是學好數據結構的前提。有些學生認為數學與計算機關系不大,重視不夠,學好學不好無所謂,致使學習效果較差。
2.有關程序設計語言學得不透。程序設計語言本身內容較多,大多數學生不能完全理解,特別是C語言中的指針部分,在數據結構中用得較多,學生學不好的話,在設計數據結構中的算法以及上機調試時,必然會有困難。
3.對數據結構本身的概念理解不夠,由于數據結構涉及到大量的概念、模型及操作算法,理論性較強,且高度抽象,學生學習起來也較難掌握。
三、《數據結構》課程教學改革的思考
(一)注重與先行基礎課程的銜接
算法的描述和理解是《數據結構》課程的難點和重點,而數據結構算法的描述離不開C語言知識,《C語言程序設計》是學習數據結構的先行基礎課程。但是許多同學的C語言功底并不扎實。為此,在開始展開數據結構教學的同時要給學生布置《C語言程序設計》課程的復習任務,抓住兩門課程的銜接點實施教學。比如講解抽象數據類型,在數據結構中要定義數據類型首先要確定處理對象的邏輯結構,并根據邏輯結構的特點選擇存儲結構,最后對對象的各種基本操作進行算法描述。我們知道抽象數據類型的存儲結構和基本操作是通過“C語言”中的數據類型來描述的,而許多學生對這些算法的理解存在障礙。在講解這些算法時我們可以通過講解C語言中不同類型的運算方式如數組、結構體、指針等來加深學生對算法的理解。
(二)要精心設計教學內容
1.以知識點為基礎,進行階段性總結。在教學中,將數據結構分為3個講述階段:線性結構;樹型結構;網狀(圖形)結構。講授線性結構時要讓學生集中掌握一般線性表的特點、存儲結構和在每種存儲結構下的操作;透徹掌握棧、隊列、串、數組、廣義表,一般的線性表與集合的區(qū)別;特殊的線性表與一般線性表的區(qū)別。講授樹型結構時,聯系《離散數學》中樹的概念,采用由一般到特殊,再由特殊到一般的策略,首先介紹一般樹的概念,再到特殊的二叉樹的概念、存儲、操作,最后由特殊推出一般的樹、森林的存儲、操作。講授網狀結構時,首先對圖的存儲、操作等知識點進行介紹,有向圖和無向圖的異同點進行區(qū)別,再對這些知識點進行總結,應用無向圖和有向圖解決實際的最短路徑和關鍵路徑的問題。經過上述講述使學生掌握各個知識點。
2.以數據結構的兩種存儲結構為線,融會貫通各知識點。在講敘每個知識點的過程中,始終貫徹兩條主線,即數據結構存儲的兩種存儲結構:順序結構和鏈式結構。
在線性表中,不論一般的線性表還是棧、隊列,靈活應用這兩種結構去解決有關線性表、集合等問題。在以順序結構和鏈式結構為主線時,要融會貫通各個知識點,線性表的一般化形式廣義表的存儲,既可以采用課本介紹的線性表的鏈式存儲結構,也可以采用樹的存儲形式,這樣就將線性結構和樹型結構結合起來;圖的特例無向圖沒有回路并且連通可以看成樹,這樣樹的存儲可以利用圖的存儲來實現,引導學生進行發(fā)散思維,融合各知識點。
3.重視習題布置、批好作業(yè)、上好習題課。要學好“數據結構”,捷徑只有一個,多練習、勤思考。首先,布置大量的習題,反復練習,少數較難的習題適當加以提示。其次,認真批改作業(yè),找出學生的問題點,閃光點。最后,講評作業(yè),對共同出現的問題集中講解,對學生寫的優(yōu)秀算法加以表揚和鼓勵。再給出已做作業(yè)的參考答案供學生參考。
(三)創(chuàng)新教學手段
在傳統(tǒng)的“黑板+粉筆”的教學中,學生在學習《數據結構》的時候完全只能靠自己的空間想象能力,不能給學生以直觀的影像,如果結合多媒體教學,就顯得更加直觀更加有效。例如在講解鏈表的插入或刪除操作的算法的時候,我們可以編寫教學軟件模擬講解的算法的動態(tài)運行,達到動態(tài)演示且直觀的效果。以圖形的方式,學生可以看到算法執(zhí)行每一條語句后鏈表的狀態(tài)、結點中指針的變化、在整個演示過程中學生可以看到如何在鏈表中插入或刪除一個結點,學生就會覺得很直觀,容易理解。
(四)注重實踐環(huán)節(jié)
要抓好實踐環(huán)節(jié),應引導學生做好以下幾點:
1.上機前先預習,熟知本次實驗目的、實驗內容,畫出程序流程圖。
2.學會將類C語言描述的代碼,轉換成上機可執(zhí)行的C語言源程序或VC++,BC++中可執(zhí)行代碼。這就要求學生自己學會補充C語言細節(jié),將抽象的代碼轉為具體的可以上機執(zhí)行的C語言源程序。這將鍛煉學生綜合運用所學知識的能力。
3.對上機時共性的問題,教師要采取集體輔導方式;對個別學生的特殊問題給予個別指導。切忌給他們具體答案,使得培養(yǎng)學生抽象思維能力和動手能力的實踐過程變成簡單的上機重復,影響教學效果。
四、結語
數據結構是計算機專業(yè)的骨干、核心課程,也是大多數學校研究生入學考試的必考課程,因此,對于該課程的教學,不僅要從理論上進行探討,還要從教學內容結構、教學方法等方面進行研究。作者根據自己的體會,提出了從先行基礎課程、教學內容、教學手段、實踐環(huán)節(jié)等四個方面進行改革的探討。
參考文獻:
[1]劉亞波、劉大有,以實驗教學深化數據結構理論教學[J].吉林大學學報增刊,2005.08:135-137.
[2]徐鳳生、任傳成,數據結構教學改革探討[J].計算機時代,2006.03:58-59.
[3]徐成杰、嚴云洋,數據結構課程教學要點的探討[J].現代計算機,2001.1:98-99.
[4]張敬芝,數據結構課程教學改革研究[J].長春師范學院學報,2005.8:147-148.
[6]周克蘭、張玉華,數據結構課程教學的實踐與思考[J].高等理科教育,2003.1:173-176.
作者簡介:
婁小平,女,湖南湘潭人,湖南文理學院計算機學院教師,主要從事嵌入式系統(tǒng)的研究。