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