劉丹 劉昆 孫寧
摘要:數(shù)據(jù)結(jié)構(gòu)是計算機(jī)專業(yè)的核心課程,由于其內(nèi)容抽象、知識點(diǎn)多、算法復(fù)雜,導(dǎo)致學(xué)生學(xué)習(xí)效果不理想,本文通過對實際教學(xué)過程中的主要問題進(jìn)行分析和研究,結(jié)合多年的教學(xué)經(jīng)驗,提出了一些教學(xué)改革的思路和辦法。
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);教學(xué)過程;教學(xué)改革
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2019)27-0145-02
1引言
數(shù)據(jù)結(jié)構(gòu)在計算機(jī)科學(xué)中是一門綜合性的專業(yè)基礎(chǔ)課,主要研究數(shù)據(jù)之間的邏輯結(jié)構(gòu)、數(shù)據(jù)在計算機(jī)中的存儲結(jié)構(gòu),以及與數(shù)據(jù)處理相關(guān)的各種算法。與其他課程的獨(dú)立性不同,數(shù)據(jù)結(jié)構(gòu)課程具有很強(qiáng)的承前啟后的作用,既是《C語言程序設(shè)計》《離散數(shù)學(xué)》等前導(dǎo)課程的延伸和擴(kuò)展,也是《數(shù)據(jù)庫原理》《操作系統(tǒng)》和《編譯原理》等后續(xù)課程的鋪墊和基礎(chǔ)。所以數(shù)據(jù)結(jié)構(gòu)在計算機(jī)課程的教學(xué)中占有十分重要的位置,可是,目前很多學(xué)校在實際教學(xué)過程中遇到各種困難,雖然老師和學(xué)生都花費(fèi)了大量的實際和精力,可以教學(xué)效果卻并不理想。
2存在的主要問題
2.1前導(dǎo)課程課程基礎(chǔ)薄弱
C語言在數(shù)據(jù)結(jié)構(gòu)課程中有著非常廣泛的應(yīng)用,數(shù)據(jù)結(jié)構(gòu)中的算法主要是用C語言實現(xiàn)的,可是C語言在大一上學(xué)期開設(shè),一方面很多學(xué)生還沒有從高中那種被動的、題海戰(zhàn)術(shù)的學(xué)習(xí)模式轉(zhuǎn)變過來,可以自己合理地制定學(xué)習(xí)計劃,有效率的利用課外時間完成學(xué)習(xí)內(nèi)容,另一方面,雖然很多學(xué)生在高中期間已經(jīng)接觸到了信息類的課程,可是這類課程在高中階段并不受到重視,所以很多學(xué)生在一開始接觸到程序設(shè)計類的課程時,不適應(yīng)教學(xué)內(nèi)容以及思考、解決問題的思維方式,種種原因?qū)е翪語言學(xué)習(xí)效果不理想,特別是對在數(shù)據(jù)結(jié)構(gòu)中有重要應(yīng)用的結(jié)構(gòu)體、指針等內(nèi)容理解不深刻,嚴(yán)重影響數(shù)據(jù)結(jié)構(gòu)課程的聽講效果。
2.2課程內(nèi)容抽象有難度,學(xué)生理解有困難
數(shù)據(jù)結(jié)構(gòu)課程知識點(diǎn)豐富,內(nèi)容抽象、分布在各章中的算法和技術(shù)眾多,學(xué)習(xí)任務(wù)繁重,從c語言中的整型、字符型等簡單數(shù)據(jù)類型一下跳躍到樹、圖等復(fù)雜的抽象數(shù)據(jù)類型,需要學(xué)生具備一定的抽象思維的能力,而這種能力是需要一定的訓(xùn)練才能獲得的,所以很多學(xué)生反映難以將相關(guān)知識點(diǎn)形象化、具體化,從而難以理解課堂內(nèi)容。
2.3實踐環(huán)節(jié)不受到重視
數(shù)據(jù)結(jié)構(gòu)是一門理論與實踐并重的課程,可是很多高校在制定教學(xué)大綱時重理論輕實踐,有些高校甚至直接砍掉了實驗教學(xué),導(dǎo)致學(xué)生只會紙上談兵,在解決問題時不知道應(yīng)該選擇什么數(shù)據(jù)結(jié)構(gòu),采用哪一種算法,更不用說上機(jī)調(diào)試代碼的能力了。
2.4考核方式單一
現(xiàn)在傳統(tǒng)的課程考核方式是期末成績+平時成績。期末成績主要是筆試的成績,平時成績主要包括出勤、實驗報告。這種形式過于偏頗,不能綜合的考查出學(xué)生的理論和實踐的掌握水平,只涵蓋出勤和實驗報告的平時成績也不能全面完整的反映一個學(xué)生的平時表現(xiàn)。
3相應(yīng)的改進(jìn)方法
3.1對C語言知識有針對性的復(fù)習(xí)
C語言是數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)的基礎(chǔ),一般C語言開設(shè)在大一的上學(xué)期,數(shù)據(jù)結(jié)構(gòu)開設(shè)在大二的上學(xué)期,兩門課程中間間隔了半年的時間,C語言的掌握程度直接影響到數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)效果。所以有必要在開課的第一周利用4-6個學(xué)時對C語言中的結(jié)構(gòu)體、指針等知識點(diǎn)進(jìn)行梳理和強(qiáng)化,為數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)做好準(zhǔn)備工作。
3.2采用靈活多樣的教學(xué)手段
數(shù)據(jù)結(jié)構(gòu)的內(nèi)容抽象、晦澀、難懂,如果枯燥的講授書上的理論知識,勢必會造成學(xué)生的厭學(xué)情緒。所以需要精心設(shè)計教學(xué)環(huán)節(jié),教學(xué)內(nèi)容,改進(jìn)教學(xué)模式,豐富教學(xué)手段。
1)任課教師在教學(xué)過程中要避免照本宣科,多舉一些在實際生活中比較常見的例子幫助學(xué)生理解和消化相關(guān)的知識點(diǎn)。例如,在講到隊列的先進(jìn)先出的特性時,可以舉食堂排隊打飯的例子,來得早的同學(xué)排在隊伍前面,先買好飯從隊伍出來;在講到棧的后進(jìn)先出特性的時候,可以舉洗盤子的例子,洗干凈的盤子放在最上面,用盤子的時候也是從最上面取;在講到樹的一對多的特性的時候,可以以學(xué)校為例,一所大學(xué)包含若干個學(xué)院,一個學(xué)院包含若干個系,一個系包含若干個專業(yè);在講到圖的多對多的特性的時候,用城市之間的交通狀況解釋,更容易理解,任何一個城市都可以通往其他的多個城市。通過這些身邊的例子,可以把抽象的概念具體化、形象化,幫助學(xué)生理解和消化相關(guān)的知識點(diǎn),吸引學(xué)生的興趣,抓住學(xué)生的注意力,加深對知識的理解和記憶。
2)數(shù)據(jù)結(jié)構(gòu)的內(nèi)容抽象有難度,傳統(tǒng)的板書+PPT的教學(xué)方式難以滿足教學(xué)需求,所以需要設(shè)計更加立體、豐富的教學(xué)環(huán)節(jié)。把教學(xué)任務(wù)劃分成課前、課上和課后。首先,在每周開課前,老師提前布置一些和下周教學(xué)內(nèi)容相關(guān)的問題,并提供相應(yīng)的解題思路,以及解決問題需要用到的知識和方法,要求學(xué)生在開課前做好必要的預(yù)習(xí)工作,對下周的學(xué)習(xí)任務(wù)有一個初步的了解,并確立相關(guān)的學(xué)習(xí)目標(biāo),通過這種方法,把整個課程的學(xué)習(xí)目標(biāo)劃分成每周的學(xué)習(xí)目標(biāo),可以幫助學(xué)生排除畏難的情緒,更有利于樹立學(xué)會、學(xué)好的信心。
其次,在課堂上,在講到抽象的知識點(diǎn)時,可以用形象生動的動畫或視頻取代枯燥的文字,對于復(fù)雜的算法,不要急于拋出最后的代碼和運(yùn)行結(jié)果,而是應(yīng)該一步步引導(dǎo)學(xué)生理解算法的設(shè)計思路,要由什么樣的輸入數(shù)據(jù)得到什么樣的輸出結(jié)果,應(yīng)該如何組織數(shù)據(jù)之間的邏輯關(guān)系,選擇哪種存儲結(jié)構(gòu),如何對數(shù)據(jù)進(jìn)行加工處理,讓學(xué)生掌握算法設(shè)計的能力。
在課后,要結(jié)合本周的教學(xué)內(nèi)容,精心設(shè)計若干個任務(wù),要求學(xué)生按時完成,同時考慮到學(xué)生的個體差異性,應(yīng)該有針對性的給不同的學(xué)生布置不同難度的任務(wù),使學(xué)生經(jīng)過一定的努力可以實現(xiàn)任務(wù)目標(biāo),這樣可以讓學(xué)生獲得成就感,保持學(xué)習(xí)的興趣。
3.3加強(qiáng)實踐環(huán)節(jié)的訓(xùn)練
數(shù)據(jù)結(jié)構(gòu)是一門理論與實踐并重的課程,為了讓學(xué)生具備解決實際問題的能力,該門課程的實踐環(huán)節(jié)安排設(shè)計成三個不同難度的階段,分別是驗證性實驗、設(shè)計性實驗、項目合作。首先通過驗證陛實驗,讓學(xué)生理解和掌握書上的基礎(chǔ)知識和經(jīng)典算法,鍛煉學(xué)生的上機(jī)調(diào)試程序的能力,在這個基礎(chǔ)上,通過對基礎(chǔ)算法的靈活應(yīng)用完成設(shè)計性實驗,進(jìn)一步訓(xùn)練學(xué)生的計算思維能力,最后,以解決實際問題為目標(biāo),學(xué)生以小組的形式分工合作完成一個適當(dāng)規(guī)模的項目,達(dá)到鍛煉學(xué)生分析解決問題,設(shè)計算法的能力。
3.4完善考核評價體系
建立多方位、立體的考核評價體系,將課程考核貫穿整個教學(xué)過程,不再一考定成績,加強(qiáng)教學(xué)過程監(jiān)督管理,以任務(wù)驅(qū)動的方式督促學(xué)生學(xué)習(xí)的積極性,以現(xiàn)場答辯的方式取代提交紙質(zhì)報告,并作為平時成績的考核依據(jù),這種方式能更真實地反映出學(xué)生的學(xué)習(xí)狀況,在期末考試中,采用筆試+上機(jī)的考試模式,除了傳統(tǒng)的選擇、填空、設(shè)計等筆試題型,在上機(jī)考試中考察學(xué)生的改錯、調(diào)試、編程的能力,這樣有助于改善學(xué)生死記硬背,重理論輕實踐的學(xué)習(xí)態(tài)度。
4結(jié)束語
綜上所述,數(shù)據(jù)結(jié)構(gòu)是計算機(jī)本科教育的核心基礎(chǔ)課程,由于其內(nèi)容抽象,邏輯性較強(qiáng),算法有難度,在實際教學(xué)過程中存在一定難度。本文詳細(xì)分析了一些常見的問題,并提出了針對性的解決方法,可以提高學(xué)生的學(xué)習(xí)興趣,培養(yǎng)學(xué)生的計算思維能力,提高學(xué)生分析問題、解決問題的能力,真正為社會培養(yǎng)出高質(zhì)量的計算機(jī)專業(yè)人才。