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