羅艷玲 李莉
摘 要:針對目前《數(shù)據(jù)結構與算法》課程教學中教師和學生一直面臨的問題,,從培養(yǎng)學生的學習興趣和掌握算法思想出發(fā),從教學目標、教學方法、教學設計、實驗課程等幾個方面進行了全方位的思考和改進,提出了一些切實可行的教學建議。
關鍵詞:數(shù)據(jù)結構與算法;算法思想;實例化
《數(shù)據(jù)結構與算法》是計算機科學與技術專業(yè)的核心基礎課程之一,也是信息類專業(yè)如通信工程和電子信息工程專業(yè)必修的專業(yè)基礎課,對學生來說,畢業(yè)后凡是從事信息、電子、計算機等相關領域工作的,數(shù)據(jù)結構的編程思想都必不可少。但該課程的學習卻有一定難度,因為它理論性強,內容抽象,要求學習者具有較好的高級語言功底與一定的編程經(jīng)驗,還要有較好的數(shù)學功底。部分同學的先行課程《C語言》都學得磕磕絆絆,還未完全消化,再到《數(shù)據(jù)結構與算法》中需要結合算法來解決實際問題的時候,就更顯力不從心了,一旦老師再經(jīng)驗不足,過度依賴教材和課件,不能很好的把編程思路和思想傳遞給學生,“教”與“學”的雙重困難就凸顯出來了。因此,本文從理論課和實驗課兩方面,著眼于明確教學目標、合理應用教學方法、實例化教學設計等幾個方面對《數(shù)據(jù)結構與算法》課程的教學加以改進, 提高學生的學習興趣,增強學生對算法思想的理解和運用。
1 理論教學
1.1 明確教學目標
《數(shù)據(jù)結構與算法》這門課程的所有算法思想最后都會落腳到程序上,都需要用高級語言表現(xiàn)出來,老師把握不好目標,很容易把數(shù)據(jù)結構當成C語言的“延伸”和“升華”,課堂上帶領學生一個一個讀算法程序,而沒有做到讓學生去領會算法的思想。所以老師一定要明確這門課的教學目標是編程思想而不是程序本身,先有好的構思和想法,輔助語言加以實現(xiàn),每節(jié)課都要以“思想第一,實現(xiàn)第二” 為教學綱領,教學生怎么從實際問題中抽象出模型,提煉出思路,然后用程序來實現(xiàn)這個思路,最后真正的解決問題,就像古人講的“胸有成竹”,在畫竹之前,對于竹子的高度,樹干、樹枝和葉子的結構,心里要有個規(guī)劃,做到心中有數(shù),這樣畫出來的竹子才能形象。編程也一樣,先從實際問題重剝離出系統(tǒng)架構,構造出合適的模型,選擇高效率的算法,再使用高級語言把它實現(xiàn),最后再進一步處理趨向完善,使之具備客戶所需要的功能。學生要從《數(shù)據(jù)結構與算法》這門課程中掌握的就是如何從實際問題中抽象出模型、建造起架構的過程,老師只有時刻帶領學生從這個角度來著手解決問題,才能真正為該課程的教學把握好方向。
1.2 合理運用教學方法
隨著現(xiàn)代教學水平的提高,越來越多的多媒體課件和網(wǎng)絡資源被運用于教學當中,人們也對啟發(fā)式、問題探究式、課堂討論式等這些新型的教學方法趨之若鶩,或多或少的把傳統(tǒng)的教學方法冠以“落伍”和“填鴨式”等貶義色彩。但我個人認為,傳統(tǒng)的黑板加粉筆的教學方法,在《數(shù)據(jù)結構與算法》這門課程當中仍然有著舉足輕重的作用,因為PPT課件和動畫都是老師預先按照自己的思路經(jīng)過思考和摸索,多次嘗試和修改而整理出來的,對于經(jīng)驗不豐富,未曾接觸過相關知識的學生來說,直接跳出來的課件和動畫沒有給夠他們思考和整理思路的時間,冰冷的課件和學生沒有眼神、肢體語言等情感交流,無法從算法思想的角度去引領學生一步一步的剝離表象,抽離出問題的本質。所以,片面的強調新型的教學方法是不科學的,傳統(tǒng)的黑板教學也不可忽視,在傳統(tǒng)的基礎之上,一些粉筆和語言都不太容易展示的算法執(zhí)行過程,可以結合現(xiàn)代化多媒體教學手段來表現(xiàn),形象的動畫能讓抽象的內容變得更加直觀更易理解,學生也更容易被帶入其中,從而使教學過程變得更加生動形象。
所以,合理的教學方法應該是以板書為主,課件為輔,配合老師與學生的情感交流,這樣才能取得好的教學效果。
1.3 實例化教學設計
大學的學習和高中不一樣,不再簡單的以分數(shù)定乾坤,學生沒有了壓力也就沒了動力,而且大學生都各有鋒芒,有自己獨立的思想,如何調動學生對該課程的興趣,使被動學習變?yōu)橹鲃忧笾惋@得尤為重要,那如何激發(fā)學生的學習興趣呢?答案是要讓學生感覺到數(shù)據(jù)結構解決的問題其實都來源于我們的實際生活,是切切實實存在于我們周圍的,比如講到順序表和鏈表,可以舉例我們早期去銀行辦事需要排隊,中間插隊一個人后面的人都要后移(順序表插入),中間有一個人離開后面的人都要前移(順序表刪除),這就是順序表,而現(xiàn)在我們在銀行取個號就可以找個舒服的位置坐下,或者離開去辦其它的事情,等叫到號再到窗口,這就是鏈表,存儲的位置不連續(xù),但是大家的邏輯關系仍然存在;比如講到圖的最短路徑問題時可以設計一個旅游場景,需要去多個城市旅游,但又希望旅途最短花費最少,讓學生去設計路線;比如講到約瑟夫環(huán)的時候可以結合猶太歷史故事讓學生身臨其境;再比如講到漢諾塔的時候可以讓學生先試著玩一玩漢諾塔游戲,然后再考慮怎么用算法來實現(xiàn)。
“興趣是最好的老師”,真正把學生的興趣調動起來,使學生進入到一個積極思考和探索的活躍狀態(tài),教學就能起到事半功倍的效果。
2 實驗教學
鑒于該課程的課時壓縮,實驗課的課時也隨之減少了,學生能動手實踐的時間減少使教學效果大打折扣。而該課程的學習除了老師在理論課上的引導以外,學生自己動手去“練”才是真正去領悟和內化算法思想的法寶,“練”必不可少,所以在這有限的實驗課時間里,如何讓學生的“練”落到實處也需要老師投入很大的精力來設計和管控。
2.1 合理安排實驗項目
根據(jù)教學大綱,結合學生的實際掌握程度來設計實驗項目,主要分為驗證性、可選性和綜合設計性三大類,驗證性實驗的目的是重溫基礎知識,強調編程規(guī)范性和完整的算法思想, 主要針對一些常用的算法實現(xiàn), 如順序表、鏈表的創(chuàng)建、要求學生在上機實驗課堂內完成??蛇x性實驗稍有難度,需要融會貫通和創(chuàng)新能力,針對基礎較好的學生,如果驗證性實驗很快完成,就可以進行可選性實驗項目的操作。綜合設計類實驗一般涉及多個知識點, 要求學生自己抽象出模型進行設計, 主要訓練學生綜合運用所學知識的能力、團隊協(xié)作能力和自主創(chuàng)新能力。題目一般是要求解決實際生活中遇到的問題,可以對學生按照基礎的強弱搭配成3-4人一個小組,完成后通過現(xiàn)場演示和答辯來評價效果,這類實驗完成后學生在體會到成功喜悅的同時,也能領悟到數(shù)據(jù)結構及算法的價值,激發(fā)他們的求知欲望和探索精神,使其更加積極主動的學習,而這一部分人的主動也能帶動其他的同學跟進步伐,形成一個好的學習氛圍。
2.2 正確管理實驗過程
實驗課堂上,針對不同類型的實驗項目,采用相應的教學方式。對于驗證性實驗,老師可以在實驗開始前對實驗的流程、操作要點及最終的運行效果進行講解,不至于讓學生盲目摸索,浪費時間。選擇性實驗需要針對部分基礎較好的學生進行適當?shù)膯l(fā)式引導,對關鍵算法和思路予以提點。對綜合設計性實驗,教師可以采用項目式的教學方法,帶領學生理清需求、提取模型、設計步驟、確定計劃,并對小組成員予以分工,使得實驗能夠順利的進行下去。
實驗過程中也要設定一定的獎勵機制,不能只看最后結果,對于積極主動,喜歡鉆研的學生要及時獎勵,給予一定的加分,在綜合設計類實驗中擔任重要角色的學生也要識別出來,適當提高實驗過程分數(shù)。
基礎較差的學生光靠課堂上的練習遠遠不夠,需要整合機房資源,給學生提供課外實踐的機會,鼓勵他們利用業(yè)余時間補齊差距。
3 結束語
《數(shù)據(jù)結構與算法》這門課程的教學, 需要把握好“算法思想”這條主線,以實例化的教學設計來調動學生的積極性,真正做到授之以漁, 使學生確實掌握解決實際問題的能力。
參考文獻
[1]馬艷芳,姜樺.《數(shù)據(jù)結構》課程教學方法的探討[J].科技信息,2009,11
[2]駱小紅,馬永紅.“數(shù)據(jù)結構”教學改革研究與實踐[J].教改教法,2014,6(2):88-90
[3]李云清,楊慶紅,揭安全.數(shù)據(jù)結構(C語言版)[M].北京:人民郵電出版社,2014,9