朱 煥,馬文靜,孫玉梅
(1.黑龍江八一農墾大學理學院,黑龍江 大慶 163319;2.煙臺市第五中學,山東 煙臺 264000)
《數據結構》信息與計算科學專業(yè)以及計算機應用與技術等專業(yè)的核心課程,是《算法設計與分析》《操作系統》《數據庫原理》及《軟件工程》等課程的主要基礎,要令學生學會分析研究計算機加工的數據結構的特性,以便為應用涉及的數據選擇適當的邏輯結構、存儲結構及其相應的算法,并初步掌握算法的時間分析和空間分析的技術。[1]然而,《數據結構》課程的教學要求,決定了這門課程有著較強的抽象性和動態(tài)性,學生對于基本知識還能較好理解,但是在用偽代碼(例如類C語言)對數據的存儲結構和算法進行描述時常會產生畏難心理,尤其是涉及到令學生自己動手編寫算法時,學生總會感覺到無從下手,和教學內容不能很好地銜接,并且實踐環(huán)節(jié)不夠,學生難以根據實際問題動手設計數據結構及其算法,造成學生動手能力差。[2-3]
鑒于此,在對信息與計算科學專業(yè)進行《數據結構》授課時,將研究重點放在改變《數據結構》課程教學模式上,探討研究式教學模式在《數據結構》課程教學及建設中的應用,強調學生自主發(fā)現和體驗知識的生成過程,注重理論教學和實踐教學的內容整合、專業(yè)課教學與素質教育的結合,有效地提高學生的學習積極性,有利于培養(yǎng)學生自主學習、獨立思考問題和解決問題的能力。
在教學中增加實際案例,使學生對抽象的理論問題有著形象深入的理解。在每一章引入時,都盡量在日常生活中選取恰當的案例,融入到教學之中。例如在借助于“兩個朋友共同租用房屋承擔費用”來講授兩棧共享空間;借助于“去理發(fā)店照兩面相對的鏡子時,會出現許多自己的影像”來講述遞歸;借助于“發(fā)微博時字數有上限”來講述串的截?。唤柚凇半娢牡木幋a譯碼”來講述赫夫曼樹;借助于“旅行時選擇最合理的線路”來講述圖的最短路徑等。日常生活中這樣的小例子比比皆是,在課堂上引入這些幫助學生理解的例子,提高了學生的學習興趣,并且?guī)椭鷮W生對所學數據類型進行理解,使課堂講授內容變得不那么枯燥,取得了良好的教學效果。
改變實驗課模式,提升學生動手解決實際問題的能力?!稊祿Y構》上機實驗的代碼編寫起來較為煩瑣并且抽象,與《C語言》相比有一定的難度,學生單獨完成存在一定困難,并且實驗內容過于單調。因此,在授課時做了相應的調整。例如將學生3人一組分為15組,每次做實驗時均以組為單位完成。在進行上機實驗之前,教師先選擇涵蓋不同難度層次的多個上機題目,由學生決定此次實驗的難度,并由學生自主選擇實驗題目。如在線性表處進行上機實驗時,選擇了建立線性表、輸出線性表;對線性表進行插入、刪除、查找等基本操作;一元多項式的相加等難度不同的題目由學生以組為單位自主選擇。在棧的應用處進行上機實驗時,選擇了數值轉換、括號匹配,行編輯程序等問題由學生自主選擇,并且允許學生選擇其他的題目,也允許不同組學生在做同一問題時的難易側重有所不同。
事實證明,這樣的實驗改革效果非常好。往年學生單獨做實驗時,常常不能保證在上機課時完成實驗,而且出現的問題非常多。而實行新的實驗模式之后,每組在完成實驗時都可以商議進行,相互之間取長補短,綜合思路,實驗能力大大加強。由于給了學生充分自主性去選題,學生的實驗興趣也大大加強,并且80%的同學都選擇了中等以上難度的實驗,且完成情況非常好,程序運行出來無誤,容錯性高,界面美觀。
本課程一直采用清華大學出版社嚴蔚敏老師編寫的《數據結構(C語言版)》作為教材。這是一本非常經典的教學用書,但是書后沒有習題。鑒于此,上課時改變了留作業(yè)的方式,告訴學生,這門課程老師不會再給找復習資料,考試的時候也沒有復習范圍,但是還是要留作業(yè)。作業(yè)的留法,是每章講完之后,都會要求學生寫題型的數量。例如棧這部分,要寫5道判斷題、5道填空題、1道算法設計題、1道算法分析題等。但是什么樣的內容作為自己的作業(yè),完全由學生來選擇,可以去圖書館查閱資料,也可以自己去買相應的教學參考書,也可以在網上找復習題。允許同學間有相同的題上交,但是上交的題重復率不許超過1/3,否則作業(yè)無效。為了防止學生直接將習題抄到作業(yè)上應付了事,會在每一節(jié)課留出10分鐘時間,隨機抽取學生上臺來講述自己所做的內容。如果作業(yè)做對了,但是講述不出來,作業(yè)一樣視為無效。這樣一來,更加“迫使”學生自主去學習,要交作業(yè),必須自己查閱資料完成,這樣也就養(yǎng)成了學生獨立思考問題、解決問題的能力。
在講述第六章“樹”時,為了提高學生解決實際問題的能力,選取了一個綜合問題,即要建立一棵家族樹,并對家族樹進行相關操作。為了提高學生的學習興趣,以《紅樓夢》賈府中賈氏成員的家族關系為例,要學生完成此綜合設計。
具體實施步驟為:將所要完成的設計分為15個子問題,以平時上機時學生分組為單位,每組選擇一個問題,分別完成,最后匯總,完成此綜合問題。其中,第一組要決定這棵家族樹的存儲方式、結點類型以及抽象數據類型定義;第15組要完成所有子問題在主函數中的鏈接,并設計主函數;其他各組各自完成選擇的問題,調試無誤后均交與第15組最后進行匯總。
學生對解決此問題非常有熱情也有興趣。在上機解決問題之前,教師安排了一次教學觀摩課,要求每一組均把流程圖繪制出來,并選出代表上臺向大家講解各組的思路,出現問題時現場解答。每一組學生準備都較為充分,但是在設計算法時或多或少都出現了一些問題。通過本節(jié)課,指出了學生中存在的共性問題,并及時給予修改,教學效果良好。
實踐證明,研究性教學模式重視學生的自主活動,提供并創(chuàng)造了學生主動探究、獨立操作、自由表達的“土壤”以及良好的氛圍,學生在其中創(chuàng)新和實踐,建立了一種主動發(fā)現、獨立思考的積極的學習方式,實現了學習方式的轉變。[4-5]因此,結合人才培養(yǎng)實際和教學現狀,在《數據結構》課程中引入研究性教學模式,能提高學生的學習興趣,有效引導學生主動投入到研究性學習活動中給學生提供開放的學習空間,有利于發(fā)現和開發(fā)學生多方面的智慧潛能。
[1]李克清.《數據結構》課程中的案例教學初探[J].長江大學學報:自然科學版,2004,(12):135-136.
[2]龐曉瓊.案例驅動的數據結構課程設計教學改革實踐[J].計算機教育,2009,(1):53-55.
[3]馬曉波,陳翠茹.《數據結構》實踐教學改革探討[J].內蒙古農業(yè)大學學報:社會科學版,2010,(2):171-172.
[4]陳曉霞.數據結構教學中的案例巧用[J].計算機教育,2010,(24):61-64.
[5]湯亞玲,秦鋒.數據結構課程的教學引導策略探討[J].安徽工業(yè)大學學報:社會科學版,2011,(5):119-120.