承蓓
[摘 要] “數據結構”是五年制高職計算機專業學生必修的重要專業基礎課,在教學過程中,有的學生由于前導課程C語言學習的不扎實,導致許多學生認為數據結構聽起來像“天書”,數據結構學了沒有用,文章就如何有效地進行數據結構的教學進行了探討。
[關鍵詞] 高職;數據結構;有效教學
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2018. 01. 076
[中圖分類號] G632 [文獻標識碼] A [文章編號] 1673 - 0194(2018)01- 0184- 03
0 前 言
“數據結構”是我校五年制高職計算機專業學生必修的重要專業基礎課,目前基于各種語言的“數據結構”教材的版本很多,有C++版的、C語言版的、Java版本的等,由于我校高職學生在學習“數據結構”之前學習的前導語言課程是C語言,所以我校采用的教材是C語言版本。在教學過程中,從學生的學習效果以及和學生的溝通過程中,發現許多學生聽不懂,認為學了也沒用,更不用說感興趣了。本文試著對如何來進行“數據結構”的有效教學進行探討。
1 數據結構的重要性
數據結構是計算機專業學生必修的重要專業基礎課,該課程主要研究數據的邏輯結構、存儲結構和對數據的各種操作運算,而操作運算主要就是涉及算法的問題。
1.1 學好數據結構是參加各類計算機專業考試的必備條件
在許多不同層次、不同水平的考試中,數據結構是必考的。計算機軟件考試的考綱、研究生博士生入學考試、甚至一些軟件公司的面試題中都涉及到數據結構的內容。
1.2 學好數據結構為計算機專業的后續課程打下良好的基礎
計算機網絡、操作系統、數據庫等課程中都會使用數據結構的相關知識。比如計算機網絡中的路由器在源和目的之間要尋找出最短路徑,在數據結構的圖中有相應的算法,操作系統中的目錄結構使用的是一種樹形結構,CPU進程管理中用到了隊列。
1.3 學好數據結構能提高編程能力
程序設計語言是工具,數據結構和算法是靈魂,學習數據結構不僅是學習隊列、二叉樹、排序等數據結構及相應的算法,更重要的是要學習一種思想:如何把現實問題轉化為計算機語言的表示。這是一種非常重要的邏輯思維能力的鍛煉,也是程序員入門的條件??傊?,如果認真學好“數據結構”這門課,其實會潛移默化地影響學習者的邏輯思維。
2 “數據結構”教學過程中存在的問題
2.1 學生在學過程中面臨的問題
2.1.1 數據結構抽象聽不懂
數據結構由于比較抽象,尤其在一些算法的理解上,很多同學都覺得有困難,另外,由于學生在前序課程的學習過程中,基礎沒有打扎實,導致在后續過程中的學習也是困難重重。
2.1.2 數據結構學了沒用
許多學生覺得聽不懂,部分聽得懂的學生學過數據結構后,也覺得用處不大, 還不如學習C、Java等語言來的值,覺得學習這門課就是在浪費時間,因此在學習過程中存在目標不明確、動力不足的現象。
2.2 教師在教過程中面臨的問題
2.2.1 教學內容無法深入
由于學生前序課程的學習基礎薄弱,加上課程本身的特點,比較抽象,難以理解,導致教學無法深入,除了講解一些簡單的數據結構的基本知識外,在相關的算法以及算法分析上只能簡略講解。
2.2.2 教學過程學生響應度不高
由于學習內容的枯燥,所以學生根本不感興趣,很多同學也聽不懂,在教學過程中,學生的學習是很被動的,響應度不高。
正因為在教學過程中,存在了以上的一些問題,導致這門課程的存在,似乎主要是為考試服務,學生在真正學習的過程中,并沒有什么收獲。因此,筆者在實踐中不斷思考,發現可以通過一些途徑來提高教學的有效性。
3 有效教學的含義
所謂“有效”,主要是指通過教師在一段時間的教學后,學生所獲得的具體進步或發展。教學有沒有效益,并不是指教師有沒有教完內容或教得認不認真,而是指學生有沒有學到什么或學生學得好不好。如果學生不想學或者學了沒有收獲,即使教師教得再辛苦也是無效教學。同樣如果學生學得很辛苦,也沒有得到應有的發展,也是無效或低效教學。因此,學生有無進步或發展是衡量有效教學的唯一指標。
筆者認為衡量教學是否有效,不僅是看學生學習的結果,也看學習的過程,比如學習態度上是否有進步,注意力是否比以前集中,學習的參與度是否是提高了,每堂課的學習目的是否都達到了。
4 實現數據結構有效教學的途徑
4.1 實現C語言與數據結構的有效銜接,夯實學習基礎
4.1.1 教學安排的有效銜接
如果在上課安排上,數據結構的教學和C語言程序設計的教學是同一個老師,對老師來講,相應內容的教學能夠由淺入深,而且也能比較了解學生對前導課程的學習情況,在講解時能把握好教學的側重點,另外對學生來講,能了解教師的教學風格,在學習數據結構上也能較好地適應。
4.1.2 課程內容的有效銜接
C語言程序設計的課程教學的安排時間雖然在“數據結構”的前面,但是在教學過程中,由于課時的限制,內容上往往講解不到指針、結構體等內容,導致學習數據結構的先導內容沒有學到,是脫節的。另外,許多學生在開始學習二維數組時就覺得有點吃力,所以為了能給學習數據結構打下扎實的基礎,可以采取如下措施:①增加C語言學習課時,保證學習內容不缺失;②加強C語言實踐操作以及測試鞏固,夯實學習基礎,保證前導課程的學習效果;③由于數據結構的學習和C語言的學習不在一學期安排,學生往往對已學內容有所遺忘,因此在學習數據結構這門課程時,可以安排先將C語言中的數組、函數、指針、結構體等頻繁用到的內容預先復習鞏固一下,然后再開始數據結構新課內容的學習。endprint
在學校C語言程序設計是該門課的先修課程。這兩門課程的一些知識點是緊密相關聯的,在教學內容上有延續銜接的關系。尤其是C語言程序設計中的函數、結構體、指針,在數據結構中各種數據結構的定義、算法的實現過程中是經常需要用到的。
比如數據結構中線性表的單鏈表的結點定義是這樣的:
typedef struct node{
ElemType data;
struct node*next;
}LNode;
在對于這個結點定義的理解中,涉及C語言中結構體的定義,typedef 的使用,指針的定義,學生如果對C語言中這些知識沒有掌握,對于該結點的定義也無法理解。
數據結構中的很多算法的實現最終是用C語言的函數來實現的,為了驗證和理解這些算法,常常通過用C語言編寫程序后實現這些算法的途徑,在實踐過程中加深對數據結構和相應算法的理解。當然數據結構并不就是編寫程序,更重要的是要學習一種思想:如何把現實問題通過抽象轉化為計算機語言的表示。
4.2 厘清教學思路,明確學習目標
學習數據結構,主要是在理解已有數據結構的基礎上,知道了數據如何組織,如何存儲,以及在不同存儲結構下進行運算或操作,為以后如何才能把現實世界中的問題,抽象成計算機能夠表示的問題,然后利用計算機求解打下基礎。為以后如何更好地組織數據,更好地設計出高效率的算法打下基礎。
數據結構主要研究的內容有三方面:數據的邏輯結構、數據的存儲結構以及對數據的操作運算(算法)。這不僅是數據結構研究的主要內容,也是講解各種數據結構時的線索。
明確了以上的學習思路后,學生在學習過程中,就能知道每種數據結構,分別都是從這三方面來學習的。在學習過程中就能做到心中有數,思路清晰。
4.3 激發學生的學習興趣,加強學習動力
數據結構的教學內容還是有點枯燥的,又是比較費腦筋的,在教學實踐過程中,我試著在課堂導入過程中,盡量選取一些學生感興趣的東西入手,在教學過程中,也結合多媒體手段進行教學,發現學生比原來純粹利用黑板粉筆進行的傳統教學注意力更集中些。
例如:在學習線性表時,我借助課件采用類比的手段,把一組同學比作線性表,通過一組同學在講臺上表演,如何在一組中某個位置增加一位同學,如何從一組中讓一位同學出列,整個過程由同學自己思考,自己表演,自己總結。讓學生在體驗中,理解順序表中元素的增加與刪除。
在學習遍歷二叉樹時,又設計一張景點地圖,這張地圖的實質就是一棵二叉樹,要求學生自己設計一定的路線,每個景點只玩一次,并且每個景點必須玩到。學生在這種情景中學習,興趣也十分濃厚。
4.4 加強理論與實踐的結合,提高學習效果
數據結構涉及許多的理論知識,這部分內容,我采用的是設計相關問題和習題,讓學生自己去書上尋找答案,根據學生答題反饋來診斷學生的學習情況,然后教師進行總結和講解。
另外,數據結構是提高編程能力的必由之路,所以在學習過程中,能將理論與實踐相互結合,不但能加深對理論的學習還能提高編程實踐能力。以前,剛剛學習C語言時,學生只能編寫幾行的代碼,通過學習數據結構,在處理一些稍微復雜的問題時,可以逐漸編寫幾十行甚至上百行的代碼,在學生學習過程中,也是一種激勵。
例如,在講解線性表的順序結構時,為了加深學生對順序結構的理解。我設置了如下實驗。
【實驗題目】順序表的就地逆置
【實驗目的】
知識:理解線性表的特點和順序結構的特點
掌握線性表順序結構的定義方法
技能:學會編寫程序實現順序表逆置
情感:通過教師引導,學會分析問題;通過小組學習,培養學生學會合作探究。
【實驗內容】
順序表的就地逆置就是利用原表的存儲空間將線性表(a1,a2,…,an)逆置為(an,an-1,…,a1),并且此處要求只使用一個元素的輔助空間。
【實驗分析】
1.空表或長度為1的表,不做任何處理。
2.表長大于或等于2時,做如下處理。設兩個指針i和j,分別指向順序表的第1個元素和尾元素。若i 【程序框架】 1.頭文件包含 2.順序表的定義 3.各種函數的聲明 4.創建線性表函數 5.線性表逆置函數 6.線性表輸出函數 7.主函數 【代碼編寫】 學生完成,教師輔導 通過實踐,學生對順序結構是如何定義的,就非常清楚了。從而通過實踐來指導理論知識,讓學生在動手過程中進行了學習,比講解純粹的理論知識效果好。 4.5 積極利用學習工具,引導學生拓寬學習途徑 隨著技術的進步,手機已經成為生活中不可缺少的工具,移動學習也稱為一種流行的學習方式,這種學習方式也可以應用到數據結構教學上,讓學生利用手機去補充學習。在課堂上有些概念學生還不是很理解,課后可以通過與老師交流進行答疑;課堂上也可以適當布置一些拓展學習的內容,讓學生根據自己的需要,通過手機去進一步學習。 5 結 語 以上是筆者個人一些粗淺的想法,課堂教學的有效性是教師不斷追求的目標,在以后的教學實踐中,仍將不斷探索思考。 主要參考文獻 [1]陳雁.數據結構[M].北京:高等教育出版社,2010. [2]邱勁,王平,徐展.《數據結構》課程教學改革與實踐探索[J].西南師范大學學報:自然科學版,2013,38(1):139-142. [3]宋秋前.有效教學的涵義和特征[J].教育發展研究,2007(1a):39-42. [4]岳欣云,董宏建.有效教學的價值取向及其啟示[J].首都師范大學學報:社會科學版,2014(2):152-156. [5]蔡寶來,楊伊.基于移動學習的課堂有效教學策略研究[J].教育科學研究,2015(9):42-47.