廖國富
摘? 要: “數(shù)據(jù)結構”是計算機類專業(yè)的核心課程,學好數(shù)據(jù)結構有利于抽象思維的鍛煉和編程能力的提高。文章從“教”與“學”兩個角度分析了當前應用型本科數(shù)據(jù)結構課程教學中的主要問題,結合應用型本科教學實際,提出了提高該課程教學效果的具體方法。
關鍵詞: 數(shù)據(jù)結構; 應用型本科; 教學效果; 方法
中圖分類號:G642? ? ? ? ? 文獻標識碼:A? ? ? 文章編號:1006-8228(2020)12-88-03
Abstract: "Data Structure" is the core course of computer specialty. Learning data structure is beneficial to improve the abilities of abstract thinking and programming. This paper analyzes the main problems existing in the current teaching of "Data Structure" course for applied undergraduate from the angles of "teaching" and "learning", and combined with the practice of the applied undergraduate teaching, the specific methods to optimize the teaching effect of the course are put forward.
Key words: data structure; applied undergraduate; teaching effect; method
0 引言
提高“數(shù)據(jù)結構”課程教學效果一直是計算機類專業(yè)教學的一個難點。對于應用型本科“數(shù)據(jù)結構”課程教學改革,鐘美從教學內容、教學方法、教學手段和考核方式四個方面提出了教改措施[1]。殷曉玲等提出了因材施教,兼顧全面,形象教學與啟發(fā)式教學相結合[2]。楊利英等提出了提升數(shù)據(jù)結構課堂教學效果的六種方法[3]。這些論文主要從學生基礎、教學方法兩方面分析問題,提出了對應的改進措施和方法。本文力求從“教”與“學”兩個角度深入地分析該課程教學中存在的主要問題,系統(tǒng)地總結能提高該課程教學效果的方法。
1 當前應用型本科“數(shù)據(jù)結構”課程教學中的主要問題
當前應用型本科“數(shù)據(jù)結構”課程教學中存在的主要問題,首先是課程定位不準的問題,其次是前序課程的銜接問題,當然,關鍵還是授課方法的問題。
1.1 課程定位不準,動力不足
教:應用型本科計算機課程設置,重點放在實用技術上,如果一味地追求實用技術而忽略基礎理論會使學生的后期發(fā)展受阻,很難達到較高的水平。因此,應用型本科可拋棄基礎理論課程。個別應用型大學大幅度壓縮“數(shù)據(jù)結構”總學時,這是短視行為;而有的學校又走向另一個極端,要求向雙一流高??待R,教材難度大,內容多,超出學生能力范圍,人才培養(yǎng)方案和教學大綱不符合學生實際情況。在實際教學中,教師沒能積極強調學習“數(shù)據(jù)結構”的重要性,缺少對學生興趣的有效引導。
學:以津橋學院為例,錄取平均分數(shù)一般只超過二本線幾分,也就是差一本線近百分,基礎比較薄弱。這類學生大多學習主動性不強、自學能力和學習習慣欠佳。相當一部分學生因為認識不到“數(shù)據(jù)結構”的地位、作用,導致學習動力不足,態(tài)度不積極。很多學生是到應聘的時候,甚至是工作后才認識到“數(shù)據(jù)結構”的重要性,后悔當初不好好學習。
1.2 前置課程基礎不牢,課程銜接不好
教:例如為了提高C語言的及格率,降低了C語言考核標準,如不考核指針等。這樣就為“數(shù)據(jù)結構”課程教學留下了一個大隱患,C語言函數(shù)、結構體、指針等基礎知識掌握不牢,到上“數(shù)據(jù)結構”課程時又必須花時間來惡補。
學:編寫程序、調試程序的能力偏弱、實踐動手能力較差,大多數(shù)學生沒有主動利用假期進行補差的意識和行動。學習吃力,易產生挫敗感,畏難情緒比較重。
1.3 教法呆板,效果不佳
教:一是過度依賴PPT,照屏宣科,缺少黑板推演,學生易產生疲勞感,跟不上,提不起興趣。滿堂灌,講授內容偏多、偏雜,拓展知識點偏難。最致命的是教學方法不靈活,“數(shù)據(jù)結構”本來理論性強,教學方法如果一成不變,容易導致課堂學生思維不活躍。如何把枯燥的理論變得有趣、生動,是教授“數(shù)據(jù)結構”必須解決的問題。二是師生比偏低,老師與學生面對面交流少,師生感情疏遠,缺乏跟蹤指導,課堂上學生有時候跟不上思路,難以消化,而課后學習疑問又得不到及時解決,這會讓學生逐漸失去學習興趣。三是上機實驗效果不佳,解決實際問題的能力沒有得到有效訓練。
學:學習自覺性差,主動預習、主動復習的少,課后作業(yè)抄襲成風,沒有達到復習鞏固的效果。很多學生隨波逐流,等靠思想重。少數(shù)學生自暴自棄,厭學情緒重。學生普遍比較“獨”、比較自我,同學間缺乏相互學習和交流。在學習上花的時間少,不用心,不用力,這樣是學不好“數(shù)據(jù)結構”的。
2 如何提高“數(shù)據(jù)結構”課程教學效果
提高“數(shù)據(jù)結構”課程教學效果必須立足應用型本科教學實際。筆者認為,最重要的實際就是學生的實際情況,否則,任何方法都是無的放矢。立足實際,找準課程定位是提高課程教學效果的前提,無縫銜接是基礎,靈活運用教學方法是關鍵。
2.1 找準定位,明確目標
教:制定符合學生實際情況的人才培養(yǎng)方案和教學大綱,兼顧實用技術和基礎理論,要多參考同類學校而不是參考雙一流建設高校、高職高專院校?!皵?shù)據(jù)結構”是計算機類專業(yè)的核心課程,是為算法邏輯服務的[4],學好“數(shù)據(jù)結構”有利于抽象思維的鍛煉和編程能力的提高。教師有責任讓每一個學生真正認識到“數(shù)據(jù)結構”的重要性。每次課、每節(jié)課都要引導學生明確教學的目標、意義。在此基礎上,針對應用型本科學生特點,以“線性表”、“樹”、“圖”、“查詢”、“排序”為主線,設計好具體教學內容,突出重點。比如“排序”重點是直接插入排序、希爾排序、快速排序。
學:通過“專業(yè)導論”課程學習,對專業(yè)的發(fā)展過程有了比較全面的了解、對自身的職業(yè)發(fā)展前景要充滿信心,通過C語言的學習,培養(yǎng)了程序設計的興趣。弄明白了學習數(shù)據(jù)結構的重要意義,才會主動面對學習困難,勤奮學習。
2.2 無縫銜接,準備充分
教:教好“C語言程序設計”,有意識的為“數(shù)據(jù)結構”課程作好準備。突出函數(shù)、結構體、指針等重點,加強程序設計和調試訓練。對C語言考核成績較差的學生利用假期補差提供一定的幫助和支持。
學:必須解決掉畏難情緒。學好C語言要循序漸進,代碼要多寫、多讀、多調試。要主動利用線上學習資源補差,課程資源推薦中國大學MOOC開設的C語言課程,技術論壇推薦CSDN論壇的“C語言”版塊。
2.3 教法靈活,實用有效
找準了定位,做好了課程銜接,接下來最重要的就是“怎樣教”了。教學方法的合理選擇和靈活運用,必須要以教學目標為依據(jù),以學生為出發(fā)點。針對應用型本科學生特點,因材施教,循循善誘,靈活的優(yōu)化組合和綜合運用?!皵?shù)據(jù)結構”教學效果好不好,關鍵看學生是否“聽得懂”、“會應用”。而有效的教學關鍵在于營造一個生動、活潑、民主、和諧的課堂氛圍[5]。筆者總結了近幾年的“數(shù)據(jù)結構”教學實踐經驗,除了逆向教學法、反芻教學法[6]以外,比較有效的教學方法還有問題導入法、演示法、講授法和比較法。
2.3.1 問題導入法
通過講解貼近學生生活的故事,創(chuàng)設問題情境,啟發(fā)學生理解學習數(shù)據(jù)結構的好處,感受數(shù)據(jù)結構和算法的趣味性。數(shù)據(jù)結構課程里的每一種邏輯結構都有和現(xiàn)實世界相通的地方,如棧的概念和現(xiàn)實生活中的子彈夾、死胡同類似,隊列和食堂、銀行等地方的排隊服務類似,樹型結構可以和家族譜、學校、公司的組織圖作比較,圖狀結構則可以應用于解決哥德斯堡七橋問題、最短路徑、拓撲排序等問題[3]。
2.3.2 演示法
充分利用實物、動畫演示算法的基本思想,讓講解更直觀、更生動。比如,講授直接插入排序和基數(shù)排序算法,可以先用撲克牌演示,或者用B站的動畫演示,也可直接演示程序的運行結果,有助于學生理解問題本身,帶著問題帶著目標聽課更專心。
2.3.3 講授法
數(shù)據(jù)結構這門課程不僅是計算機類專業(yè)的重要基礎課,實際上也是在軟件開發(fā)過程中承上啟下的課程,對培養(yǎng)學生的編程能力具有很重要的作用[7]。為了提高程序設計、分析能力,要少用PPT,因為PPT缺乏邏輯推導,學生不容易跟上老師的思路,容易走神。要擅于用黑板來推導算法思路和關鍵步驟,層次、邏輯更清晰。知識點講授,要點、線、面結合,既有系統(tǒng)性,又抓基礎和重點。突破難點,一個一個來,絕不貪多。要適度拓展,比如計數(shù)排序,既簡單又易理解,學生如果領會到算法的妙處,就會增強學習的信心。
2.3.4 比較法
各種數(shù)據(jù)結構和算法本身具有很強的規(guī)律性、相似性和相關性。例如,對于幾種主要的排序算法,在時間復雜度、空間復雜度、穩(wěn)定性等方面進行比較,便于學生對幾種排序算法的優(yōu)缺點進行對比理解和記憶,在實際應用中才能根據(jù)具體情況做出最優(yōu)的選擇。對順序表與鏈表、普里姆算法與克魯斯卡爾算法、幾種查找算法進行比較,都會收到很好的教學效果。
2.3.5 其他方法
教師要充分利用課堂時間建立良好的、和諧的師生關系,鼓勵學生提問,輔導耐心、評價公正。通過微信公眾號、QQ群指導學生學習和共享交流,拉近師生之間的距離。上機實驗除了算法驗證性實驗,還要布置一定數(shù)量的實際應用題目。建立健全助教崗位制度。助教崗位承擔課堂教輔、批改作業(yè)、輔導答疑、協(xié)助上機實踐等教學輔助任務[8]。
學生要主動融入課堂,培養(yǎng)協(xié)作精神,自覺預習,認真聽講、上機、作業(yè),自覺復習,勤于總結,培養(yǎng)終身學習的意識和能力。
3 結束語
經過上述課程教學改革實踐,學生的學習興趣更濃,主動性更強,抽象思維和編程能力有明顯的提高。近幾年,越來越多的學校選用Java或者Python作為“數(shù)據(jù)結構”的描述語言,上述方法也有一定的借鑒作用。今后,還要進一步結合Java、Python語言自身特點來創(chuàng)新“數(shù)據(jù)結構”課程的教學方法。
參考文獻(References):
[1] 鐘美.以培養(yǎng)應用型人才為目標的數(shù)據(jù)結構教學改革[J].計算機教育,2014.14:26-29
[2] 殷曉玲等.應用型本科院?!皵?shù)據(jù)結構”課程教學研究[J].池州學院學報,2016.30(6):131-134
[3] 楊利英,盛立杰.提升數(shù)據(jù)結構課堂教學效果的六種方法[J].計算機教育,2015.13:86-89
[4] 李曉明.為什么會有“數(shù)據(jù)結構”?[J].計算機教育,2019.1:3-4
[5] 胡守強.有效的教學關鍵在于課堂氛圍[N].中國教育報,2019-11-04.
[6] 張景祥等.專業(yè)基礎課如何走出理論與實用的兩難困境[J].計算機教育,2015.3:80-83
[7] 劉志,趙明珠,劉端陽.面向編程能力培養(yǎng)的數(shù)據(jù)結構課程教學方法研究[J].計算機教育,2015.8:66-69
[8] 教育部.教育部關于深化本科教育教學改革全面提高人才培養(yǎng)質量的意見[EB/OL].http://www.moe.gov.cn/srcsite/A08/s7056/201910/t20191011_402759.html,2019-10-08.