鐘俊飛
【摘要】計算機專業(yè)中最為核心的教學內(nèi)容就是數(shù)據(jù)結(jié)構(gòu),這門課程能夠更好的讓學生掌握編程的思路,但是由于數(shù)據(jù)結(jié)構(gòu)內(nèi)容相對來講其理論性較強,所以很多老師在教學過程中,不可避免的出現(xiàn)粗燥乏味的現(xiàn)象,本文研究的內(nèi)容就是分析當前數(shù)據(jù)結(jié)構(gòu)課程教學存在的一些問題,同時根據(jù)這些問題提出一些針對性的解決措施。
【關(guān)鍵詞】數(shù)據(jù)結(jié)構(gòu);教學;問題;對策
一、引言
數(shù)據(jù)結(jié)構(gòu)課程的教學目標是讓學生能夠更好的理解和熟練掌握計算機算法,主要包括線形表以及棧和隊列以及圖和樹等,并對非數(shù)據(jù)結(jié)構(gòu)的相關(guān)算法進行了分析和系統(tǒng)的介紹。數(shù)據(jù)結(jié)構(gòu)不僅僅是計算機專業(yè)的核心課程,同時也是其他理工科的主要課程之一,和軟件開發(fā)、數(shù)據(jù)庫開發(fā),以及計算機網(wǎng)絡(luò)等知識有著緊密的聯(lián)系,但是這門課程具有大量的理論知識,從教學方面而言,很難提升學生的學習興趣,所以目前在教學中存在著不少的問題,本文的研究重點就是針對這些問題提出了一些針對的解決措施,從而為數(shù)據(jù)結(jié)構(gòu)的教學提供一些可以借鑒的教學方法。
二、當前數(shù)據(jù)結(jié)構(gòu)教學存在的問題
(一)前導課程教學效果不佳引起的連鎖反應
數(shù)據(jù)結(jié)構(gòu)的前導課程知識主要包括離散數(shù)學以及C語言程序設(shè)計,有的數(shù)據(jù)結(jié)構(gòu)采用PASCAL語言編寫,不過目前大學課程的數(shù)據(jù)結(jié)構(gòu)算法設(shè)計語言大多數(shù)選擇C語言版本,所以要求學生擁有一定的C語言設(shè)計能力,而數(shù)據(jù)結(jié)構(gòu)中的邏輯算法和離散數(shù)學關(guān)系密切。雖然很多大學在課程安排上,將C語言和離散數(shù)學放在前面,但是這兩門課程的理論知識和抽象度非常高,很多老師在這兩門課程的教學方面更多從語法上進行教學,而對于涉及到多維數(shù)組、指針等數(shù)據(jù)類型的分析和介紹就相對較少,造成學生在學習數(shù)據(jù)結(jié)構(gòu)的障礙,從而引起教學效果不佳的問題。
(二)課程內(nèi)容抽象造成算法理解困難
數(shù)據(jù)結(jié)構(gòu)課程的核心就是幫助學生建立科學的算法思想,因此很多知識理論相對抽象,在教學中,僅僅通過一些表格以及線狀圖進行標示,如果老師在講解中不能夠切中要害,那就很容易造成學生理解困難問題,比如對數(shù)據(jù)結(jié)構(gòu)中的樹和圖的數(shù)據(jù)類型定義以及數(shù)據(jù)關(guān)系的描述,以及最短路徑算法以及最小生成樹算法等,都會涉及到動態(tài)規(guī)劃法,而這些既是數(shù)據(jù)結(jié)構(gòu)講解的重點,同時也是學習的難點,這造成了目前學生對數(shù)據(jù)結(jié)構(gòu)領(lǐng)悟不強的原因之一。
(三)老師教學方法單調(diào)
數(shù)據(jù)結(jié)構(gòu)本身就是純理論內(nèi)容較多,如果采用過去的那種填鴨式的教學方式,就很難提升學生的學習興趣,目前很多高校在數(shù)據(jù)結(jié)構(gòu)課堂教學中,老師在講臺上孜孜不倦的講解傳授各種數(shù)據(jù)結(jié)構(gòu)知識,但是在講臺下卻出現(xiàn)了一大批昏昏欲睡的學生,甚至學生根本無視老師存在,直接趴在桌子上睡覺,這一方面說明了學生自身不愿意學習,另一方面也說明了老師并沒有很好的調(diào)動學生的學習興趣,沒有將課堂變成開放式課堂,通過轉(zhuǎn)變傳統(tǒng)教學方式來提升學生學習興趣,從而讓學生在課堂上動起來,這樣就能夠有利于促進學生的理解力。
三、應對數(shù)據(jù)結(jié)構(gòu)教學問題的主要對策
(一)注重教學的連貫性
數(shù)據(jù)結(jié)構(gòu)知識需要具備很多的基礎(chǔ),C語言和離散數(shù)學甚至線性代數(shù)都是學習數(shù)據(jù)結(jié)構(gòu)的前導性課程,因此加強C語言程序設(shè)計教學以及相關(guān)課程的教學效果是非常關(guān)鍵的,數(shù)據(jù)結(jié)構(gòu)所描述的算法語言是一種偽代碼,和C語言上的通過設(shè)定各種語法的代碼是有一定的偏差時,如果在C語言教學過程中不注重對偽代碼的講解分析,就會造成學生在學習數(shù)據(jù)結(jié)構(gòu)上存在困難。因此高校在教學過程中,應該要注重改變C語言的教學模式,將注重語言語法教學改變成算法教學上,要為指針、函數(shù)以及多維數(shù)組結(jié)構(gòu)等內(nèi)容提供更多的教學課時,另外還要增加一些實驗課來提升學生的抽象構(gòu)造能力,以及程序代碼的閱讀能力和編寫能力,對于離散數(shù)學的教學則應該加大圖論的講解內(nèi)容,從而為數(shù)據(jù)結(jié)構(gòu)中的非線性數(shù)據(jù)結(jié)構(gòu)的教學打下一定的基礎(chǔ)。
(二)對教學內(nèi)容進行剪裁,突出重點
因為數(shù)據(jù)結(jié)構(gòu)內(nèi)容相對抽象,所以學生在學習時往往會非常困難,特別是按部就班的教學特別容易引起學習疲勞,因此老師應該對數(shù)據(jù)結(jié)構(gòu)的教學內(nèi)容進行剪裁,要僅僅抓住線性結(jié)構(gòu)和非線性結(jié)構(gòu)這兩個核心,并以存儲結(jié)構(gòu)以及算法描述為重點,這樣才能夠抓住教學的重點。比如數(shù)據(jù)結(jié)構(gòu)中的線性表是最為簡單的數(shù)據(jù)結(jié)構(gòu)類型,通過介紹線性結(jié)構(gòu)的順序存儲以及鏈式存儲方式之后,以及針對這種結(jié)構(gòu)的遍歷、插入和刪除的操作就對后續(xù)的棧隊列結(jié)構(gòu)的理解就相對容易。而非線性數(shù)據(jù)結(jié)構(gòu)中,主要包括樹和圖。對于樹的算法介紹則應該以二叉樹為教學重點,要讓學生對二叉排序樹、最優(yōu)二叉樹等概念有著全面的分析,并讓學生理解二叉樹的遍歷。而對圖的教學則重點放在最小生成樹、最短路徑和拓撲排序方面。
(三)改革教學方式
在數(shù)據(jù)結(jié)構(gòu)的教學方式上應該優(yōu)化傳統(tǒng)的教學模式,要重點采用啟發(fā)式的教學以及任務(wù)驅(qū)動式的教學方式,通過提出問題,解決問題的任務(wù)驅(qū)動模式,積極調(diào)動學生自主學習能力。對此需要做好以下幾個方面工作。
其一要創(chuàng)設(shè)情景,針對教學內(nèi)容提出一個需要解決的案例,讓學生帶著這個案例進行思考和學習,從而讓學生的學習目的變得明確,同時在老師講解時學生也更容易打起精神來學習自己對這個問題需要解決方案存在的難點和疑問,從而提升學生學習的自主性。
其二要充分發(fā)揮多媒體教學優(yōu)勢,利用圖形和聲音以及動畫不同形式的展現(xiàn),將一些相對抽象的問題直觀化,進而再將直觀化轉(zhuǎn)變成抽象化,從而提升學生的抽象能力,但是這種方法需要規(guī)避一些誤區(qū),那就是重視直觀化的教學,而忽視抽象能力的教學,這對于學生提升自身能力是起到負面的作用的。
四、總結(jié)
數(shù)據(jù)結(jié)構(gòu)教學內(nèi)容相對枯燥乏味,這是形成教學難點的關(guān)鍵所在,但是由于數(shù)據(jù)結(jié)構(gòu)是培養(yǎng)學生計算機能力一個具有承上啟下的關(guān)鍵性課程,能夠?qū)W生前面學習的內(nèi)容具有鞏固創(chuàng)新的作用,同時又能夠為后續(xù)的程序開發(fā)、軟件工程,以及數(shù)據(jù)庫開發(fā)等知識的學習做好鋪墊,所以提升數(shù)據(jù)結(jié)構(gòu)的教學效果是非常關(guān)鍵的。本文提出的優(yōu)化數(shù)據(jù)結(jié)構(gòu)教學內(nèi)容,突出重點以及改革教學方式,加強引導性教學。這些應對措施在提升數(shù)據(jù)結(jié)構(gòu)教學效果上是能夠起到一定的推動作用的。
參考文獻
[1]王森.數(shù)據(jù)結(jié)構(gòu)教學改革的研究[J].辦公自動化,2011(12)
[2]盧冰.高校計算機專業(yè)“數(shù)據(jù)結(jié)構(gòu)”課程教學改革的探索與實踐[J].成人教育,2011(9)