數(shù)據(jù)結(jié)構(gòu)課程新型教學(xué)方法思考與實踐_第1頁
數(shù)據(jù)結(jié)構(gòu)課程新型教學(xué)方法思考與實踐_第2頁
數(shù)據(jù)結(jié)構(gòu)課程新型教學(xué)方法思考與實踐_第3頁
數(shù)據(jù)結(jié)構(gòu)課程新型教學(xué)方法思考與實踐_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

數(shù)據(jù)結(jié)構(gòu)課程新型教學(xué)方法思考與實踐數(shù)據(jù)結(jié)構(gòu)課程新型教學(xué)辦法思考與實踐

文章編號:1672-5913〔2022〕07-0085-04

中圖分類號:G642

1教學(xué)中遇到的問題

數(shù)據(jù)結(jié)構(gòu)課程內(nèi)容比擬抽象,理論性較強,學(xué)習(xí)和理解這門課的時候有一定的難度,但在實際教學(xué)中遇到的最大的困難,不是“會不會〞,而是“學(xué)不學(xué)〞。很多學(xué)生在接觸數(shù)據(jù)結(jié)構(gòu)的第一堂課時就沒有學(xué)好這門課的欲望,原因主要可以分為3種。

〔1〕因為“乏〞而沒有興趣。不足對數(shù)據(jù)結(jié)構(gòu)知識的了解,不知道學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)有什么用或者盲目地認為數(shù)據(jù)結(jié)構(gòu)只是程序設(shè)計的延伸,從而沒有學(xué)習(xí)興趣。

〔2〕因為“弱〞而沒有興趣。一局部學(xué)生由于未能熟練地掌握C語言,尤其是不足對指針、數(shù)組、結(jié)構(gòu)體等內(nèi)容的理解,還沒有理解算法與代碼的區(qū)別,因此在看到滿教材的類C語言偽代碼時,便早已望而卻步。

〔3〕因為“難〞而沒有興趣。數(shù)據(jù)結(jié)構(gòu)課程的知識介于數(shù)學(xué)、計算機軟件、計算機硬件之間,理論性很強,內(nèi)容較抽象[1]。如果僅用單純的口頭講授、干燥的黑板板書的傳統(tǒng)授課形式,理解力不強的學(xué)生很容易產(chǎn)生畏難情緒,失去對這門課程的學(xué)習(xí)和鉆研興趣。

我們以緒論為例,針對上述3種現(xiàn)象,以激發(fā)學(xué)生學(xué)習(xí)興趣為主旨,提出:①以課程概述填補學(xué)生知識之“乏〞,輔以虛擬實驗平臺展示,使學(xué)生認清學(xué)習(xí)目標;②借助答疑,進行知識展開,使學(xué)生正確自評,避開“弱〞項,勇于探索知識;③以化抽象為具體、化繁為簡的辦法,使“難〞懂的問題變得容易理解,使學(xué)生不僅能學(xué)會,而且能學(xué)好;④以動畫演示和圖文并茂的教學(xué)方式,令課程更加生動有趣。

2教學(xué)辦法及實踐

緒論局部作為數(shù)據(jù)結(jié)構(gòu)課程的先鋒,必須承當(dāng)起“先聲奪人〞的任務(wù):就是在第一堂課讓學(xué)生比擬透徹地理解數(shù)據(jù)結(jié)構(gòu)的含義,從宏觀上了解數(shù)據(jù)結(jié)構(gòu)的內(nèi)容以及它在課程體系結(jié)構(gòu)中的重要位置。針對學(xué)生畏難現(xiàn)象,教師可采用概述補“乏〞、實驗提鮮,借題發(fā)揮、識強避“弱〞,化繁為簡、變“難〞成易,圖文并茂、動畫結(jié)合等教學(xué)辦法,引導(dǎo)學(xué)生自主、自覺地完成學(xué)習(xí),激發(fā)學(xué)生學(xué)習(xí)的熱情和興趣。

