程波 熊江
摘要:本文以重慶三峽學(xué)院在基于C語言數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革中的探索和實踐為例,介紹了面向應(yīng)用型本科院校的數(shù)據(jù)結(jié)構(gòu)課程教學(xué)存在的問題,提出了一系列教學(xué)方法改進(jìn)策略。通過多年教學(xué)實踐表明,這些舉措在培養(yǎng)學(xué)生分析解決問題的能力和增強(qiáng)學(xué)生實際應(yīng)用及操作能力方面,取得了良好的教學(xué)效果。
關(guān)鍵詞:應(yīng)用型本科;數(shù)據(jù)結(jié)構(gòu);教學(xué)方法;教學(xué)改革
中圖分類號:G642.41 ? ? 文獻(xiàn)標(biāo)志碼:A ? ? 文章編號:1674-9324(2015)35-0159-02
數(shù)據(jù)結(jié)構(gòu)是一門理論性、實踐性并重的計算機(jī)專業(yè)核心基礎(chǔ)課程,在計算機(jī)課程體系中處于承上啟下的地位[1]。圖1展示了數(shù)據(jù)結(jié)構(gòu)與計算機(jī)其他課程的關(guān)系,以及在計算機(jī)課程體系中的地位。通過數(shù)據(jù)結(jié)構(gòu)這一門課程,一方面培養(yǎng)學(xué)生算法設(shè)計基本能力,另一方面是要重點培養(yǎng)學(xué)生養(yǎng)成按照計算機(jī)思維方式分析問題,解決問題,為培養(yǎng)軟件開發(fā)綜合能力打好基礎(chǔ)。由于應(yīng)用型本科院校的特殊性,培養(yǎng)學(xué)生應(yīng)用、實踐能力是本科教學(xué)的目標(biāo),如果單純采用傳統(tǒng)課堂教學(xué)方式,很難培養(yǎng)學(xué)生的這些能力。又加之?dāng)?shù)據(jù)結(jié)構(gòu)課程內(nèi)容本身晦澀難懂,課堂教學(xué)效果往往不盡人意,學(xué)生也不易理解大多數(shù)算法原理,長此以往,學(xué)生逐漸失去學(xué)習(xí)興趣[2]。因此,本文針對應(yīng)用型本科院校的特殊性,尋找當(dāng)前數(shù)據(jù)結(jié)構(gòu)教學(xué)方法的缺陷,探索一種理論實踐相結(jié)合的,培養(yǎng)學(xué)生算法分析設(shè)計能力的教學(xué)方法。
一、數(shù)據(jù)結(jié)構(gòu)課程教學(xué)中存在的問題
數(shù)據(jù)結(jié)構(gòu)課程是計算機(jī)科學(xué)與技術(shù)、軟件工程、互聯(lián)網(wǎng)工程、信息管理與信息系統(tǒng)等專業(yè)的核心課程,很多院校都把它作為專業(yè)必修課。在實際教學(xué)過程中,由于該課程的理論抽象、復(fù)雜,學(xué)生動手編寫算法能力不足,傳統(tǒng)的教學(xué)方法已經(jīng)不能適應(yīng)于應(yīng)用型人才的培養(yǎng)目標(biāo)[3]。具體來講,當(dāng)前數(shù)據(jù)結(jié)構(gòu)課程教學(xué)中存在以下幾個方面的問題。
1.學(xué)生對學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)所需的預(yù)備知識掌握不牢。其中,C語言程序設(shè)計是數(shù)據(jù)結(jié)構(gòu)重要的先修課程之一。然而,經(jīng)過多年的教學(xué)實際情況表明,大多數(shù)學(xué)生的C語言學(xué)習(xí)效果不佳。主要體現(xiàn)在數(shù)據(jù)結(jié)構(gòu)中,從線性表開始,都會廣泛使用結(jié)構(gòu)體這一數(shù)據(jù)類型,而結(jié)構(gòu)體在C語言的教學(xué)中,很多教材往往出現(xiàn)在最后的幾個章節(jié),多數(shù)老師也不會重點講解這一部分內(nèi)容,也有的老師根本不講。此外,C語言中函數(shù)和指針方面的知識,掌握情況也很差。因此,這些先導(dǎo)知識與技能的儲備不足,直接導(dǎo)致大多數(shù)學(xué)生一開始接觸數(shù)據(jù)結(jié)構(gòu)就迷惑,從而失去學(xué)習(xí)動力。
2.單一的課堂理論教學(xué)不能充分培養(yǎng)學(xué)生的算法分析、設(shè)計能力。由于數(shù)據(jù)結(jié)構(gòu)很多算法理論性較強(qiáng),單一的課堂教學(xué),無法使學(xué)生理解這些算法的實際用途和理論來源。此外,大多數(shù)學(xué)生靈活應(yīng)用C語言能力不足,不能將C語言的知識儲備轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)算法分析、設(shè)計的基礎(chǔ)能力。
3.實踐能力欠缺,傳統(tǒng)只注重理論教學(xué),實驗課程安排課時比例偏小。加之,理論教學(xué)無法充分展現(xiàn)數(shù)據(jù)模型的內(nèi)在聯(lián)系,學(xué)生無法理解數(shù)據(jù)之間的各種關(guān)系。上機(jī)編寫算法能力很差,也無法體會數(shù)據(jù)結(jié)構(gòu)的實際應(yīng)用價值,失去學(xué)習(xí)興趣。
4.當(dāng)前大多數(shù)教材偏重數(shù)據(jù)結(jié)構(gòu)算法模型的講解,沒有強(qiáng)調(diào)面向?qū)嶋H應(yīng)用的價值性。面向應(yīng)用型本科院校強(qiáng)調(diào)“學(xué)以致用”,編寫實用性、趣味性的數(shù)據(jù)結(jié)構(gòu)實驗教材勢在必行。
二、案例教學(xué)法用于理論課程教學(xué)
在經(jīng)濟(jì)、管理等學(xué)科教學(xué)中,案例教學(xué)法是普遍采用的有效教學(xué)方法。合理的、趣味性強(qiáng)的案例應(yīng)用于理論教學(xué)中,十分有助于學(xué)生理解抽象復(fù)雜的理論知識,也很容易激發(fā)學(xué)生的學(xué)習(xí)興趣。因此,可以嘗試將案例教學(xué)法引入數(shù)據(jù)結(jié)構(gòu)的課堂理論教學(xué)中,改善現(xiàn)有教學(xué)方式,提高課堂理論教學(xué)的趣味性。但是,如何尋找合理的、趣味性強(qiáng)的案例是案例教學(xué)的首要問題。此外,如何有效利用這些案例,是改進(jìn)數(shù)據(jù)結(jié)構(gòu)教學(xué)效果的關(guān)鍵因素。
數(shù)據(jù)結(jié)構(gòu)的基本概念和算法是很抽象的,對于在校的大學(xué)生,他們從未從事過軟件開發(fā)等相關(guān)工作,結(jié)合案例,將抽象的概念實例化,為進(jìn)一步理解算法打好基礎(chǔ)。通過案例提供的情境,學(xué)生們可以從中體會數(shù)據(jù)之間的復(fù)雜關(guān)系,促進(jìn)學(xué)生思考算法的應(yīng)用性。此外,針對各個算法,開發(fā)生動、直觀的教學(xué)動畫課件,能有效幫助學(xué)生理解抽象的算法過程。動畫模擬真實場景的案例,引起了學(xué)生的關(guān)注,培養(yǎng)了學(xué)習(xí)興趣,增強(qiáng)了數(shù)據(jù)結(jié)構(gòu)理論教學(xué)的趣味性。
將案例分析同課堂討論式教學(xué)相結(jié)合,是提高學(xué)習(xí)效果的一種重要手段。對一些重要的、較復(fù)雜的算法模型,尋找一些趣味性的案例,采用提問式教學(xué),結(jié)合動畫課件教學(xué)。在課堂教學(xué)中,把學(xué)生分成若干小組,組織學(xué)生去分小組討論算法的難點,尋找算法在實際應(yīng)用中的真實案例,結(jié)合這些案例分析理解這些算法,并做好報告。這種啟發(fā)式教學(xué),能提高學(xué)生學(xué)習(xí)的主動性和參與性。在這個過程中,教師積極引導(dǎo),對算法講解深入淺出,培養(yǎng)學(xué)生學(xué)以致用、從生活中學(xué)習(xí)知識的能力。
因此,將案例教學(xué)法引入數(shù)據(jù)結(jié)構(gòu)的課堂教學(xué)是提高學(xué)生理解、分析算法,培養(yǎng)學(xué)習(xí)興趣的有效途徑。
三、項目驅(qū)動式教學(xué)用于實驗課程教學(xué)
項目驅(qū)動式教學(xué)法是一種行為引導(dǎo)式的教學(xué)形式[4],被廣泛應(yīng)用于計算機(jī)課程教學(xué)中,特別是軟件工程等課程。該教學(xué)方法是強(qiáng)調(diào)教學(xué)過程以學(xué)生的實際完成項目情況為考核目標(biāo),教師輔助引導(dǎo)學(xué)生完成項目,最后評判項目。通過分組做項目,驅(qū)動學(xué)生應(yīng)用理論知識解決實際問題,同時加深學(xué)生理解算法,發(fā)現(xiàn)算法的優(yōu)缺點,思考算法改進(jìn)的途徑。
數(shù)據(jù)結(jié)構(gòu)是一門應(yīng)用性很強(qiáng)的課程,除了課堂理論教學(xué)之外,實驗教學(xué)也很重要[5]。課程開課前,便從網(wǎng)上和熟悉的企業(yè)中廣泛收集該課程的相關(guān)項目。對于這些項目,應(yīng)該要把握難易程度。在上完數(shù)據(jù)結(jié)構(gòu)緒論章節(jié)后,把這些項目公布出來,供學(xué)生分小組選擇,這樣可以培養(yǎng)學(xué)生的團(tuán)隊合作意識,根據(jù)自己的能力選擇合適的項目。如果提供的項目列表中,沒有合適的項目,要引導(dǎo)學(xué)生尋找自己合適的、感興趣的項目。如果多個組選擇了同一個項目,教師可以組織一個項目競標(biāo)會,通過比較評分決定項目歸屬權(quán)。接下來,在教學(xué)過程中,結(jié)合項目需求進(jìn)行重點、難點知識的講解。遇到有爭議的問題,結(jié)合本組的項目,大家通過課堂討論解決問題。臨近期末時,組織學(xué)生相互驗收對方的項目,同時還組織老師團(tuán)隊驗收項目,把教師和學(xué)生驗收情況進(jìn)行對比,讓學(xué)生發(fā)現(xiàn)自己項目的問題,對于獲得優(yōu)秀評價的項目要給予獎勵。
項目驅(qū)動式教學(xué)做到了以學(xué)生為中心,教師只是提供必要的理論、技術(shù)指導(dǎo),實現(xiàn)了一切以學(xué)生為主的教學(xué)理念[6]。
四、編寫面向應(yīng)用型本科的數(shù)據(jù)結(jié)構(gòu)教材
當(dāng)前,大多數(shù)數(shù)據(jù)結(jié)構(gòu)教材都以理論闡述為主,缺少應(yīng)用性的內(nèi)容。結(jié)合現(xiàn)有優(yōu)秀數(shù)據(jù)結(jié)構(gòu)理論教材,加入相應(yīng)的案例引導(dǎo),編寫生動、直觀的動畫課件,使枯燥、難懂的數(shù)據(jù)結(jié)構(gòu)教材變得生動有趣。對于一些特殊算法,可以加入游戲等內(nèi)容,幫助學(xué)生理解算法。比如,“棧與隊列”章節(jié)中,把一些游戲算法作為引導(dǎo)案例,對于學(xué)生理解棧與隊列的基本概念和算法大有裨益。此外,在數(shù)據(jù)結(jié)構(gòu)第一章,應(yīng)該增加該課程預(yù)備知識的內(nèi)容,主要包含結(jié)構(gòu)體的概念與編程實例、指針、函數(shù)等相關(guān)內(nèi)容,同時還可以增加一些算法在實際應(yīng)用中的案例等內(nèi)容。總之,針對面向應(yīng)用型本科院校的教學(xué)要求,使數(shù)據(jù)結(jié)構(gòu)教材更加淺顯易懂、趣味生動,使學(xué)生通過教材可以自學(xué)數(shù)據(jù)結(jié)構(gòu),增加學(xué)習(xí)興趣。
五、結(jié)論
總而言之,針對面向應(yīng)用型本科院校的數(shù)據(jù)結(jié)構(gòu)課程教學(xué),我們要進(jìn)一步強(qiáng)化學(xué)生的算法設(shè)計預(yù)備基礎(chǔ)知識,編寫合適的教材。在課堂理論教學(xué)過程中增加趣味性案例教學(xué)內(nèi)容,積極探索合適的理論教學(xué)方法,培養(yǎng)學(xué)生對數(shù)據(jù)結(jié)構(gòu)算法的分析、理解能力,開發(fā)學(xué)生算法設(shè)計能力。對于實驗教學(xué),也加大投入力度,以項目驅(qū)動方式改進(jìn)傳統(tǒng)的實驗教學(xué)方法。另外,數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)方法隨著社會的需求改變而不斷變革。信息技術(shù)迅速發(fā)展,課程也需要及時調(diào)整,將最新科研成果融入到課程教學(xué)過程中,以開拓學(xué)生的視野。
參考文獻(xiàn):
[1]范莉麗,彭濤.基于C語言的數(shù)據(jù)結(jié)構(gòu)教學(xué)技巧[J].計算機(jī)教育,2011,(18):61-64.
[2]董麗薇.“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)方法的改進(jìn)[J].沈陽師范大學(xué)學(xué)報(自然科學(xué)版),2012,(30):307-309.
[3]萬書振.多聯(lián)動教學(xué)法在數(shù)據(jù)結(jié)構(gòu)教學(xué)中的應(yīng)用[J].計算機(jī)教育,2014,(23):76-79.
[4]王樹鋒,曹寶香.以實驗教學(xué)深化理論教學(xué)的數(shù)據(jù)結(jié)構(gòu)教學(xué)新模式[J].計算機(jī)教育,2014,(10):97-100.
[5]呂亞榮,繆相林.數(shù)據(jù)結(jié)構(gòu)與算法實驗教學(xué)的改革與探索[J].教育教學(xué)論壇,2014,(18):28-29.
[6]孫玉霞,李國屏,夏端峰.《數(shù)據(jù)結(jié)構(gòu)》教學(xué)初探[J].福建電腦,2011,(2):208-209.