高賢強,化希耀,陳立平
(塔里木大學信息工程學院,阿拉爾 843300)
引入計算思維的《數據結構》教學改革研究
高賢強,化希耀,陳立平
(塔里木大學信息工程學院,阿拉爾 843300)
以計算思維的定義、特征和《數據結構》課程在教學過程中存在的主要問題為切入點,把計算思維應用于《數據結構》教學,從計算思維有助于重組程序的實現、《數據結構》中的算法思維隸屬于計算思維、計算思維有助于《數據結構》課程靈活性的實現以及計算思維能夠培養學生的學習興趣四個方面進行分析,對引入計算思維的《數據結構》教學改革予以研究。
計算思維;數據結構;教學改革
《數據結構》課程是計算機程序設計類課程的基礎,是設計和實現編譯程序、操作系統、數據庫系統及其他系統程序和大型應用程序的重要基礎,也是計算機專業的核心課程[1]。該課程不僅是計算機軟件編程課程中的重要分支,對于我國培養高水平的程序設計和開發人員也是不可或缺的。計算思維是運用計算機科學的基礎概念進行問題求解、系統設計,以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動[2]。近年來,計算思維受到越來越多的重視,如何在《數據結構》課程教學中引入計算思維是一個值得思考的問題。
1.1 計算思維的定義
有關計算思維的定義是隨著計算方式的變化而不斷變化的,計算思維并不是現代新生事物,從古至今,計算思維一直存在,從算盤到計算器,再到現代廣為普及的計算機,計算思維的內容在變化的同時,其內涵也在不斷豐富。目前來看,被大家廣為認可的計算思維定義是:運用計算機科學的基礎概念,對系統進行設計以及對人類行為進行科學的揭示等一系列隸屬于思維世界的活動[3]。
1.2 計算思維的特征
計算思維可以分為幾種不同的思維方式,主要有抽象、遞歸與保護、糾錯與冗余、恢復。通過啟發推理的方式,對情況不確定的事物進行規劃、設計與思考,其具有根本技能性、概念性、工程思維的外延性、人性化、范圍全面性五個方面的主要特征[4]。
2.1 課程內容較為抽象復雜
《數據結構》中的主要學習內容包括線性結構、樹形結構、圖狀結構,其教材內容主要為描述性知識,對抽象事物進行概念性的描述必然使得其缺乏生動,不容易被學生學習與掌握。
2.2 先導課程不夠扎實
《數據結構》課程的學習必須有一定的先導課程做基礎,例如《算法分析與設計》課程以及《C語言程序設計》課程,學生先導課程的知識掌握程度直接影響到《數據結構》的學習能力,在高校實際的教學環節中,學校對于《C語言程序設計》課程的重視程度并不高,在兩者課程的設置上,一般都是間隔一個學期到兩個學期,由于《C語言程序設計》課程內容本身就屬于抽象理論內容,需要的實踐性較強,學生在學習《數據結構》時,其《C語言程序設計》的基礎知識已經淡忘,對于其中相關的變量、控制語句以及數據類型等知識基本已經消失殆盡,所以在進行算法編程時會遇到很多的困難,難以將《數據結構》中的基本算法、基本存儲結構,轉化為可執行的C源代碼,這就使得《數據結構》教學的課堂效果很不理想。
2.3 課程實踐環節薄弱
《數據結構》課程的教學要求之一就是學生能夠具有復雜程序的設計技能,實踐對于《數據結構》課程環節的重要性遠遠高于理論知識的傳授。對于涉及到的具體問題,此課程的學習標準是要求學生能夠使用相應的算法以及數據結構獨立解決一定程度的問題。這就要求課程中的實踐課時必須有所保障,完成上機實驗就是必須的過程。目前眾多高校開設的《數據結構》課程的上機時間較少,正常來講,學生需要每周6個課時的上機時間,但是在實際中,大多學生的上機時間只有不到2個課時,課時上的缺失使得學生的實踐環節較為薄弱,學生的實踐能力沒有得到很好的鍛煉,《數據結構》課程也就大大失去了其真實的作用,成為了只能紙上談兵的一門課程[5]。
3.1 計算思維有助于重組程序的實現
在《數據結構》課程中,對于同一個問題通常需要采用不同的方法來完成相應的算法,在對這些算法進行思維選擇的時候,需要較好的計算思維能力。舉例來說,對問題進行分解是有多種可能結果的,分解的方法和結果因為計算思維的不同其表現也會有所不同,分解的過程希望每一個被分解的模塊都能夠進行重新組合,而如何能夠使得被分解的模塊得到最大可能的重組,計算思維是決定性的因素,在對算法進行設計或者優化的過程中,需要利用到遞歸、并發、抽象與分解以及啟發式推理等計算思維方法[6]。
3.2 《數據結構》中的算法思維隸屬于計算思維
在《數據結構》課程中,當出現一個未知問題時,首先需要能夠從問題中抽象出數據對象,進而分析數據對象中各個元素之間的相互關系,例如邏輯關系等,隨后確定這種相互關系用怎樣的存儲結構才能夠得以實現。整個問題的求解過程,可以看成是建立模型的過程,抽象建模。計算思維的計算能力相較于《數據結構》課程中的算法來說,可能更加的寬泛,因此《數據結構》中計算思維的運用是計算思維中的一小部分[7]。
3.3 計算思維有助于《數據結構》課堂靈活性的實現
計算思維具有概念化的特點,《數據結構》中程序化程度較大,程序化的教學其靈活性必然較低,在使用計算機來進行解決具體問題時,將算法思想編寫成能夠解決問題的程序是可行的方法,在《數據結構》中運用概念化的計算思維,有助于《數據結構》靈活性的提高。
3.4 計算思維能夠培養學生的學習興趣
對《數據結構》的學習,最主要的是學生的學習興趣,在教學過程中,要想學生能夠對知識理解得更深刻,必須要求的主觀條件是學生對《數據結構》具有較強的學習興趣,但是作為一門理論性較強的課程,要想讓學生對其產生興趣不是一件容易的事,如何激發學生的求知欲,調動學生的積極性是需要探討的問題,計算思維能夠將課程內容簡約化,課堂內容的簡約化將直接提升學生在進行學習時的成就感,從而逐漸培養學生的學習興趣。
4.1 遞歸方法的在《數據結構》中的應用
遞歸方法指的是將代碼譯成數據,再將數據譯成代碼的過程。將其放在《數據結構》中指的是對一個函數在定義時出現的直接調用或者間接調用的過程。二叉樹的遍歷是二叉樹中最重要的運算之一,也是進行其他樹狀結構運算的基礎。二叉樹遍歷是指沿著某條搜索線路,依次對每個結點做一次訪問,訪問的結點所做的操作主要依賴于具體的應用。由于二叉樹定義的本身就包含著遞歸概念,因此將遞歸方法運用在《數據結構》中是理所當然的事情,遞歸算法對二叉樹的遍歷有前序遍歷、中序遍歷、后序遍歷。以中序遍歷為例,首先可以按照計算思維中的分解方法來將整個遍歷的問題劃分為若干個簡單的子問題,將中序遍歷分解為中序訪問左子樹、右子樹、根結點三個子問題,然后對左子樹、右子樹再進行分解,一直這樣分解下去,直到不能再分解為止,也就是子樹為空為止。在分解的過程中,算法總是根據同樣的理論進行分解,不斷按照同樣的邏輯順序進行訪問,導致這些較小的問題不斷被反復提及,從而形成了使用遞歸方法求解。
4.2 抽象與分解方法在《數據結構》中的應用
在《數據結構》中含有很多種排序算法,如插入排序、冒泡排序、選擇排序、快速排序等算法,這些算法在傳統的教學中屬于較為重要的難點知識,學生對其掌握能力普遍較差,主要是因為學生對各種排序算法沒有形成良好的計算意識,通過計算思維,可以將抽象與分解的方法運用到算法的學習中,即將一個復雜的問題分解成若干個簡單的子問題來處理與解決。
4.3 計算思維在《數據結構》教學模式及內容中的應用
《數據結構》課程的教學內容繁多,在以往的課堂中,教師以講授理論知識為主,學生在課堂中獨立思考的機會較少,由于學科知識內容缺乏生動且較為枯燥,學生的自主學習熱情普遍不高,計算思維可以很好地彌補傳統教學模式的不足,將計算思維滲透到《數據結構》的教學中,使得學生能夠運用計算思維解決《數據結構》中的問題,使得問題能夠得到最大化的解決,通過計算思維的運用,對教學內容進行合理的優化,在優化的同時,需要注意不同類型數據的存儲方式、基本算法實際應用,訓練學生的計算思維能力。在教學模式方面,通過滲透計算思維,啟發式、參與式的教學新模式更加容易展開與實施,從而促進《數據結構》課堂中學生的積極性。
《數據結構》在計算機專業中占有重要的地位,由于該課程算法多、概念多、知識點多,理論性較強,學生學習起來具有一定的難度。計算思維目前已經成為一種通識教育,被廣大教育學者研究。由于計算機學科在培養學生計算思維方面具有獨特的優越條件,計算思維在《數據結構》中的應用不僅可以提高學生的專業知識的應用水平,還能夠提升學生的整體的思維素養,進一步提高了學生解決問題的能力,對于我國的人才培養大有裨益。
[1] 高賢強,化希耀.《數據結構》課程教學模式探索與研究[J].中國電力教育,2014(11):110~111
[2] 計算思維.百度百科.http://baike.baidu.com/link?url=8dxaFUoPyRYPkcYqou583Q2ZpHr8a9vjO8qPc6x5zZ7amou7h9H_25Ai32VfF-cei5M7zhzL5W2ldCQF96nk4Z_.
[3] 劉昕,石樂義,亓雪冬.面向計算思維的數據結構課程教學改革[J].計算機教育,2013(16):35~38
[4] 牟琴.基于計算思維的計算機基礎課程教學與學習的模式研究與實踐[D].成都:四川師范大學,2012
[5] 鄧銳.數據結構課程教學的表象訓練研究[D].長沙:湖南師范大學,2012
[6] 金萍,宗瑜.《數據結構》教學改革初探[J].皖西學院學報,2012,02(05):42~44
[7] 周玉林,賴鑫生.《數據結構》教改中的問題研究與探討[J].上饒師范學院學報,2012,03(01):84~88
Research on the Teaching Reformation of Data Structure Course with Computational Thinking
GAO Xian-qiang,HUA Xi-yao,CHEN Li-ping
(College of Information Engineering,Tarim University,Alaer 843300)
Introduces the definition and features of computational thinking,lists themain problems that exist in the teaching process of Data Structure course.Analyses four aspects how computational thinking is leaded into the Data Structure course.The computational thinking helps achieve the reorganization proceedings,the algorithm thinking is part of the calculation thinking,computational thinking can achieve the flexibility and computational thinking curriculum to cultivate students'interest in the Data Structure course.Researches on the teaching reformation with computational thinking in the Data Structure course.
Computational Thinking;Data Structure;Teaching Reformation
1007-1423(2015)07-0016-04
10.3969/j.issn.1007-1423.2015.07.005
高賢強(1978-),男,山東成武人,研究生,講師,從事領域為計算機應用方面的教學與科研工作
化希耀(1982-),男,甘肅景泰人,研究生,講師,從事領域計算機圖形圖像方面的工作
2015-01-29
2015-02-15
塔里木大學高教課題項目(No.TDGJ1334)、塔里木大學高教課題項目(No.TDGJ1309)
陳立平(1976-),男,新疆阿拉爾人,博士,副教授,從事領域為農業信息化與計算機圖形圖像方面的工作