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