2.1概述補“乏〞、實驗提鮮

對數(shù)據(jù)結(jié)構(gòu)課程進行統(tǒng)領(lǐng)性介紹,可以使學(xué)生對整個課程內(nèi)容有宏觀上的了解,同時明確其在計算機學(xué)科中的重要地位。除了內(nèi)容的概述,緒論局部還有許多根本概念和術(shù)語的介紹,如果僅憑口頭講解和板書,就很容易產(chǎn)生呆板、沉悶的課堂氛圍。為了防止概念的干燥堆砌,教師應(yīng)盡量增加實驗展示或?qū)嵗v解。我們建立了虛擬實驗平臺,用來展示數(shù)據(jù)結(jié)構(gòu)中的各種實驗,使學(xué)生對各種結(jié)構(gòu)特性一目了然,如利用虛擬實驗平臺建立的棧結(jié)構(gòu),向?qū)W生演示數(shù)據(jù)入棧和出棧操作,如圖1所示。棧結(jié)構(gòu)是一種只允許在一端進行插入和刪除的線性結(jié)構(gòu),數(shù)據(jù)插入的一端為棧頂,數(shù)據(jù)的插入操作稱為入棧,具有后來居上的特點。棧結(jié)構(gòu)的出棧操作,如圖2所示,明顯具有后進先出的特點,因此棧又被稱為后進先出〔lastinfirstout,LIFO〕表。直觀的實驗結(jié)果不僅可以加深學(xué)生對知識點的記憶,還提高學(xué)生進一步探索學(xué)習(xí)的興趣。

2.2借題發(fā)揮、識強避“弱〞

教材使用類C語言作為數(shù)據(jù)結(jié)構(gòu)和算法的描述語言,與實際運行的C語言程序是有區(qū)別的。類C語言利用了C語言的特點,而又不拘泥于C語言的細節(jié)。C語言掌握不好的學(xué)生在上機實驗《h節(jié)會有難度,但并不影響對核心算法的正確理解。如果是因為沒有學(xué)好C語言而主動放棄學(xué)好數(shù)據(jù)結(jié)構(gòu),則更是因小失大,因此,教師在緒論局部要借助少量的核心算法進行講解,明確算法與程序之間的聯(lián)系和區(qū)別。

示例,教師在講解算法時間效率問題時,可利用冒泡排序算法進行討論。冒泡排序算法如下:

voidbubble_sort〔inta[],intn〕

{for〔i=n-1,change=true;i>=1&&change;--i〕

{change=false;

for〔j=0;jif〔a[j]>a[j+1]〕

{a[j]a[j+1];change=true;}

}

}

它只是借助類C語言描述冒泡排序的辦法。如果需要以程序的形式輸出結(jié)果,就要按C語言的語法要求進行修改和加工。程序代碼如下:

#include

voidBubble_Sort〔inta[],intn〕

{inti,j,t,change;

change=1;

for〔i=n-1,change=1;i>=1&&change==1;--i〕

{change=0;

for〔j=0;jif〔a[j]>a[j+1]〕

{t=a[j+1];

a[j+1]=a[j];

a[j]=t;

change=1;

}

for〔i=0;iprintf〔"%d",a[i]〕;

printf〔"\n"〕;

}

}

intmain〔〕

{inti;

inta[8]={49,38,65,97,76,13,27,49};

printf〔"未排序數(shù)為:\n"〕;for〔i=0;iprintf〔"%d",a[i]〕;

printf〔"\n"〕;

printf〔"每次排序結(jié)果為:\n"〕;

Bubble_Sort〔a,8〕;

return0;

}

在親歷算法改寫成程序代碼的過程中,學(xué)生可以很分明地認識到算法和程序不能等價,因此完全不必因為沒有學(xué)好C語言而對數(shù)據(jù)結(jié)構(gòu)望而卻步,反而能夠因為學(xué)好數(shù)據(jù)結(jié)構(gòu)而更加熟練地操作C語言。

