代文征 楊勇 蔣文娟
摘要:針對數據結構綜合程序庫建設的內容匱乏問題,分析數據結構課程的特點,提出基于經典的數據結構形式以及采用兩種基本的存儲方式實現相關基礎算法,實現擴展的綜合項目程序,并通過實踐結果驗證構建綜合程序庫的教學效果。
關鍵詞:數據結構;程序庫;實踐
背景
隨著網絡和信息技術的不斷普及,人們的生活及生產活動產生的數據正在呈指數級增長。對海量數據進行處理及應用,是衡量現代化國家信息技術能力的一個重要標準,是一個國家信息技術發(fā)展程度的展板。因此,讓學生認識數據的重要性、樹立數據處理的計算思維是很重要的。數據結構是高校計算機、信息類專業(yè)的重要專業(yè)基礎必修課,是培養(yǎng)學生計算思維的基礎課。數據結構有助于程序員更有效地組織數據、設計高效的算法、完成高質量的程序,以滿足錯綜復雜的實際需要。
數據結構課程涵蓋了各種基本數據結構,其目的是使學生掌握并熟練應用各種基本數據結構及復雜數據結構來解決實際的數據處理問題。在實際教學中,由于沒有較好的案例,學生無法將基礎算法規(guī)律化,更無法將其應用到實際問題上。
2數據結構內容與特點
數據結構課程主要介紹基礎數據結構的邏輯結構、算法及算法在存儲結構體上的實現,并擴展了基本數據結構。學生要重點掌握基本數據結構的邏輯結構、存儲方式及算法實現。數據結構課程的基本內容比較多,需要學生深刻理解并掌握。在眾多的教學內容中存在著某種可遵循的規(guī)律,也就是“算法公式化”。學生需要不斷地閱讀并動手編寫算法程序,才能從中找到這些規(guī)律。學生切身體會并掌握基本規(guī)律后,就能夠輕松簡單地進行相關數據結構算法程序的編寫及應用。因此,課程教學內容以基礎數據結構為切入點,講解如何分析邏輯結構和基本算法,并在兩種基本的存儲方式下進行相關算法程序的編寫。數據結構課程的主要特點如下:
(1)數據結構知識點多。針對線性結構的基礎數據結構形式包括線性表、棧、隊列、串等,非線性結構的包括樹、二叉樹、圖(有向圖,無向圖)等。
(2)算法實現思想多。針對不同的數據結構形式有兩種基本的存儲方式:順序存儲及鏈式存儲,而每種數據結構的常見操作(如插入、刪除、查找、排序、修改等)算法的實現又與存儲結構有關。
(3)知識關聯性多。數據結構的學習需要線性代數、離散數學、概率統計等數學知識,還需要具有相關的程序語言基礎。
(4)實踐性強。數據結構需要學生動手使用程序語言實現相關的抽象算法,來驗證算法的正確性及可行性,即最終的目的不是掌握算法,而是使用程序語言具體實現算法。
3構建程序庫
簡單的課程講解和實驗實踐并不能讓學生真正了解和掌握該課程所要求的知識。因此,需要建立一個基礎程序及應用程序庫,幫助學生更好地掌握數據結構的算法及具體程序實現,為學生進行創(chuàng)新學習打下一定的算法及實現基礎。數據結構基礎程序及應用程序庫包含以下幾方面。
(1)數據結構基礎算法及程序:典型的數據結構基本操作算法及相關存儲體上的具體實現程序庫。
(2)數據結構應用程序庫。典型的數據結構在大中型項目中的具體使用及相關操作算法實現,例如購票系統、多通道病人就醫(yī)系統、旅游引導系統等,讓學生了解這些系統的具體實現,幫助學生樹立知識應用的思想,增強學生的學習興趣。
(3)在線互動平臺和資源庫。構建針對各項目的在線資源和答疑區(qū),鍛煉學生的組織能力、溝通能力和協作能力。
(4)課程內容庫。針對數據結構課程的各個數據結構形式,建設相應的課程內容,方便學生自主學習。
(5)數據結構文檔庫。讓學生使用文檔模板記錄開發(fā)過程中的各個元素,規(guī)范學生的文檔寫作。
4程序庫更新、維護及代碼復用
構建的程序庫隨著算法研究的發(fā)展,可以根據需要在服務端進行相關案例及算法的更新和維護。程序庫的管理操作是由程序庫管理平臺來實現的,用戶只有使用權,但用戶可以反饋自己在使用中發(fā)現的問題及對程序庫的意見,程序庫管理系統收集用戶的反饋信息進行針對性的維護。
構建程序庫系統前,首先對系統進行用例模型、領域知識模型的分析,然后采用正向工程,生成系統需要設計的相關對象,從而保證功能代碼的復用,方便后期進行系統維護。
5程序庫實施與使用
課程共安排64課時,包括52課時的理論教學和12課時的實驗教學,基本保證了知識點的傳授和實際項目的鍛煉。另外,在52課時的理論教學課程中,有4課時的討論時間?;A理論授課時,將基礎程序庫中的部分算法進行現場的編程實現,如果學生想在課后進行強化的自學,可以到程序庫中進行檢索。在構建程序庫時,要求函數名能夠體現程序功能,學生在課后自主學習進行程序庫檢索時,需要提供基本的功能名,系統進行粗糙匹配、相似度評價,在半監(jiān)督的方式下由學生進行精確定位算法函數。
為幫助學生學習,我們已經建立了校內在線學習系統,將主講教師的講課錄像及相關課程庫發(fā)布到移動互聯網中。此外,還為學生開放了相關實驗室,幫助學生研究一些開放性問題,激發(fā)學生利用移動互聯網尋求問題的答案,培養(yǎng)學生解決問題、撰寫文檔的能力。
6結語
目前,數據結構算法及案例庫研究和構建非常匱乏。由于學生的興趣點不同,案例庫應提供不同關注點的項目案例,使學生有更多的選擇,在達到同樣的教學目的的同時,能夠滿足學生不同的興趣需要。因此,構建一個完整的自成體系的綜合項目案例庫是很有必要的。將該程序庫應用到學校計算機信息類專業(yè)的數據結構教學中后,經過4個學期的效果對比,教學效果較好,相關成果獲得了河南省教育廳教學成果二等獎。