《數據結構》課程案例教學設計分析

時間:2022-03-11 11:31:52

導語:《數據結構》課程案例教學設計分析一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

《數據結構》課程案例教學設計分析

摘要:《數據結構課程的教學面臨知識點多且抽象枯燥等問題,案例教學對于激發學生學習興趣有積極的作用。然而,傳統課堂授課教學模式下的案例教學一般作為導入理論課程教學的手段,很難將案例教學貫穿于整堂課程中,而現代化教育手段MOOC的興起為線下實施案例教學創造了條件。對MOOC背景下《數據結構》課程的案例教學進行教學設計,給出案例集及相應的教學實施方法。該設計將作為教學改革手段,在后續的課程教學中實施。

關鍵詞:數據結構;案例教學;MOOC

《數據結構》是計算機專業中的一門核心的專業基礎課,研究非數值計算中計算機的操作對象以及它們之間關系和操作的學科[1]。在計算機專業課程設置中,該課程起著承上啟下的作用,其教學效果直接影響到編譯程序、操作系統、數據庫系統等后續課程。然而在實際授課過程中,由于課程知識點多、內容抽象,學生普遍感覺枯燥,久而久之就失去了學習興趣。為了克服此問題,許多教育工作者在該課程的授課過程中引入案例化教學方法[2-7],目的是借助于形象生動的實際案例,激發學生學習和解決此問題的興趣,進而提高教學的學習效果。但是,傳統的以課堂教學為主的授課方式將課堂上有限的時間主要用于基本知識點和概念理論的講述,因此在應用案例教學的過程中普遍存在的問題是只能應用少量簡單的案例,作為導入理論課程教學的手段,而很難真正將案例教學貫穿于整堂課程中。近年來MOOC(MassiveOpenOnlineCourse,大規模開放式在線課程)等現代化教育手段的興起,使得傳統的授課方式的改革成為可能。通過MOOC,學生可以在課下通過自主學習的方式學習基本知識點,而傳統的課堂時間則可以用來實施更合理的教學方式。因此,MOOC背景下的線下授課為實施案例教學創造了條件。

案例是一種先進的教學方法,非常適合于理論與實踐結合緊密的課程。《數據結構》課程采取案例教學可以帶來如下好處:(1)讓學生理解理論提出的背景。傳統的授課方式多采取填鴨式教學,學生不知道所學知識的背景。通過案例教學,可以使學生了解知識為何而來。(2)讓學生理解如何將理論知識應用于現實問題的解決。空洞的理論授課,只能使學生學會一堆概念,而不知道這些知識如何應用。在以后的工作中碰到問題,也不知道采取何種方式解決。(3)培養學生對問題進行抽象分析和實踐的能力。案例化的教學首先需要對現實問題進行抽象分析,然后采取合理的方式對其實現。學生在這樣的教學環境中進行熏陶和訓練,其抽象能力和實踐能力勢必得到提高。但是案例教學要取得好的效果,案例的設計非常關鍵。案例需要被仔細設計,使其即滿足學生的學習需求,又不至于讓學生產生畏難情緒;同時還能在一節課或兩節課的時間教學完成,符合教學的時間要求。在參考了大量教材、論文的基礎上,并結合長期教學過程中總結的學生的學習需求和接受能力,設計了一套案例集,用于本校《數據結構》課程的后續教學改革。此案例集包含基本案例和綜合案例。每章配備至少一個案例,通過該案例,引出該章知識點的背景、數據結構的設計、相關算法的設計,從而使得學生通過該實例理解該結構或算法的應用背景、知識的應用場景。除此之外,課程還配備了一些綜合實例,這些實例能體現知識點的融合,從而能夠使學生體會知識的綜合運用、提高抽象思維能力。

1課程的知識體系

《數據結構》課程的知識體系一般分為兩大模塊:數據結構模塊和查找排序模塊。數據結構模塊介紹每種類型的數據結構的定義、存儲和基本操作的實現。查找和排序模塊則討論各種常用的查找和排序算法。如表1所示,《數據結構》課程知識點的組織一般分為七章,前五章討論基本的數據結構,后兩章討論查找和排序。第一章線性表介紹順序表、鏈表及其查找、插入和刪除等操作的實現,第二章棧和隊列介紹棧和隊列的順序存儲和鏈式存儲、插入和刪除等操作的實現以及棧和隊列的應用,第三章串數組和廣義表介紹串的定義、存儲、模式匹配算法、數組的存儲和廣義表的概念,第四章樹和二叉樹介紹樹和二叉樹的定義和存儲、二叉樹的性質、二叉樹的遍歷和線索化、樹的遍歷、赫夫曼樹和赫夫曼編碼等,第五章圖介紹圖的鄰接矩陣和鄰接表存儲、圖的遍歷、最小生成樹、拓撲排序、關鍵路徑、最短路徑等算法,第六章查找介紹順序查找、折半查找、二叉排序樹的定義、查找、插入和刪除、哈希表的構造和查找等,第七章介紹直接插入排序、shell排序、起泡排序、快速排序、簡單選擇排序、堆排序和基數排序等。