在對有序序列進行冒泡排序的實驗比照和討論中,學(xué)生也能很容易察看到,經(jīng)過改良的算法可以在最好的情況下,即排序序列本身有序的情況下,只執(zhí)行一次循環(huán)就結(jié)束程序,在時間效率上有很大的提高,如圖3、圖4所示,由此便可理解優(yōu)化算法的意義,討論算法效率的必要性以及“時間復(fù)雜度〞的概念。這些結(jié)論不是教師填鴨式的知識灌輸,而是由學(xué)生通過實踐、察看和討論后自己總結(jié)得出的,不僅可以鍛煉學(xué)生的實踐能力,還能使學(xué)生學(xué)習(xí)的主動性、學(xué)習(xí)興趣和熱情大幅度提高。

2.3化繁為簡、變“難〞成易

數(shù)據(jù)結(jié)構(gòu)在很大程度上依賴于數(shù)學(xué)的根底,許多概念是以數(shù)學(xué)的方式敘述描述的,含義精準,但抽象難懂。教師在授課時,可以采用化繁為簡、化抽象為具體、用口語化語言敘述等方式,使學(xué)生對知識要點理解得更加透徹。示例,“數(shù)據(jù)結(jié)構(gòu)〞的定義為:數(shù)據(jù)結(jié)構(gòu)是一個二元組

Data_Structure={D,S}

其中,D是數(shù)據(jù)元素的有限集,S是D上關(guān)系的有限集[2]。

如果把抽象的數(shù)學(xué)敘述轉(zhuǎn)化為具體的算式“數(shù)據(jù)結(jié)構(gòu)=數(shù)據(jù)元素+元素關(guān)系〞,那么更加容易被學(xué)生理解。最常見的數(shù)據(jù)《Y構(gòu)莫過于學(xué)生在初中、高中就接觸過的方程式,它就是一種數(shù)據(jù)結(jié)構(gòu),未知數(shù)x,y構(gòu)成的方程就是它們之間的約束關(guān)系,計算結(jié)果是一個具體的數(shù)值。在非數(shù)值領(lǐng)域如信息管理、人機對弈等,數(shù)據(jù)之間的約束關(guān)系就呈現(xiàn)出一對一、一對多等情況,而這正是數(shù)據(jù)結(jié)構(gòu)課程所要討論的內(nèi)容。經(jīng)過化繁為簡,化抽象為具體,學(xué)生對概念的理解更為清晰。其實,數(shù)據(jù)結(jié)構(gòu)后續(xù)章節(jié)里的很多抽象概念或數(shù)學(xué)敘述式都可以采用這種辦法,改用比擬通俗、具體的語言去講解和描述。這種理解辦法的轉(zhuǎn)變可以在很大程度上緩解學(xué)生畏難的情緒。

2.4圖文并茂、動畫結(jié)合

參加圖像、Flash動畫等輔助措施不僅能夠提高數(shù)據(jù)結(jié)構(gòu)知識講解的條理性,還可以使干燥的理論變得有趣味,如在緒論中的一道例題可以用來描述課題小組導(dǎo)師、研究生和本科生的數(shù)據(jù)結(jié)構(gòu),如果單從定義的角度進行講解,那么晦澀難懂,但加以圖示表明,那么很容易理解,如圖5所示。這種數(shù)據(jù)結(jié)構(gòu)具有明顯的層次性,是一對多的樹型結(jié)構(gòu)。

在數(shù)據(jù)結(jié)構(gòu)后續(xù)章節(jié)的講解中,如哈夫曼編碼、最小生成樹、拓撲排序等知識,教師更需要利用圖像和Flash動畫加以演示,使知識要點更清晰,學(xué)生對算法的理解更透徹。

3結(jié)語

采用概述補“乏〞、實驗提鮮,借題發(fā)揮、識強避“弱〞,化繁為簡、變“難〞成易,圖文并茂、動畫結(jié)合等教學(xué)辦法,結(jié)合虛擬實驗平臺演

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論