胡章平
(重慶文理學(xué)院軟件工程學(xué)院,重慶 永川 402160)
為了進一步深化重慶文理學(xué)院教育教學(xué)改革,探索應(yīng)用型人才培養(yǎng)規(guī)律,重慶文理學(xué)院實施了新一輪人才培養(yǎng)方案,配合學(xué)分制改革試點,明確學(xué)校今后教學(xué)研究與改革的范圍及方向,推動學(xué)校教育教學(xué)改革,提高學(xué)校教育教學(xué)質(zhì)量水平.其中,對于應(yīng)用型學(xué)生的培養(yǎng),探索學(xué)生實踐教學(xué)的新途徑和新方法是至關(guān)重要的一個環(huán)節(jié)[1].
《數(shù)據(jù)結(jié)構(gòu)》是計算機專業(yè)的一門重要專業(yè)基礎(chǔ)課.本課程的目的是使學(xué)生了解數(shù)據(jù)對象的特性,學(xué)會數(shù)據(jù)組織的方法,掌握現(xiàn)實世界中的問題如何在計算機內(nèi)部表示的方法,培養(yǎng)學(xué)生基本、良好的程序設(shè)計技能.學(xué)生在初步掌握計算機基本知識并學(xué)會使用一種計算機語言的基礎(chǔ)上,學(xué)習(xí)了數(shù)據(jù)結(jié)構(gòu)之后,能夠結(jié)合實際問題有意識地選取合適的數(shù)據(jù)結(jié)構(gòu)和正確的算法,設(shè)計出更合理、運行效率更高的程序.在理解基本概念的基礎(chǔ)上,掌握設(shè)計數(shù)據(jù)結(jié)構(gòu)與算法的主要原理和方法;研究解決常用問題的經(jīng)典算法,以提高學(xué)生使用計算機解決問題的能力[2].如何提高學(xué)生的抽象思維能力和程序設(shè)計的能力,培養(yǎng)學(xué)生對該門課程的興趣,是《數(shù)據(jù)結(jié)構(gòu)》教學(xué)改革中應(yīng)該探索和研究的問題.
這門課程教學(xué)要求相對比較高,不但要求學(xué)生掌握數(shù)據(jù)結(jié)構(gòu)的基本概念,而且還要在此基礎(chǔ)上用程序設(shè)計語言進行算法描述及分析.因此,要求學(xué)生有較為扎實的數(shù)學(xué)基礎(chǔ)和較強的邏輯推理能力,而且還要具備一定的分析能力和動手能力.
數(shù)據(jù)結(jié)構(gòu)中涉及到大量的概念、模型及操作算法,都較為抽象,學(xué)生理解起來有一定的困難,教師教學(xué)難度也比較大.
學(xué)生對描述算法的程序語言掌握得不夠好.現(xiàn)在,部分?jǐn)?shù)據(jù)結(jié)構(gòu)的教材采用的是C語言描述算法,在剛剛學(xué)完C語言的基礎(chǔ)上,大部分同學(xué)對結(jié)構(gòu)體、指針、鏈表等知識點掌握得都不夠深入.因為學(xué)生沒有扎實的程序設(shè)計語言的基礎(chǔ),導(dǎo)致不能獨立完成數(shù)據(jù)結(jié)構(gòu)的實驗,因此學(xué)生對這門課程便逐漸失去了學(xué)習(xí)興趣.
大學(xué)課堂應(yīng)該注重兩個方面的內(nèi)容講授:一是具體知識內(nèi)容,二是科學(xué)的思維方法.如果采用科學(xué)的教學(xué)方法,教師所傳授的知識便易于被學(xué)生有效吸收,同時其解決問題的思想方法也容易被學(xué)生所吸納并轉(zhuǎn)變?yōu)橐环N潛在的能力.思維方法在學(xué)生創(chuàng)造力培養(yǎng)方面起著主導(dǎo)作用,而學(xué)生對這些方法的掌握,需要通過教師的具體教學(xué)方法來引導(dǎo).
對于《數(shù)據(jù)結(jié)構(gòu)》中的許多抽象概念和算法,以教師為中心的教學(xué)模式起不到很好的效果[3].學(xué)生只是一味被動地接收知識,而這些知識有什么用、該怎么用都不清楚.因此,在教學(xué)過程中,應(yīng)始終圍繞問題而展開教學(xué)活動,引導(dǎo)學(xué)生不斷發(fā)現(xiàn)問題、分析問題并最終解決問題,以培養(yǎng)學(xué)生的創(chuàng)造性思維.故應(yīng)在教學(xué)中采用以學(xué)生為主體、以問題為中心的教學(xué)模式,充分調(diào)動學(xué)生的求知欲,提高他們的積極性和主動性.
因此,在教學(xué)過程中,教師應(yīng)結(jié)合每個章節(jié)的情況采用不同的教學(xué)方法,避免只注重概念不注重應(yīng)用的純知識灌輸式教學(xué),而應(yīng)采用啟發(fā)式、案例式等教學(xué)方法,引導(dǎo)學(xué)生去思考問題并解決問題.
當(dāng)前,國內(nèi)幾乎所有高等院校都開設(shè)有計算機專業(yè),但通常只注重學(xué)生計算機基礎(chǔ)理論的培養(yǎng),缺乏實踐訓(xùn)練,導(dǎo)致學(xué)生畢業(yè)后無法滿足企業(yè)的實際要求[4].《數(shù)據(jù)結(jié)構(gòu)》是一門理論性和實踐性很強的課程,它需要理論教學(xué)的結(jié)果來指導(dǎo)實驗教學(xué)的過程,更需要實驗教學(xué)的過程來強化理論教學(xué)的效果,因此,實驗教學(xué)是培養(yǎng)學(xué)生動手解決實際問題的能力的關(guān)鍵途徑[5].
要完成數(shù)據(jù)結(jié)構(gòu)課程要求的實驗?zāi)繕?biāo),需要學(xué)生有較好的程序設(shè)計基礎(chǔ),程序語言基礎(chǔ)是提高實踐教學(xué)效果的關(guān)鍵因素.C語言是廣泛使用的算法描述語言之一,而要實現(xiàn)一些較綜合的實驗題目,需要學(xué)生能靈活運用指針、結(jié)構(gòu)體等知識.因此,從2011屆開始,重慶文理學(xué)院在制定人才培養(yǎng)方案時增加了24學(xué)時來學(xué)習(xí)C語言的指針、結(jié)構(gòu)體、文件等部分,將更好地保證數(shù)據(jù)結(jié)構(gòu)的實驗教學(xué)效果.
其次,在制定考核評價方式時應(yīng)加重實驗成績在期末總成績中的比例.目前,實驗成績在期末總成績中只占10﹪~20﹪,導(dǎo)致學(xué)生對實驗過程不夠重視.考核評價方式一定程度上能對學(xué)生的學(xué)習(xí)起到一個引導(dǎo)作用,因此,如果增加實驗成績在期末總成績中的比例,將更能引起學(xué)生對該課程中實踐部分的重視.
數(shù)據(jù)結(jié)構(gòu)的研究內(nèi)容包括邏輯結(jié)構(gòu)、物理結(jié)構(gòu)(存儲結(jié)構(gòu))和運算等三個方面.數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)之間的邏輯關(guān)系,主要有四種基本結(jié)構(gòu):集合(在數(shù)據(jù)結(jié)構(gòu)課程中一般不討論)、線性結(jié)構(gòu)、樹形結(jié)構(gòu)和圖狀結(jié)構(gòu);數(shù)據(jù)的存儲結(jié)構(gòu)主要包括順序、鏈?zhǔn)降确绞?數(shù)據(jù)的基本運算有查找、插入、刪除、更新等.數(shù)據(jù)結(jié)構(gòu)課程的主要內(nèi)容如圖1所示.在教學(xué)過程中,教師要注意承前啟后,善于總結(jié),把內(nèi)容前后串起來,從而有利于學(xué)生對知識的理解和掌握;還要把握其內(nèi)在聯(lián)系,注重有關(guān)內(nèi)容的前后呼應(yīng),對各種不同的數(shù)據(jù)結(jié)構(gòu)的特點與操作,適時進行相應(yīng)的歸納、總結(jié)與對比.
圖1 數(shù)據(jù)結(jié)構(gòu)主要內(nèi)容
首先,在緒論部分,一定要讓學(xué)生搞清楚抽象數(shù)據(jù)類型的概念、實現(xiàn)方法和為什么要進行抽象類型定義.因為不管是線性表、棧、隊列,還是樹和圖,都要對它們進行抽象定義.抽象數(shù)據(jù)類型是學(xué)好數(shù)據(jù)結(jié)構(gòu)的一個理論基礎(chǔ).然后我們沿邏輯結(jié)構(gòu)這條主線展開,循序漸進,由淺入深地讓學(xué)生從理論上弄清各種數(shù)據(jù)結(jié)構(gòu)的邏輯關(guān)系.在講解每種結(jié)構(gòu)時,先講邏輯結(jié)構(gòu),再講存儲結(jié)構(gòu),最后講運算.在學(xué)習(xí)查找和排序兩種操作時,對多種查找和排序的方法進行類比和對比教學(xué),并且先講實例再講思想,最后講算法,讓學(xué)生在真正弄清楚每一種方法的基礎(chǔ)上,在解決實際問題時能根據(jù)情況去選擇合適的最優(yōu)的方法.
總之,在教學(xué)時應(yīng)注意知識點的橫向和縱向的聯(lián)系和比較.比如,線性結(jié)構(gòu)中線性表、棧、隊列應(yīng)進行邏輯結(jié)構(gòu)的比較,它們在存儲時的相同點和不同點也應(yīng)進行比較;以線性結(jié)構(gòu)為基礎(chǔ),在后面學(xué)習(xí)樹和圖時再與此進行比較,以促進學(xué)生對知識點的整體把握.
興趣是最好的老師.如果不注意教學(xué)的生動性,學(xué)生的學(xué)習(xí)只能是一種被動的行為,為了考試而學(xué)習(xí),將起不到應(yīng)有的教學(xué)效果.激發(fā)學(xué)生的學(xué)習(xí)興趣的有效方法就是要變被動學(xué)習(xí)為主動學(xué)習(xí).在理論教學(xué)時,可以針對教學(xué)內(nèi)容設(shè)計一系列課堂討論題目,組織學(xué)生進行課堂討論.另外,在講每一種數(shù)據(jù)結(jié)構(gòu)的應(yīng)用時,可以結(jié)合生活中的具體實例.比如,用“迷宮問題”等可以幫助學(xué)生理解數(shù)組、遞歸及回溯問題[6];用“猜數(shù)字游戲”解決二分查找問題.在講圖的最小生成樹、最短路徑時,可以讓學(xué)生具體去采集一些身邊的數(shù)據(jù),然后再畫圖、編程、運行程序等.在實驗教學(xué)時,也應(yīng)該緊密結(jié)合理論知識,找一些實際案例讓學(xué)生完成編程.比如:鏈表部分的約瑟夫環(huán),隊列部分的停車場問題、病人就醫(yī)問題等.但也應(yīng)注意一個原則,就是要注意難易程度的把握.如果難度太低,達不到提高編程能力的目的;如果難度太高,學(xué)生望而卻步根本做不出來,打擊其學(xué)習(xí)積極性.總之,在教學(xué)過程中要特別重視學(xué)生學(xué)習(xí)興趣的培養(yǎng),只有學(xué)習(xí)興趣提高了,才能提高學(xué)生的學(xué)習(xí)自覺性,以保證達到好的教學(xué)效果.
本課程要求學(xué)生學(xué)會數(shù)據(jù)組織的方法,運用求解問題的策略設(shè)計算法;能夠結(jié)合實際問題選取合適的數(shù)據(jù)結(jié)構(gòu)和算法,設(shè)計出更合理、運行效率更高的程序;運用算法復(fù)雜性理論分析所設(shè)計算法的時間和空間效率.在教學(xué)中除了強化實踐、提高學(xué)生軟件設(shè)計的綜合能力外,還應(yīng)在教學(xué)中培養(yǎng)學(xué)生的學(xué)習(xí)主動性,培養(yǎng)學(xué)生的學(xué)習(xí)興趣,以提高學(xué)生的實踐應(yīng)用能力.
[1]馬新強,黃羿.應(yīng)用型本科院校計算機專業(yè)學(xué)生實踐能力培養(yǎng)研究[J].重慶文理學(xué)院學(xué)報:自然科學(xué)版,2011,30(6):78 - 80.
[2]周海巖,陳宏明,殷路.《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)的思考[J].教育理論與實踐,2010,30(6):62 -63.
[3]賈慶節(jié),栗紅生.數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革與探索[J].中國成人教育,2009(22):152-153.
[4]王瑞胡,羅代忠,張蓮.應(yīng)用型本科院校計算機專業(yè)引入北大青鳥Aptech課程體系的實踐研究[J].職業(yè)技術(shù)教育,2010,31(11):26 -28.
[5]彭聲澤,李瓊.培養(yǎng)計算機專業(yè)學(xué)生實踐創(chuàng)新能力的探索[J].計算機教育,2007(7):60-63.
[6]馬秋菊,孔小利,馬曉晨.加強《數(shù)據(jù)結(jié)構(gòu)》課程建設(shè)培養(yǎng)學(xué)生應(yīng)用與創(chuàng)新能力[J].石油教育,2004(5):72-74.