摘要:數(shù)據(jù)結(jié)構(gòu)課程是計(jì)算機(jī)程序設(shè)計(jì)的重要基礎(chǔ)課程,但現(xiàn)在的教學(xué)過程中存在著若干問題,影響了該門課程的教學(xué)效果。本文從教學(xué)實(shí)踐出發(fā),提出了一些“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)中存在的問題,并針對這些問題提出了相應(yīng)的改革措施。
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);教學(xué);改革
中圖分類號:G642文獻(xiàn)標(biāo)識碼:B
文章編號:1672-5913(2007)16-0038-02
“數(shù)據(jù)結(jié)構(gòu)”課程是計(jì)算機(jī)程序設(shè)計(jì)的重要基礎(chǔ)課程,它不僅是計(jì)算機(jī)專業(yè)的核心課程,而且已成為許多高校信息類相關(guān)專業(yè)的重要課程,是設(shè)計(jì)和實(shí)現(xiàn)編譯程序、操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)及其它系統(tǒng)程序和大型應(yīng)用程序的重要基礎(chǔ)。本課程要求學(xué)生學(xué)會分析計(jì)算機(jī)所加工數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)特性,為程序設(shè)計(jì)涉及的數(shù)據(jù)選擇適當(dāng)?shù)倪壿嫿Y(jié)構(gòu)、存儲結(jié)構(gòu)及相應(yīng)的算法,并初步掌握算法的時(shí)間效率分析和空間效率分析的技術(shù)。同時(shí),本課程的學(xué)習(xí)過程也是復(fù)雜程序設(shè)計(jì)的訓(xùn)練過程,要求學(xué)生編寫的程序結(jié)構(gòu)清楚、正確易讀,要符合軟件工程的規(guī)范,目的是培養(yǎng)學(xué)生的數(shù)據(jù)抽象能力。學(xué)生對本課程的學(xué)習(xí)效果直接影響到學(xué)生數(shù)據(jù)抽象能力和程序設(shè)計(jì)能力的培養(yǎng)。但現(xiàn)在的教學(xué)過程中存在著若干問題,影響了該門課程的教學(xué)效果。本文從教學(xué)實(shí)踐出發(fā),提出了一些“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)中存在的問題,并針對這些問題提出了相應(yīng)的改革措施。
1 “數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)中存在的突出問題
學(xué)生的學(xué)習(xí)興趣不高。在教學(xué)中,學(xué)生剛接觸到“數(shù)據(jù)結(jié)構(gòu)”課程時(shí),總認(rèn)為“數(shù)據(jù)結(jié)構(gòu)”是一門理論課,感到枯燥、乏味,學(xué)習(xí)興趣不濃,甚至有學(xué)生認(rèn)為不學(xué)數(shù)據(jù)結(jié)構(gòu)照樣能編出程序。數(shù)據(jù)結(jié)構(gòu)是門理論性與實(shí)踐性并重的課程,注重培養(yǎng)學(xué)生利用理論知識解決具體問題的能力的培養(yǎng)。如果僅僅滿足于講解清楚,而不注意教學(xué)的生動性,學(xué)生的學(xué)習(xí)行為只能是種被動行為,為了考試而學(xué)習(xí)。最后導(dǎo)致學(xué)生死記硬背課堂講解的知識點(diǎn),把一門實(shí)踐性很強(qiáng)的課程變成了一門內(nèi)容枯燥、乏味,需要大量記憶知識點(diǎn),與實(shí)踐完全脫鉤的課程。
學(xué)生程序設(shè)計(jì)能力不足。學(xué)生在學(xué)習(xí)“數(shù)據(jù)結(jié)構(gòu)”課程時(shí),由于其前導(dǎo)課程掌握不好或沒能熟練掌握(高級程序設(shè)計(jì)語言或面向?qū)ο蟪绦蛟O(shè)計(jì)),導(dǎo)致學(xué)習(xí)“數(shù)據(jù)結(jié)構(gòu)”課程時(shí)感覺很困難。數(shù)據(jù)結(jié)構(gòu)中的算法多數(shù)由類C或C++實(shí)現(xiàn),在學(xué)數(shù)據(jù)結(jié)構(gòu)之前,應(yīng)該已經(jīng)系統(tǒng)的學(xué)習(xí)過C和C++的相關(guān)知識。但由于學(xué)生剛剛開始接觸程序設(shè)計(jì)語言,對計(jì)算機(jī)語言的許多約定理解得不是很透徹,用計(jì)算機(jī)解決問題不可能得心應(yīng)手,程序設(shè)計(jì)水平有待進(jìn)一步提高。對類C、類C++語言描述的高度抽象的算法理解困難,算法思路有,但編制程序又無從下手,不能熟練地用程序設(shè)計(jì)語言描述出來。
傳統(tǒng)教學(xué)模式限制課堂教學(xué)效果。在“數(shù)據(jù)結(jié)構(gòu)”課程的教學(xué)過程中,長期以來,我們遵循以教師為主體,學(xué)生被動學(xué)習(xí)的傳統(tǒng)教學(xué)模式。教學(xué)過程嚴(yán)格按照教學(xué)日歷、教學(xué)大綱和教學(xué)進(jìn)度來組織進(jìn)行。在整個的教學(xué)過程中學(xué)生被動地接受知識,教師很少考慮學(xué)生的需要、情感、態(tài)度和價(jià)值觀。對于數(shù)據(jù)結(jié)構(gòu)這樣一門概念、算法繁多,需要較強(qiáng)邏輯思維能力的課程仍采取傳統(tǒng)教學(xué)模式,就很難取得良好的教學(xué)效果和達(dá)到預(yù)期的教學(xué)目的。在教學(xué)活動中,學(xué)生容易對課程學(xué)習(xí)的意義產(chǎn)生懷疑,失去學(xué)習(xí)方向,學(xué)習(xí)的興趣和主動性逐漸減退,最后變成機(jī)械式地聽課、作筆記、上機(jī)實(shí)踐。
理論教學(xué)與實(shí)際應(yīng)用脫節(jié)?!皵?shù)據(jù)結(jié)構(gòu)”課程內(nèi)容抽象、瑣碎、龐雜,涉及很多概念和技術(shù)。所有這此內(nèi)容均自成體系,相互之間的銜接線索很少,總體感覺內(nèi)容零散,沒有個整體的知識框架體系。這些內(nèi)容在實(shí)際應(yīng)用中又都很重要,而現(xiàn)行的教學(xué)計(jì)劃實(shí)踐課時(shí)普遍不足,實(shí)驗(yàn)課安排的實(shí)驗(yàn)項(xiàng)目很難含蓋課程的所有知識點(diǎn)。同時(shí)實(shí)驗(yàn)內(nèi)容的設(shè)置上,往往都是大量的驗(yàn)證性實(shí)驗(yàn)內(nèi)容,缺乏對實(shí)際問題的解決,學(xué)生在實(shí)驗(yàn)之后仍然不知道學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)在解決實(shí)際問題的時(shí)候能對編程有什么指導(dǎo)意義。
教學(xué)手段單一。數(shù)據(jù)結(jié)構(gòu)中有些算法的演示利用傳統(tǒng)的粉筆加黑板的教學(xué)方式,缺乏直觀性效果,難以充分展示算法的動態(tài)變化過程,學(xué)生難以想象數(shù)據(jù)之間的復(fù)雜關(guān)系。近年來,數(shù)據(jù)結(jié)構(gòu)的教學(xué)已經(jīng)大量采用多媒體教學(xué),但是采用簡單的PPT,仍然不能很好的解決這樣的問題,且存在多媒體授課信息量大,學(xué)生聽課時(shí)強(qiáng)度大,理解困難,嚴(yán)重影響了教學(xué)效果。
2 “數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)的改革措施
注重培養(yǎng)學(xué)生的學(xué)習(xí)興趣。興趣是最好的老師,只有學(xué)生對“數(shù)據(jù)結(jié)構(gòu)”課程的產(chǎn)生了興趣,才能夠變被動學(xué)習(xí)為主動學(xué)習(xí),取得事半功倍的教學(xué)效果。在教學(xué)的過程中,首先不要講枯燥、乏味的理論,使學(xué)生對該課程產(chǎn)生恐懼心理,而應(yīng)該從實(shí)際應(yīng)用出發(fā),通過實(shí)際問題的分析,明確數(shù)據(jù)結(jié)構(gòu)課程的重要性與實(shí)用性,激發(fā)學(xué)生學(xué)習(xí)興趣。同時(shí)可以在實(shí)踐環(huán)節(jié)安排學(xué)生利用數(shù)據(jù)結(jié)構(gòu)的知識與理論,開發(fā)一些學(xué)生感興趣的小程序,比如利用堆棧的原理開發(fā)迷宮求解的程序;還可以建立學(xué)習(xí)討論組,結(jié)合數(shù)據(jù)結(jié)構(gòu)課程的知識來求解一些實(shí)際問題。通過實(shí)踐進(jìn)一步激發(fā)學(xué)生的學(xué)習(xí)興趣。
教學(xué)中穿插復(fù)習(xí)前導(dǎo)課程的教學(xué)內(nèi)容?!皵?shù)據(jù)結(jié)構(gòu)”課程是在學(xué)生有一定的程序設(shè)計(jì)基礎(chǔ)的前提下開設(shè)的,“數(shù)據(jù)結(jié)構(gòu)”課程最大的特點(diǎn)是以算法為教學(xué)模塊。基于C語言的數(shù)據(jù)結(jié)構(gòu),一個算法對應(yīng)一個函數(shù),這樣做的目的是為了擺脫源程序的繁瑣,以便將精力集中在算法思想上。所以在大部分教材中,幾乎看不到一個完整的程序,也正是這個原因,給初學(xué)者帶來了很大的不便。首先,C語言本身很靈活,對剛剛學(xué)完程序設(shè)計(jì)的學(xué)生運(yùn)用不一定很自如。其次,C語言難點(diǎn)就是指針、函數(shù)、地址做函數(shù)參數(shù)、結(jié)構(gòu)體等,而“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)過程中恰好用到這些知識點(diǎn),教材上所見的全是C語言函數(shù),上機(jī)試驗(yàn)要得到完整無錯的源程序,這就要求學(xué)生對C語言握得非常熟練,而此時(shí)學(xué)生的程序設(shè)計(jì)語言運(yùn)用能力又不是很強(qiáng),所以在開始的時(shí)候需要用一兩個課時(shí)復(fù)習(xí)一下C語言的相關(guān)知識,如數(shù)組、指針、函數(shù)(特別是指針做函數(shù)參數(shù))、結(jié)構(gòu)體等。然后,對剛進(jìn)入本課程學(xué)習(xí)的前幾個算法給出完整的程序,并加以詳細(xì)講解,使學(xué)生理解算法和源程序之間的關(guān)系。
建立以學(xué)生為主體的教學(xué)模式。在數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)過程中,教師除了講解基本的理論知識外,還要注意引導(dǎo)學(xué)生去分析問題、抓住本質(zhì)、組織數(shù)據(jù)、設(shè)計(jì)算法、解決問題,并且要求學(xué)生能舉一反三,觸類旁通,從而培養(yǎng)學(xué)生的綜合能力。采用問題驅(qū)動教學(xué)法,問題驅(qū)動是指學(xué)生在教師創(chuàng)設(shè)的情景下,應(yīng)用已學(xué)知識提出相關(guān)問題,繼而解決問題的過程。它要求教師在理論教學(xué)過程,采用發(fā)現(xiàn)學(xué)習(xí)模式,應(yīng)用啟發(fā)教學(xué)方法,提出與所學(xué)理論相關(guān)問題,要求學(xué)生思考解答,并逐步引導(dǎo)學(xué)生解決問題,培養(yǎng)學(xué)生解決實(shí)際問題的能力。
注重實(shí)踐教學(xué)環(huán)節(jié)?!皵?shù)據(jù)結(jié)構(gòu)”課程有很強(qiáng)的實(shí)踐性,注重培養(yǎng)學(xué)生利用理論知識解決具體問題的能力的培養(yǎng)。如果僅僅滿足于講解清楚,是遠(yuǎn)遠(yuǎn)不夠的,應(yīng)適當(dāng)調(diào)整教學(xué)計(jì)劃,加強(qiáng)實(shí)踐環(huán)節(jié),有條件的情況下,可以單開實(shí)驗(yàn)課。學(xué)生在“數(shù)據(jù)結(jié)構(gòu)”課程的學(xué)習(xí)過程中,比較困惑的是理論不能和實(shí)踐相結(jié)合,不知道學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)能做什么。所以在課程講述中,除了要求學(xué)生上機(jī)實(shí)現(xiàn)基本算法外,還要完成一定數(shù)量較大的典型程序,同時(shí)給學(xué)生以大量的實(shí)例,提高學(xué)生解決實(shí)際問題的能力。
采用多種教學(xué)手段。為了讓學(xué)生在有限的時(shí)間內(nèi)更好的掌握知識,可以采用融合了多媒體技術(shù)的計(jì)算機(jī)輔助教學(xué)(CAI)。CAI作為現(xiàn)代多媒體技術(shù)的應(yīng)用,是常規(guī)教學(xué)手段的重要補(bǔ)充,在教學(xué)中起到了不同于其它教學(xué)手段的獨(dú)特作用。那些在傳統(tǒng)教學(xué)中用語言和板書難以表述、學(xué)生難以理解的抽象內(nèi)容和復(fù)雜的變化過程,CAI均可以通過模擬、人機(jī)交互手段很好地解決,并且可以優(yōu)化過程和授課時(shí)間,使課程的教學(xué)質(zhì)量達(dá)到一個新的境界。尤其是通過CAI課件,可以使教學(xué)內(nèi)容變得個性化,更形象、直觀、生動和有趣,從而取得較好的教學(xué)效果。因此,運(yùn)用這種現(xiàn)代化的教學(xué)手段,改善課堂教學(xué)中的不足,已成為教學(xué)方法改革的方向。我們在利用CA1與網(wǎng)絡(luò)作為計(jì)算機(jī)輔助教學(xué)時(shí),不能為了形象、直觀和生動而削弱通過形式化教學(xué)方法進(jìn)行邏輯推理抽象思維的教學(xué)。雖然CAI在教學(xué)環(huán)節(jié)上程度不同的發(fā)揮了作用,但不能完全取代教師教學(xué)過程中的重要作用。只有使它與本課程的課程體系、教學(xué)內(nèi)容、教學(xué)方法等有機(jī)結(jié)合,才能發(fā)揮最佳效益。
利用計(jì)算機(jī)網(wǎng)絡(luò)構(gòu)建教學(xué)支持平臺。充分發(fā)揮校園網(wǎng)的作用,利用計(jì)算機(jī)網(wǎng)絡(luò)輔助教學(xué),將“數(shù)據(jù)結(jié)構(gòu)”的教案、課件以及相應(yīng)的教學(xué)資料,進(jìn)行匯集整理,逐步積累,最終集成一個資料豐富的網(wǎng)站,放在校園網(wǎng)上師生共享,形成一種全新的教學(xué)模式,因材施教,以便充分發(fā)揮學(xué)生的學(xué)習(xí)積極性和主觀能動性。另外也可以設(shè)立輔導(dǎo)答疑時(shí)間,利用網(wǎng)絡(luò)進(jìn)行答疑,解決同學(xué)們在課余時(shí)間遇到的問題。
注重備課的質(zhì)量。教育實(shí)踐證明,教師的知識越豐富、越深厚,就越能在教學(xué)過程中把知識教活,避免“照本宣科”的現(xiàn)象。才能指導(dǎo)學(xué)生靈活地運(yùn)用知識,才能正確地處理教材,把道理講得通俗易懂。再加上“數(shù)據(jù)結(jié)構(gòu)”本身的特點(diǎn),如果照本宣科,學(xué)生很難理解,由此很可能導(dǎo)致學(xué)習(xí)興趣不濃。因此,必須認(rèn)真?zhèn)湔n。在備課中要查閱大量的參考資料,對每個概念、原理做到深刻理解,然后用學(xué)生能夠接受的方式簡明扼要地去介紹。從而起到分散難點(diǎn)、化難為易的效果。
3結(jié)束語
總之,“數(shù)據(jù)結(jié)構(gòu)”課程的教學(xué)是一個復(fù)雜的系統(tǒng)工程,具有鮮明的特點(diǎn),不能單純依靠簡單的模式和手段就能搞好,必須依靠各教學(xué)環(huán)節(jié)的不斷協(xié)調(diào)與配合,采用系統(tǒng)科學(xué)的方法來提高“數(shù)據(jù)結(jié)構(gòu)”課程的教學(xué)質(zhì)量。
參考文獻(xiàn):
[1] 嚴(yán)蔚敏,吳偉民.?dāng)?shù)據(jù)結(jié)構(gòu)(C語言版)[M].北京:清華大學(xué)出版社,1997.
[2] 朱戰(zhàn)立.?dāng)?shù)據(jù)結(jié)構(gòu)[M].北京:高等教育出版社,2004.
[3] 徐孝凱.?dāng)?shù)據(jù)結(jié)構(gòu)實(shí)用教程[M].北京:清華大學(xué)出版社,1999.
[4] 殷人昆.,陶永雷.?dāng)?shù)據(jù)結(jié)構(gòu)[M].北京:清華大學(xué)出版社,1999.
投稿日期:2007-5-24
作者簡介:黃現(xiàn)代,男,陜西理工學(xué)院數(shù)學(xué)系教師。研究方向?yàn)樗惴ㄔO(shè)計(jì)與分析。
通信地址:陜西省漢中市漢臺區(qū)陜西理工學(xué)院數(shù)學(xué)系郵編723001