喻劍平
(荊楚理工學院電子信息工程學院 湖北 荊門 448000)
面向電類專業(yè)的數據結構課程教學改革研究
喻劍平
(荊楚理工學院電子信息工程學院 湖北 荊門 448000)
數據結構是電類專業(yè)一門專業(yè)選修課程,由于課程具有知識點分散、先行課為C語言程序設計等特點,實際教學效果并不理想。本文主要分析目前電類專業(yè)數據結構課程教學現狀及其存在的教學問題,從培養(yǎng)學生的興趣和掌握編程思想出發(fā),為提高學生的編程能力和解決實際問題的能力,在教學過程中對教學方法進行一定程度地研究和探索,提出一些可操作的建議。
電類專業(yè),數據結構;教學改革
隨著互聯網+概念不斷深入,數據結構作為電類的一門專業(yè)選修課程,雖然沒有專業(yè)基礎課重要,但對于電類專業(yè)學生來說是以后繼續(xù)深造和從事軟件編程工作的一門重要的課程。學習程序設計,一定要靈活運用,數據結構的學習也一樣,然而要讓學生做到對知識點深刻理解并靈活應用存在一定難度。針對數據結構課程中的教學問題,結合本人的教學實踐,談談數據結構教學中的一些見解。
2.1 知識點繁雜,認知任務重。數據結構一般開設在第三或第四學期,它的先行課是C語言程序設計。對于非計算機專業(yè)學生來說,C語言程序設計的知識與本專業(yè)相關性不大,時間長了自然生疏、掌握不牢,現在要在此基礎上學習數據結構,對他們來說有點難度。而數據結構是一門理論性比較強的課程,由于其概念抽象,算法經典和復雜使得該課程的教學難度較大,增加了學生的學習任務,成為學習過程中的障礙。
2.2 教學內容與專業(yè)相關性不大。目前電類專業(yè)數據結構課程不能和本專業(yè)的其他課程知識建立有效聯系,無法滿足電類專業(yè)的實際需求,學生只能孤立地學習該課程。很多學生在學完后不知道如何在實際編程中予以應用,學習目標不明確,認識不到它的重要性,使得學生主動學習的積極性不高。
老師在教這門課之前一定要明確其目的是學習算法思想而不是程序。否則可能會把數據結構當成編程語言課的“升華”和“提高”,教學時帶領學生去讀和講解算法程序。不管是C語言程序設計還是數據結構,對課程章節(jié)知識點的編排始終沿著一條主線展開,及以“程序=數據結構+算法”為主線鋪開。如果沿著這條主線梳理教材的知識點,就會發(fā)現每個知識點的前后關系,兩門課程的詳細分析過程如圖1所示。學習數據結構的目的是根據實際問題中的數據選擇合適的數據結構,設計合適算法并編寫程序,解決實際問題。
圖1 主線串接知識點
上每節(jié)課時都應該以“思想第一,實現第二”為教學主線,以算法思想為主,程序實現為輔,適當地教學生如何用程序實現思想,培養(yǎng)學生利用編程思想來解決實際問題的能力。讓學生理解程序的根本是數據結構和算法。舉例來說,寫程序就好比設計電路,想要設計一個什么樣的電路,電路要實現的功能以及具體的參數等數據要做到心中有數,一定要有規(guī)劃,才能設計出滿足功能和相關參數的電路。
電類專業(yè)學生對C語言程序設計還不能靈活運用,不能很好的將類C語言(偽代碼)描述的算法轉化為可執(zhí)行程序,無疑增加了學生學習的難度。所以在選擇教材上,教材中的算法最好是經過編程軟件調試過的完整代碼,能夠讓學生直接用到編程軟件中運行,方便學生學習和理解。
“興趣是第一動力”,學生有了興趣才會提高學習的積極性,尤其對于理論性較強的數據結構來講,學生的興趣更為重要。如何激發(fā)學生的興趣呢?主要是讓學生了解所學知識能解決實際問題。例如我們講線性表時,可以用約瑟夫環(huán)問題來導入,在學完這章內容后,再拿出約瑟夫環(huán)問題,和學生一起分析用哪種存儲結構來解決,之后再引入新的問題,如何報數,當數到m的人時又如何出列?將這些問題轉化為線性表的相關知識點。通過分析,讓學生有了一定的解題思路,可以選擇循環(huán)單鏈表來描述這種數據結構,用指針來報數,當指針指到m的人時進行刪除操作,直到鏈表只有最后一人為止。然后將算法思路轉換為程序的各個功能模塊,包括循環(huán)單鏈表的定義和創(chuàng)建,用指針循環(huán)數數,以及刪除指定結點,讓學生根據各個功能模塊寫出相應的程序代碼。最后讓學生將程序用編程軟件來調試和運行。使學生從中逐一體會到如何用自己學過的知識解決實際問題。
這里需要注意的是,引入的實際問題不能太難,不然學生就沒有興趣繼續(xù)學習。我們可以在教學中引入一些小型實用的軟件開發(fā)項目,幫助學生掌握實際編程時選擇哪種數據結構的方法。例如:大多數學生喜歡玩游戲,但不知道數據結構的原理在游戲編程中如何應用。像游戲中某些“怪物”的反應可通過構造哈夫曼樹來作為判定樹設定算法;而游戲“連連看”就涉及到相同圖形之間最短路徑的求解。通過這些例子,讓學生知道在軟件開發(fā)過程中數據結構扮演的重要角色。明白學以致用,幫助學生理解知識點,提高應用能力。
數據結構著重于提高學生算法設計與編程能力的培養(yǎng)。通過多讀程序,分析別人的程序設計思想,從中汲取編程經驗。其次就是要多練,養(yǎng)成讀懂問題、設計思路、編寫程序、上機調試并分析程序運行結果的良好程序設計習慣。不管上理論課還是實驗課,最好選擇在機房上課,可以充分利用現有的信息化教學資源,教學效果會更好。
老師可以直接用Word作為黑板,而不需要一會操作電腦一會站起來到黑板上板書,原來用板書完成的事情均可用Word實現,為了節(jié)約課上時間,還可以結合PPT演示相關的圖表。而算法程序可以直接啟動Visual C++或其他編程工具進行編寫、修改、調試和運行。Word黑板的特點是直觀性較強,與學生面對面,克服了板書不雅和反復檫黑板的麻煩。采用PPT演示相關圖表,節(jié)約了畫圖和表的時間。而利用編程工具直接編程和調試運行,可以讓學生看清如何在讀懂算法的基礎上進行編程,以及后續(xù)的錄入、調試運行和評價程序。這種教學方式直觀性強,易于理解和掌握算法的基本思想和編程工具的操作過程。
很多任課教師熱衷于制作多媒體課件,通過事先做好的演示文稿進行教學。但是對于像數據結構這類程序設計課程的教學,有著其自身的特點,單純使用多媒體課件教學效果不太理想。而采用Word作為黑板,結合PPT,利用編程工具直接編程和調試運行,充分利用現代化信息技術,學生較容易掌握相關知識點。
總之,在數據結構的教學中根據教學內容使用不同的教學方法,提高學生的學習興趣,吸引學生的注意力,從而提高學生的學習效率,培養(yǎng)學生分析和解決實際問題的能力。同時,鼓勵學生參加大學生科技創(chuàng)新項目、互聯網+創(chuàng)新創(chuàng)業(yè)大賽、全國大學生電子設計大賽等賽事,讓枯燥的知識變成有趣的體驗,提高學生主動能力性,給學生創(chuàng)造機會將所學的理論知識運用到實踐中去。
[1]李燕.“數據結構”課程中算法實現的學習方法研究[J].計算機時代,2014(11).
[2]周張?zhí)m.導入在數據結構課堂教學中的應用[J].科教文匯,2014(11).
[3]孫杰,等.面向工科專業(yè)的C語言程序設計課程教學改革探索[J].計算機教育,2016(11).
[4]馬靖善.“數據結構”課程實踐教學法研究[J].渤海大學學報(自然科學版),2017(1).
TP311.12-4;G642 【文獻標識碼】A 【文章編號】1009-5624(2018)01-0116-03
參與項目:校級教學研究項目JX-201627:基于“口袋實驗室”的單片機實踐教學改革探討
喻劍平(1983-),女,漢族,湖北武漢人,碩士,講師,主要從事自動化、信息處理方面研究。