張巨萍

摘 要:《數據結構》課程是計算機類專業的專業基礎課,在其課程體系中占有重要地位。財經類院校的該專業學生由于數學基礎和計算機硬件知識的薄弱、個人學習的畏難心理以及課程本身相對抽象等因素影響,造成對《數據結構》課程中存儲結構部分的學習困難,嚴重影響了后續課程的學習。本文從改進存儲結構的教學方式入手,采用在大的邏輯結構分類內,以存儲結構為主線,邏輯結構為輔線的教學模式,強化學生對存儲結構代碼設計的理解和使用。經長期教學實踐表明,取得了較好的教學效果。
關鍵詞:數據結構;邏輯結構;存儲結構
【中圖分類號】G 【文獻標識碼】B 【文章編號】1008-1216(2016)03C-0084-02
一、問題的提出
《數據結構》課程是計算機類專業的專業基礎課之一,在計算機類專業的課程體系中起著承上啟下的作用。該課程強調鍛煉學生的動手能力,提高其程序設計水平,是后續的編程類課程的基礎。對于學生實踐能力和理論水平的后續提高具有極其重要的作用。
存儲結構是《數據結構》課程里實現算法功能的重要基礎。因為好的存儲結構能夠提高數據的存取效率,進而提高算法的執行效率。在傳統的教學模式中,將數據結構從邏輯上分為四種,分別是:集合結構、線性結構、樹形結構以及圖(網)狀結構。但主要講解的存儲結構有兩種:順序存儲結構和鏈式存儲結構。目前的教學模式中,大都是以數據的邏輯結構為主線,依次介紹線性結構、樹形結構、圖狀結構以及基礎的搜索和排序算法。在介紹每種數據結構的過程中,討論其在不同的存儲結構上的定義以及相關的實現算法。這種教學模式存在的主要問題就是容易造成學生在兩種存儲結構實現上的混淆。例如,在線性結構的教學中,首先進行線性表的順序存儲結構實現——順序表的講解;接著再進行線性表的鏈式存儲結構——鏈表的講解。對于鏈表這部分內容,學生在課程設計中,常常會出現使用順序存儲結構進行定義,而用鏈式存儲結構的算法實現的現象。即:程序中在定義存儲結構時,使用順序存儲結構定義部分的代碼,但在算法實現過程中,使用的是鏈式存儲結構實現的算法。常常是線性結構尚未完全講授完,學生已經陷入了混淆狀態。而在后續內容的學習中,只要出現兩種不同結構的定義,學生就會出現混淆的情況。
二、問題產生的原因分析
在財經類院校的計算機類專業課程設置中,《數據結構》是提高學生編程能力的重要課程之一。經過對學生學習過程中遇到問題的詳細分析,我們發現與其他院校的計算機類專業相比,財經類院校計算機類專業的學生在學習中存在問題主要有以下幾方面的原因:
(一)學生個人的原因
在財經類院校中,《數據結構》課程是計算機類專業的學生所接觸到的第一門理論課,與語言課相比,較為抽象,另外還需要綜合利用先修課的內容,因此,有比較嚴重的畏難心理。例如,有的學生由于先修語言課的學習有困難,程序設計的思維還沒有完全建立起來,這時,嘗試去編制更大規模的程序從學生心理上就是一個很難完成的任務。
(二)課程本身的問題
首先,由于《數據結構》課程是介于數學、計算機軟件以及計算機硬件之間的交叉課程,本身就是綜合了上述幾門課程知識的綜合性課程,如果其中有一門課程的知識掌握不到位,就會影響這門課的學習效果。其次,在程序設計語言課程中,由于指針這種數據類型比較抽象,不容易理解和想象,使用上也不如數組直觀,尤其是學生對于存儲地址的理解,不能與其生活中的地址進行對比理解。另外,指針是鏈式存儲結構的核心類型,學生對單個的指針變量尚且不能較好地理解和使用,進入《數據結構》學習后,指針都被嵌套在結構體或類中,更增加了學生的理解難度。由于課程的教學目的不同,先修語言課主要注重基本的變成思維和語法功能的掌握,而在《數據結構》中則更加注重算法設計能力的培養和如何進行數據的優化存儲和高效存取。
(三)院校自身特點導致的問題
在財經類院校中,學生的數學基礎相對薄弱。計算機類專業課程對學生的數學基礎有一定的要求,而財經類院校由于文科類專業占較大比重,導致數學類課程的教學要求普遍較低,造成學生數學基礎相對薄弱,從而對數據結構和算法的理解程度不夠,導致學習效果不佳;另外,硬件方面課程開設相對較少。與其他理工科院校相比,財經類院校在硬件方面的師資和設備都相對薄弱,導致學生在學習與硬件相關的課程時,理解深度不夠;這也間接造成了《數據結構》課程教學中,學生對于存儲結構的理解困難。
三、教學方法改進和教學實驗
(一)教學方法改進
對于由前述原因造成的學生學習上的困難,可以根據困難產生原因來一一進行解決。首先,針對由于學生先修課基礎不足的問題,可以對學生所需先修課的內容進行抽取整理,在課程開始時提供給學生作為課程的輔助材料,在學習過程中遇到困難可以隨時查閱,以免問題越積越多。其次,對于學生的思想困擾,需要在課程開始時,先進行全面的課程概述,讓學生充分了解課程的目的和意義,重點與難點。在對課程有了清晰的認識后,學生就會樹立“課程并不難,努力就能學會”的信念。同時,對于硬件基礎薄弱問題,也可以通過課堂講解的方式,將部分課程所涉及內容用較少時間突出講解,也鼓勵學生使用手頭現有條件,觀察硬件設備,以得到直觀的印象。解決了學生的思想困擾與先修課理解不足所造成的問題,接下來,就可以尋求更容易為學生所接受的教學模式,以徹底解決學生存儲結構的混淆問題。
在教學過程中,筆者發現學生對于邏輯結構的認識比較清晰,容易接受。因此,在大的邏輯結構分類內,嘗試以存儲結構為主線,邏輯結構為輔線進行講解。還是以線性結構教學為例,由于學生對線性表、棧以及隊列的各自邏輯特性把握比較清晰,但在程序實現時,容易混淆順序存儲與鏈式存儲。因此,我們首先講解線性表、棧以及隊列的基本操作在順序存儲結構上的實現。通過對順序存儲結構的反復類似的操作,學生對于順序存儲結構的定義和使用有了比較深刻的理解和認識。接下來進行線性表、棧以及隊列的鏈式存儲結構的教學,同時加強學生對于語言中指針等數據類型的理解。通過對線性結構的這三種不同結構在鏈式存儲結構上的反復實現,學生能夠形成清晰的鏈式存儲結構概念,了解存儲器構成,從而能夠游刃有余地進行數據的存儲和使用。
(二)教學實驗
對內蒙古財經大學計算機信息管理學院2013級計科專業和電商專業的平行班分別進行兩種教學法的授課,在線性結構的教學結束后,通過上機試驗和課程考試的結果,分別統計了對應平行班在兩種教學法下,混淆了兩種存儲結構的同學人數,經過比較研究,考察是否新的教學方法更適合于我校學生的學習程度。
實驗結果如下表所示,計科專業的35名同學,有2人在實行新教法后出現了混淆現象,所占比例為5.7%;而平行班的37名同學,有8人出現了混淆現象,所占比例為21.6%。且實行新教法后,學生學習興趣明顯提高,對課程后續內容懼怕心理減輕。
四、結論
《數據結構》是計算機類專業的核心基礎課,存儲結構則是該課程的重要核心內容。學生對于存儲結構的掌握直接影響著他們對數據結構課程的學習效果,進而影響后續課程的掌握和學習。但是在存儲結構的學習中,由于種種原因,出現了對于兩種常用存儲結構在使用上的混淆。基于此問題,在存儲結構的教學過程中,引入在大的邏輯結構范疇內,以存儲結構為主線,以邏輯結構為輔線的教學方法,使學生不再發生兩種存儲結構在算法實現中的混淆問題,增強了學生的信心,提高了學習效率,激發了學生的學習興趣,也拓展了他們的視野,在教學實踐中的實驗結果證明,該方法取得了良好的教學效果。
基金項目:內蒙古財經大學2014年教育教學課題(JXC1416)。
參考文獻:
[1] 張銘, 趙海燕, 王騰蛟. 北京大學 “數據結構與算法” 教學設計[J]. 計算機教育, 2008, (20).
[2] 闞娜. 鏈式存儲結構在 數據結構中的教法[J]. 大觀周刊, 2011, (10).
[3] 邱勁, 王平, 徐展. 數據結構 課程教學改革與實踐探索[J]. 西南師范大學學報: 自然科學版, 2013 ,(1).
[4] 郭群. 數據結構課程實踐教學模式改革研究[J]. 福建電腦, 2015, (6).
[5] 楊秋格, 吳鵬, 鹿玉紅. 數據結構 教學中存在的問題及解決措施[J]. 課程教育研究, 2015 ,(10).