2基本案例及教學實施方案

2.1基本案例。表2列出了基本案例集,其中每一行對應了數據課程的一章,第1列是該案例對應的基本知識點,第2列對應了在基本知識點上的引申,引申的知識點用于引出案例且可以用在案例的講解上,第3列是基本案例,第4列是引申案例。2.2基本案例的教學實施。每章配置至少一個基本案例,其教學采取如下步驟實施:(1)對基本知識點進行講解教師通過回顧本章知識,對該案例涉及到的基本知識點進行講授,基本知識點主要涉及到數據結構的描述和基本操作的實現。(2)引申知識點的實現-引導式方法在基本知識點的實現基礎上,對基本操作進行擴展,實現引申的知識點。該步驟采取引導式方法授課,即與學生互動,引導學生實現引申知識點。(3)案例的導入和實現-引導+框架+學生分組討論基于引申知識點的實現,引入案例,說明案例的要求。引導學生對案例的數據結構和操作進行抽象設計,得到一個實現框架,最后讓學生討論來實現框架。(4)案例的講解-有的放矢教學隨機抽取學生分組,檢查他們的設計及實現中存在的普遍問題進行分析。(5)案例的引申及類比案例的引出-教師引導+學生業余實現(開放式)對基本案例的實現進行總結,并類比引出引申案例,引導學生思考其如何實現,并在課下時間實現。以第一章的基本案例“有序表的合并”為例,該案例涉及的基本知識點包括表的順序存儲和鏈式存儲、表的查找、插入和刪除等基本操作。引申的知識點是有序表的插入,該知識點可以通過組合表查找和表插入兩個操作來實現,同時該算法實現又可以用到基本案例的實現中。然后是基本案例的實現,因為有序表的合并可以在有序表插入的基礎上實現,因此可以引導學生建立有序表并對有序表的插入進行改造來實現。最后,與此案例相類似的案例有約瑟夫環、多項式運算等,可以讓學生思考如何采用類似的分析和設計方法對這些案例進行實現。

3綜合案例

基本案例涉及的知識點相對單一,因此需要設置一定的綜合案例,使學生理解知識的綜合運用。綜合案例的選擇首先需要體現知識點之間的融合,即需要涉及到多個相互關聯的知識點。其次需要控制其規模和難度,規模不易過大,難度要適中,這樣才能使學生既有對其進行實現的信心,又能體會到學以致用的效果。綜合案例的講授方法采取“教師引導+學生分組討論+確定實現框架+課下實現”的方法,即通過教師引導確定該案例涉及的知識點,然后由學生分組討論可能的實現方案,繼而總結這些實現方案確定可行的實現框架,最后留下具體的實現給真正感興趣的學生課下實現。受限于固定的授課學時,綜合性案例不易過多。選取了四個綜合案例,如表3所示。表達式求值及形式轉換,涉及到棧、二叉樹的創建、遍歷、字符串截取及轉數值等知識點。通過該實例,不僅可以使學生體會到不同數據結構之間的相通性,也為后續編譯原理課程的學習打下一定基礎。哈夫曼編碼譯碼涉及到正則二叉樹的存儲(靜態鏈表)、生成及遍歷等知識點,使學生可以體會到靜態鏈表的用途、基于哈夫曼的加密解密實現等。基于索引的學生成績管理系統涉及到數據元素及索引的外部存儲和內部存儲、基于索引的數據元素的插入刪除(包括索引的插入刪除和數據元素的插入刪除),索引可以是順序索引,也可以是樹索引。通過該實例,不僅可以使學生體會到數據的外部存儲和內部存儲之間的關系,而相關的索引知識還可以為后續數據庫原理課程的學習打下一定基礎。

4結語

本文針對MOOC背景下案例法教學實施的問題,設計了一套案例集。該案例集包含基本案例和綜合案例,基本案例用于每章的教學,綜合案例用于綜合性訓練。該案例集中的不少案例已在筆者多年的教學實踐中進行了實施。在后續基于MOOC的課程教學改革中,該案例集及教學方法將被實施到本校的《數據結構》課程教學中。

作者:楊春花 單位:齊魯工業大學