唐朝勝
文章編號:1672-5913(2009)10-0130-03
摘要:本文通過分析“數(shù)據(jù)結(jié)構(gòu)”課程的特點以及大學(xué)生學(xué)習(xí)的心理特征,結(jié)合筆者自身的教學(xué)實踐,探討了在新環(huán)境下發(fā)揮教師的引導(dǎo)作用,以提高“數(shù)據(jù)結(jié)構(gòu)”教學(xué)質(zhì)量的方法。
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);心理特征;引導(dǎo)作用;教學(xué)質(zhì)量
中圖分類號:G64
文獻標識碼:B
1引言
“數(shù)據(jù)結(jié)構(gòu)”課程主要討論了各種數(shù)據(jù)類型中的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)以及有關(guān)算法,要求學(xué)生學(xué)完后能根據(jù)實際應(yīng)用的需要,對數(shù)據(jù)進行有效的組織、存儲和處理,進而編制出高效率的程序。該課程是一門邏輯性和實踐性都很強的課程,在以往教學(xué)實踐中,由于課程內(nèi)容高度抽象、概念繁多、算法復(fù)雜,而教學(xué)方式和手段較單一,教與學(xué)雙方互動較少,常出現(xiàn)教師教學(xué)難度大、學(xué)生畏難情緒嚴重、課堂氣氛沉悶、學(xué)生興趣不高、動手實踐能力差等情況。
筆者通過具體分析“數(shù)據(jù)結(jié)構(gòu)”教學(xué)實踐中存在的問題,結(jié)合自身多年的教學(xué)經(jīng)驗,認為:把握好學(xué)生的心理特征,破除師生角色的固化,發(fā)揮教師引導(dǎo)作用,加強課堂內(nèi)外的師生互動,以調(diào)動學(xué)生學(xué)習(xí)的積極性和主動性,是提高教學(xué)質(zhì)量行之有效的方法。下面筆者從課內(nèi)和課外兩個方面,對如何發(fā)揮教師引導(dǎo)作用、加強師生互動,提高教學(xué)質(zhì)量進行探討。
2“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)實踐中的問題分析
2.1課程難度大,學(xué)生難以適應(yīng)
“數(shù)據(jù)結(jié)構(gòu)”是計算機專業(yè)基礎(chǔ)課程,不僅涉及數(shù)理邏輯、圖論、集合論以及諸如C語言、JAVA語言等前導(dǎo)課程,還涉及到計算機硬件(存儲設(shè)備和存取方法)以及計算機軟件(編譯理論、操作系統(tǒng))等方面的研究。因此,該課程不僅內(nèi)容豐富,學(xué)習(xí)量大,而且邏輯性和抽象性都較強。教材中眾多晦澀難懂的概念、復(fù)雜多變的算法,常使初次涉及編程的學(xué)生難以適應(yīng),產(chǎn)生畏難情緒。
2.2教學(xué)方式和方法單一,課堂氣氛沉悶
傳統(tǒng)教學(xué)中,教師為了讓學(xué)生理解相關(guān)的概念、算法等內(nèi)容,常需要大量的板書配合文字、圖表等加以說明,學(xué)生隨著教師的思路分析問題,能有充分時間作筆記,但由于課程內(nèi)容抽象難懂、教師多忙于板書和講解,學(xué)生忙于作筆記,雙方嚴重缺乏互動,課堂氣氛沉悶,學(xué)生提不起學(xué)習(xí)的興趣,往往出現(xiàn)“一邊教師唾沫橫飛、嘶聲力竭,而學(xué)生則唉聲嘆氣、一臉困惑的情景”。采用多媒體課件后,教師可以充分利用多媒體技術(shù)將算法、圖表等內(nèi)容形象、生動地表現(xiàn),學(xué)生學(xué)習(xí)興趣也有很大提高,卻又容易導(dǎo)致學(xué)生既要關(guān)注屏幕內(nèi)容又要忙著作筆記,無暇思考問題,課后難以消化,“聽課”則又變成了“看課”。
2.3理論實踐脫節(jié),實踐能力匱乏
“數(shù)據(jù)結(jié)構(gòu)”涉及內(nèi)容較廣,學(xué)習(xí)量大,但是課程學(xué)時往往有限。為此,不少教師為了完成理論教學(xué)內(nèi)容,常常壓縮實驗學(xué)時,容易形成“重理論講解,輕實踐應(yīng)用”的現(xiàn)象。加之教學(xué)難度大,尤其是不少學(xué)生對于“數(shù)據(jù)結(jié)構(gòu)”實驗中大量使用如C語言中較難的結(jié)構(gòu)體、指針、鏈表等知識點,掌握得不牢固,實踐課程中教師還得花時間去幫助學(xué)生復(fù)習(xí)前導(dǎo)課程的內(nèi)容,實驗課教學(xué)效果自然是大打折扣。為此,教師們常感嘆“數(shù)據(jù)結(jié)構(gòu)”課“難學(xué)難教”,“吃力不討好”,學(xué)生則抱怨抓不住學(xué)習(xí)主線,或者是課堂上似乎聽懂了,理解起來好像也并不困難,到上機實踐卻不知如何下手。久而久之,有的學(xué)生對編程逐漸失去興趣,等到課程結(jié)束,還是既不會編程序也不會調(diào)程序,程序設(shè)計的能力、創(chuàng)新能力更是無從談起。
3強化課程主題內(nèi)容,加強教學(xué)手段的多樣化
當代大學(xué)生學(xué)習(xí)的自主性較強,但也存在著急功近利、學(xué)習(xí)盲目性較大、畏難情緒較重的心理特征。不少學(xué)生看到數(shù)據(jù)結(jié)構(gòu)內(nèi)容抽象,看到師兄師姐和網(wǎng)絡(luò)論壇的學(xué)友談及學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的困難,就開始臨陣退縮了。這種情況下,教師在把握教學(xué)內(nèi)容的基礎(chǔ)上,采取多樣化的教學(xué)形式,并營造課堂內(nèi)師生互動融洽的氣氛就顯得極其重要。以下,筆者用“一根主軸線、兩個基本點、三足鼎立、百花齊放”對在多年“數(shù)據(jù)結(jié)構(gòu)”教學(xué)中,如何把握教學(xué)的關(guān)鍵點、調(diào)動學(xué)生學(xué)習(xí)積極性進行總結(jié)和論述。
3.1明確“一根主軸線”,圍繞主軸展開教學(xué)
從教學(xué)內(nèi)容來看,“數(shù)據(jù)結(jié)構(gòu)”主要教授各種數(shù)據(jù)對象的特點、存儲表示方法,以及處理數(shù)據(jù)的算法?!皵?shù)據(jù)結(jié)構(gòu)的本質(zhì)”便是貫穿整個課程的主軸線。筆者發(fā)現(xiàn),部分學(xué)生從課程開始直至結(jié)束,頭腦始終一片混沌,不清楚數(shù)據(jù)結(jié)構(gòu)到底是研究什么,有哪些形式,區(qū)別何在,更不知道如何運用。筆者認為,關(guān)鍵的問題在于他們沒有真正的把握和理解數(shù)據(jù)結(jié)構(gòu)的本質(zhì)。雖然不同教材對于數(shù)據(jù)結(jié)構(gòu)的定義并不一致,但是體現(xiàn)出來的本質(zhì)都是一樣的,即:數(shù)據(jù)結(jié)構(gòu)體現(xiàn)的是數(shù)據(jù)與數(shù)據(jù)之間的關(guān)系,而不同的數(shù)據(jù)結(jié)構(gòu)體現(xiàn)不同的數(shù)據(jù)關(guān)系。所以,教師授課實踐中應(yīng)圍繞這根“本質(zhì)”主軸線進行,尤其在教學(xué)初期,時刻提醒學(xué)生思考和把握數(shù)據(jù)結(jié)構(gòu)的本質(zhì)。
3.2確定“兩個基本點”,共同推進
“數(shù)據(jù)結(jié)構(gòu)”的教學(xué)主要圍繞數(shù)據(jù)結(jié)構(gòu)的兩種形式(邏輯結(jié)構(gòu)、存儲結(jié)構(gòu))來進行。教學(xué)流程一般是先介紹數(shù)據(jù)結(jié)構(gòu)涉及到的基本術(shù)語;其次是相應(yīng)的邏輯結(jié)構(gòu);最后才介紹存儲結(jié)構(gòu)的各種形式。所以,從某種意義上而言,邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)即是數(shù)據(jù)結(jié)構(gòu)教學(xué)流程中的兩個基本點。邏輯結(jié)構(gòu)體現(xiàn)的是數(shù)學(xué)層次上的數(shù)據(jù)關(guān)系,存儲結(jié)構(gòu)體現(xiàn)的是計算機層次上的數(shù)據(jù)組織形式。講解分析好這兩種形式之間的區(qū)別和聯(lián)系,對于學(xué)生透徹地理解各種數(shù)據(jù)對象的特點,學(xué)會數(shù)據(jù)的組織方法和實現(xiàn)方法都有極大的幫助。
而對于存儲結(jié)構(gòu)內(nèi)容的學(xué)習(xí),筆者認為,引導(dǎo)學(xué)生進行歸納和分類比較,找到它們的共同點,是促進學(xué)習(xí)和理解的有效途徑。因為,不同數(shù)據(jù)結(jié)構(gòu)的存儲結(jié)構(gòu)形式雖然多樣,如線性表有順序表表示、鏈表表示;串有定長順序存儲表示、堆分配儲存表示和塊鏈存儲表示;樹有雙親表示、孩子表示和孩子兄弟表示;圖有矩數(shù)組表示、鄰接表表示等,但是經(jīng)過分析比較歸類,這些存儲結(jié)構(gòu)無非就是兩大類:順序存儲和鏈式存儲。此外,在理解復(fù)雜的存儲結(jié)構(gòu)時,可提醒學(xué)生注意把握它的定義層次:先簡單后復(fù)雜,先局部后整體。例如,在定義圖的鄰接表的時候,先定義弧的結(jié)構(gòu),再定義頂點的結(jié)構(gòu)以及頂點數(shù)組,最后定義整個圖的鄰接表結(jié)構(gòu)。根據(jù)不同存儲類型的特點展開教學(xué),引導(dǎo)學(xué)生進行總結(jié)、思考,幫助學(xué)生從紛繁復(fù)雜的存儲結(jié)構(gòu)中把握它們的核心和精髓,往往能收到事半功倍的效果。
3.3構(gòu)建“三足鼎立”的教學(xué)模式,齊頭并進
所謂“三足鼎立”,是指“數(shù)據(jù)結(jié)構(gòu)、算法和程序設(shè)計”三項齊頭并進,同等重要。數(shù)據(jù)結(jié)構(gòu)是核心,算法是基石,程序設(shè)計則是實踐。而實踐往往是檢驗理論知識是否能靈活運用的標準。如引言所述的,有不少學(xué)生對例題理解了,但真正上機實踐卻不知如何下手,這正是只注重理論而忽視實踐的結(jié)果。為此,布置實驗作業(yè)時,筆者首先要求學(xué)生對每個實驗題目除了給出完整的問題描述、數(shù)據(jù)描述和算法描述,還需要給出程序源代碼以及調(diào)試分析的結(jié)果;其次,還有兩個步驟,筆者認為是至關(guān)重要的:第一步,預(yù)先與學(xué)生共同探討解題思路,提示注意事項,為編程打好基礎(chǔ);第二步,在布置下一個作業(yè)前,對上一個完成的作業(yè)予以點評,案例程序可以是筆者做的源程序,也可選用學(xué)生的。通過講解分析,讓學(xué)生將自己的源程序與案例程序進行比較,引導(dǎo)學(xué)生找到自己的不足之處,以便及時改進,提高實踐操作的能力。
3.4實施“百花齊放”的教學(xué)手段,提高學(xué)習(xí)效率
“百花齊放”則是對教學(xué)手段和教學(xué)方式多樣化的形象總結(jié)。多樣化的教學(xué)手段和方式通常是活躍課堂氣氛,激發(fā)學(xué)生的學(xué)習(xí)興趣,提高教學(xué)效果的有效措施。“數(shù)據(jù)結(jié)構(gòu)”課程不同于其他的計算機課程,其涉及大量的函數(shù)算法,而枯燥復(fù)雜的算法容易使學(xué)生產(chǎn)生畏難和厭倦情緒。為了讓學(xué)生易于理解和接受這些算法,教師應(yīng)盡可能應(yīng)用多媒體技術(shù)、網(wǎng)絡(luò)技術(shù),以及互動式教學(xué)法、任務(wù)驅(qū)動教學(xué)法等先進的教學(xué)方法進行教學(xué)改革。例如,筆者制作的“數(shù)據(jù)結(jié)構(gòu)”算法演示課件,已在我校數(shù)據(jù)結(jié)構(gòu)教學(xué)中應(yīng)用三年多。實踐證明,應(yīng)用Flash動畫,將各種枯燥難懂的算法進行形象生動的動態(tài)演示,讓學(xué)生主動參與、干涉程序的執(zhí)行,積極思考算法的實質(zhì),進一步加深了他們對算法的理解,大大提高了學(xué)習(xí)效率。
此外,除了口授教學(xué),筆者還通過播放名家授課錄像,開展學(xué)生數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)心得交流班會,進行算法討論和答疑等方式,引導(dǎo)學(xué)生更積極主動地參與到課堂中,并通過加強與學(xué)生的課堂互動,營造輕松的學(xué)習(xí)氛圍,使學(xué)生逐漸消除畏難情緒,轉(zhuǎn)而喜歡上數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)。
4加強課外引導(dǎo),提升專業(yè)思維
當代大學(xué)生思維活躍,敢于提出自己的意見和想法,渴望能用所學(xué)的知識加以運用。課堂內(nèi)精致的課件,形象生動的動畫演示雖然激起了學(xué)生的學(xué)習(xí)熱情,但同時也擠壓了他們想象的空間,他們更多的是被動接受,缺少了個性的參與和思考。因此,更多學(xué)生也不再滿足于課堂內(nèi)短時間的知識學(xué)習(xí),更希望老師在課堂外也能就他們所提出的問題進行講解、分析,并引導(dǎo)他們在知識鞏固基礎(chǔ)上,在實踐應(yīng)用環(huán)節(jié)有更多的創(chuàng)新。為此,加強課外的師生互動,引導(dǎo)學(xué)生在實踐應(yīng)用中拓展思維尤為重要。
4.1及時交流,答疑解惑
除了采用傳統(tǒng)的定時定點交流外,可以充分利用網(wǎng)絡(luò)資源,如采用QQ、電子郵件、飛信等方式與學(xué)生進行交流。此外,網(wǎng)絡(luò)論壇也是師生互動非常不錯的地方。筆者所在的計算機系建立了一個專業(yè)課程論壇(圖1)。論壇按課程分為C語言程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)、匯編語言、程序設(shè)計等幾個板塊,每個課程由相應(yīng)的課任教師負責,其他教師做輔助。在論壇中,一方面,學(xué)生可以提出學(xué)習(xí)中的問題,邀請或者指定某位老師進行解答;另一方面,學(xué)生可以貼出自己寫的算法和程序,請老師或同學(xué)進行討論,相互交流、借鑒經(jīng)驗;第三,可以由老師或?qū)W生設(shè)定某一主題,供大家討論,提出見解;第四,學(xué)生還可以貼出某一程序、算法的應(yīng)用實例,請教師或同學(xué)進行案例分析,并對其應(yīng)用拓展進行探討。
總而言之,以論壇為交流平臺,由學(xué)生做主角,教師做監(jiān)督和指引,通過師生互動、生生互動機制,一方面增強了師生、學(xué)生間的感情,使教師和學(xué)生增進了互相的尊重感,促進了教師的授課熱情和學(xué)生學(xué)習(xí)熱情;另一方面,激發(fā)了學(xué)生自發(fā)學(xué)習(xí)的能力和動力,提高了學(xué)生的對知識的應(yīng)用和創(chuàng)新意識。
以本課程為例,為了能讓學(xué)生盡快融入到“數(shù)據(jù)結(jié)構(gòu)”的學(xué)習(xí)中,筆者專門發(fā)了兩個帖子:“為什么學(xué)數(shù)據(jù)結(jié)構(gòu)和算法”和“如何將數(shù)據(jù)結(jié)構(gòu)的算法轉(zhuǎn)化成程序”,就這兩個問題進行了自己的觀點。學(xué)生看后反應(yīng)強烈,紛紛跟貼,發(fā)表自己的看法。多數(shù)參與其中討論的學(xué)生事后都感覺受益匪淺,學(xué)習(xí)熱情都有了明顯的提高。
4.2興趣實踐,鞏固知識
培養(yǎng)并提高學(xué)生的實踐能力是“數(shù)據(jù)結(jié)構(gòu)”課程的目標之一。實踐能力的提高則往往需要通過上機實驗以及課程設(shè)計(實習(xí))環(huán)節(jié)來保證。不少教師在提高學(xué)生的實踐能力方面提出了許多值得借鑒的方法,如王玉鋒等提出實驗教學(xué)中采用三步走的策略,即首先強調(diào)實驗內(nèi)容“應(yīng)用為主”;其次實驗題目按難易分層次,因材施教;最后挑選一些綜合性、設(shè)計性的題目進行課程設(shè)計等等。筆者認為,在互動教學(xué)模式下,教師除布置如“約瑟夫環(huán)”、“停車場調(diào)度”等經(jīng)典題目外,還可以引導(dǎo)學(xué)生自主選擇、自主設(shè)計感興趣的實習(xí)內(nèi)容,且方式方法不限,以增加學(xué)生創(chuàng)新的意識和實踐操作的能力。例如,在筆者采用兩個棧實現(xiàn)后綴表達式的啟發(fā)下,有學(xué)生提出了采用一個棧來實現(xiàn)前綴表達式的思路,并由此寫出了相應(yīng)的算法;而對于一些對動畫設(shè)計感興趣的學(xué)生,在筆者的引導(dǎo)下,他們應(yīng)用Flash技術(shù)自主實現(xiàn)教材中常見算法的動態(tài)演示(圖2),既熟悉了算法,又拓展了個人愛好,可謂一舉兩得。
4.3專業(yè)導(dǎo)航,拓寬視野
“數(shù)據(jù)結(jié)構(gòu)”是一門實踐性很強的課程,但它不像網(wǎng)頁設(shè)計、動畫設(shè)計等課程,學(xué)完后馬上能應(yīng)用到實踐中去,而教材限于學(xué)時以及篇幅等其他因素,并沒有體現(xiàn)太多的實際應(yīng)用。不少學(xué)生正因為看不到實際應(yīng)用,難以提起學(xué)習(xí)的興趣。為此,筆者不僅鼓勵學(xué)生去瀏覽一些如國內(nèi)著名大學(xué)的“數(shù)據(jù)結(jié)構(gòu)”課程網(wǎng)站、專業(yè)學(xué)習(xí)網(wǎng)站、CSDN網(wǎng)站等。另外,通過聯(lián)合本校圖書館學(xué)科館員,挖掘期刊、會議論文等學(xué)習(xí)資源,引導(dǎo)學(xué)生通過閱讀類如《軟件學(xué)報》、《計算機學(xué)報》、《計算機應(yīng)用》、《計算機工程》、《計算機教育》等專業(yè)雜志來了解數(shù)據(jù)算法及其實際應(yīng)用。這樣既激發(fā)了學(xué)生的學(xué)習(xí)興趣,又拓寬了視野。而筆者本身也通過對學(xué)生的引導(dǎo)與互動,受益匪淺,達到了“教學(xué)相長,相得益彰”的良好效果。
5結(jié)語
對于“數(shù)據(jù)結(jié)構(gòu)”課程,不少教師有著豐富而多彩的教學(xué)方法和經(jīng)驗。筆者僅從發(fā)揮教師主動性,促進師生互動的角度出發(fā),闡述個人的一些見解。對于廣大教師而言,還需要進一步研究和探索如何更科學(xué)、合理地開展教學(xué)改革,研究更有效的教學(xué)模式,培養(yǎng)出新時代環(huán)境下的計算機人才。
參考文獻:
[1] 嚴蔚敏,吳偉民.“數(shù)據(jù)結(jié)構(gòu)”(C語言版)[M]. 北京:清華大學(xué)出版社,1997.
[2] 王玉鋒,劉寶旨,王猛,等. 也談“數(shù)據(jù)結(jié)構(gòu)”的教學(xué)[J]. 計算機教育,2007(15):20-23.
[3] 戴敏,于長云,董玉濤. 高效學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)[J]. 計算機教育,2006(2):59-60.