翟佳佳 朱晶晶
摘要:該文針對目前數據結構課程設計存在的問題,提出相關解決措施,使學生能夠理解和學習如何分析和解決問題,教師應將提高自主學習能力為目標,進行課程設計創新。實踐證明,案例驅動教學法可以彌補傳統教學法的不足,拓寬學生的思維,提高學生自主學習效率,達到數據結構課程設計的教學目的。
關鍵詞:案例驅動;數據結構;課程設計;教學改革
中圖分類號:G642? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)26-0209-02
開放科學(資源服務)標識碼(OSID):
案例驅動的數據結構實踐是至關重要的,只有有效實行該教學過程,才能夠提高學生的程序設計能力,使學生可以有效解決相關問題,同時提高自身的實踐創新能力。案例驅動的數據結構課程設計教學改革在實際教學中收獲頗豐,是具有較高教學效率的教學改革。
1 課程設計的教學目標及定位
課程設計相關的教育目標是:(1)學生通過課程設計深刻理解教材中學習的基本知識和基本理論,并結合各種數據結構,計算機表現形式,基本任務和基本操作的特點,進行相對復雜的計算,提升算法分析和評估能力;(2)使學生具有分析抽象數據的能力,并從復雜的實際應用問題中提取正確的數學模型;(3)通過加強編碼方面的指導,使學生可以提高他們的編程技能,正確編寫程序,并寫出高質量的程序;(4)帶領學生在分析、設計、編碼、調試等模塊加強學習,教育學生掌握軟件所需的實際技能以及分析和解決問題的能力;(5)培養學生在需求分析、大綱設計、詳細設計、編碼實現、測試維護等方面的能力,初步培訓學生關于軟件工作標準和科學學習方式的能力;(6)培養學生團隊合作精神和編寫規范性數據的能力。
2 傳統課程中發現的問題
(1)缺乏操縱整體工作的能力。學生在電子計算機模型上的工作能力較差,對軟件開發的知識欠缺,因此他們缺乏操縱整體工作的能力。通常,軟件開發課程是在算法設計課程之后建立的。在學習設計方案的算法設計課程之前,大多數學生沒有分析和編寫大中型程序過程的經歷。
(2)基本數據結構被機械復制。數據結構教科書都是最原始的數據結構。基本上,沒有擴展和修改,直接在課程設計中使用它來解決實際問題有所欠缺。
(3)存在復制他人的課程設計現象。由于完成課程設計所花費的時間有限,因此一些學生尋求解決辦法,通過互聯網、書籍等解決無法自行完成的問題,無疑是通過查找資料,汲取其他人的解決問題思路來解決自己的課程設計問題。
3 案例驅動的數據結構課程設計教學改革的特點
案例驅動的數據結構課程設計教學改革是將案例教育的概念引入算法設計學科設計文化教育。在對經典案例的基本原理和處理過程介紹的基礎上,再加上多媒體系統,使老師與學生進行交流和互動,提高學生分析和處理抽象問題的能力,塑造學生的設計計劃和自主創新的專業技能,并填補和改善當前算法設計課程中缺乏實踐活動的能力。該方法具有以下特點:
(1)了解軟件開發的概念。案例驅動的數據結構設計是軟件開發概念的實際過程,使學生在解釋的全過程中有效了解軟件開發的全過程,掌握設計觀念。
(2)提高自主學習能力。教師對經典案例包含的算法設計進行詳細的分析。在應用不同的算法來處理相同問題時可能會導致特性和功能上出現差異,學生可以在與老師的交流討論中提高對各種數據結構的理解,幫助學生設計出更適合解決課程設計問題甚至多種解決方案的數據結構。
(3)養成良好的編程習慣。教師在指導學生寫代碼的同時,代碼案例應該具有標準化的定義,清晰的過程,強大的可讀性和參考值,在此條件下鼓勵學生養成良好的編程習慣。老師根據多媒體方法展示編碼編譯程序和調試的全過程,使學生對編程的自然環境有更具體的了解,并能夠靈活地應用諸如跟蹤和斷點之類的調試方法,開發過程將更加有效。
4 典型數據結構課程設計案例分析
“活期儲蓄賬戶管理”是一個典型的數據結構課程設計主題。下面以描述過程為例,概述案例驅動的數據結構課程設計教學的過程。本次課程設計中需要實現的功能有:(1)使用交互式工作方法 ;(2)實現創建新用戶;(3)實現取消儲蓄賬戶;(4)存入銀行具體賬戶;(5)提款。在特定賬戶上實現的功能有:(1)排序并顯示所有賬戶信息;(2)查詢賬戶余額;(3)查詢交易記錄;(4)將所有賬戶和交易信息保存到文件中,程序運行時從文件中讀入。在課程設計中研究的知識點包括:數據結構的選擇和構建,使用與特定數據結構相對應的算法來實現特定功能,將結構化數據讀取和寫入文件以及靈活使用編程語言。
首先,務必對主題進行粗略的分析,分析出主題包括兩個級別的信息。一方面,基本存款賬戶信息內容可以設計為包括諸如賬號、名稱、賬戶余額等字段名稱。另一方面,交易明細信息內容可以設計為包括諸如賬戶的字段名稱。數據結構中有順序存儲結構、鏈式存儲結構和樹形結構,每種類型的存儲結構都有其優缺點。順序存儲的總體設計較簡單,插入和刪除賬戶必須移動記錄,很難連續存儲單個賬戶的交易詳細信息。當枚舉類型并從順序良好的序列表中查找記錄時,可以應用某些優化算法(例如二分法)來提高事務管理記錄的效率。總體來說,順序存儲適用性和總體效率相對較低。鏈式存儲結構設計略復雜,容量不設上限,賬戶插入刪除較方便,鏈式結構中存儲的事務管理記錄是連續的,因此枚舉類型很方便,但是效率很低。查找記錄時,它將解析所有鏈接列表。從此案例分析,鏈式存儲結構適用性和總體高效率高于平均水平。樹形存儲結構是最復雜的,并且沒有容量限制。插入和刪除優化算法也相對復雜。獨特的樹結構(二進制排列樹等)的應用可以提高檢索效率。實際上,數據庫管理系統(DBMS)大多以樹形結構實現。綜上分析可得出結論,在實現難度方面,順序存儲是最簡單的,鏈式存儲居中,樹形存儲是最困難的。因此,一般情況下,可要求學生使用鏈式存儲來完成學習,并且適當鼓勵技能較強的學生使用樹形存儲來實現。