《數(shù)據(jù)結(jié)構(gòu)》課程案例教學(xué)設(shè)計分析
時間:2022-03-11 11:31:52
導(dǎo)語:《數(shù)據(jù)結(jié)構(gòu)》課程案例教學(xué)設(shè)計分析一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
摘要:《數(shù)據(jù)結(jié)構(gòu)》課程的教學(xué)面臨知識點(diǎn)多且抽象枯燥等問題,案例式教學(xué)對于激發(fā)學(xué)生學(xué)習(xí)興趣有積極的作用。然而,傳統(tǒng)課堂授課教學(xué)模式下的案例教學(xué)一般作為導(dǎo)入理論課程教學(xué)的手段,很難將案例教學(xué)貫穿于整堂課程中,而現(xiàn)代化教育手段MOOC的興起為線下實(shí)施案例教學(xué)創(chuàng)造了條件。對MOOC背景下《數(shù)據(jù)結(jié)構(gòu)》課程的案例教學(xué)進(jìn)行教學(xué)設(shè)計,給出案例集及相應(yīng)的教學(xué)實(shí)施方法。該設(shè)計將作為教學(xué)改革手段,在后續(xù)的課程教學(xué)中實(shí)施。
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);案例教學(xué);MOOC
《數(shù)據(jù)結(jié)構(gòu)》是計算機(jī)專業(yè)中的一門核心的專業(yè)基礎(chǔ)課,研究非數(shù)值計算中計算機(jī)的操作對象以及它們之間關(guān)系和操作的學(xué)科[1]。在計算機(jī)專業(yè)課程設(shè)置中,該課程起著承上啟下的作用,其教學(xué)效果直接影響到編譯程序、操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)等后續(xù)課程。然而在實(shí)際授課過程中,由于課程知識點(diǎn)多、內(nèi)容抽象,學(xué)生普遍感覺枯燥,久而久之就失去了學(xué)習(xí)興趣。為了克服此問題,許多教育工作者在該課程的授課過程中引入案例化教學(xué)方法[2-7],目的是借助于形象生動的實(shí)際案例,激發(fā)學(xué)生學(xué)習(xí)和解決此問題的興趣,進(jìn)而提高教學(xué)的學(xué)習(xí)效果。但是,傳統(tǒng)的以課堂教學(xué)為主的授課方式將課堂上有限的時間主要用于基本知識點(diǎn)和概念理論的講述,因此在應(yīng)用案例教學(xué)的過程中普遍存在的問題是只能應(yīng)用少量簡單的案例,作為導(dǎo)入理論課程教學(xué)的手段,而很難真正將案例教學(xué)貫穿于整堂課程中。近年來MOOC(MassiveOpenOnlineCourse,大規(guī)模開放式在線課程)等現(xiàn)代化教育手段的興起,使得傳統(tǒng)的授課方式的改革成為可能。通過MOOC,學(xué)生可以在課下通過自主學(xué)習(xí)的方式學(xué)習(xí)基本知識點(diǎn),而傳統(tǒng)的課堂時間則可以用來實(shí)施更合理的教學(xué)方式。因此,MOOC背景下的線下授課為實(shí)施案例教學(xué)創(chuàng)造了條件。
案例是一種先進(jìn)的教學(xué)方法,非常適合于理論與實(shí)踐結(jié)合緊密的課程?!稊?shù)據(jù)結(jié)構(gòu)》課程采取案例教學(xué)可以帶來如下好處:(1)讓學(xué)生理解理論提出的背景。傳統(tǒng)的授課方式多采取填鴨式教學(xué),學(xué)生不知道所學(xué)知識的背景。通過案例教學(xué),可以使學(xué)生了解知識為何而來。(2)讓學(xué)生理解如何將理論知識應(yīng)用于現(xiàn)實(shí)問題的解決。空洞的理論授課,只能使學(xué)生學(xué)會一堆概念,而不知道這些知識如何應(yīng)用。在以后的工作中碰到問題,也不知道采取何種方式解決。(3)培養(yǎng)學(xué)生對問題進(jìn)行抽象分析和實(shí)踐的能力。案例化的教學(xué)首先需要對現(xiàn)實(shí)問題進(jìn)行抽象分析,然后采取合理的方式對其實(shí)現(xiàn)。學(xué)生在這樣的教學(xué)環(huán)境中進(jìn)行熏陶和訓(xùn)練,其抽象能力和實(shí)踐能力勢必得到提高。但是案例教學(xué)要取得好的效果,案例的設(shè)計非常關(guān)鍵。案例需要被仔細(xì)設(shè)計,使其即滿足學(xué)生的學(xué)習(xí)需求,又不至于讓學(xué)生產(chǎn)生畏難情緒;同時還能在一節(jié)課或兩節(jié)課的時間教學(xué)完成,符合教學(xué)的時間要求。在參考了大量教材、論文的基礎(chǔ)上,并結(jié)合長期教學(xué)過程中總結(jié)的學(xué)生的學(xué)習(xí)需求和接受能力,設(shè)計了一套案例集,用于本?!稊?shù)據(jù)結(jié)構(gòu)》課程的后續(xù)教學(xué)改革。此案例集包含基本案例和綜合案例。每章配備至少一個案例,通過該案例,引出該章知識點(diǎn)的背景、數(shù)據(jù)結(jié)構(gòu)的設(shè)計、相關(guān)算法的設(shè)計,從而使得學(xué)生通過該實(shí)例理解該結(jié)構(gòu)或算法的應(yīng)用背景、知識的應(yīng)用場景。除此之外,課程還配備了一些綜合實(shí)例,這些實(shí)例能體現(xiàn)知識點(diǎn)的融合,從而能夠使學(xué)生體會知識的綜合運(yùn)用、提高抽象思維能力。
1課程的知識體系
《數(shù)據(jù)結(jié)構(gòu)》課程的知識體系一般分為兩大模塊:數(shù)據(jù)結(jié)構(gòu)模塊和查找排序模塊。數(shù)據(jù)結(jié)構(gòu)模塊介紹每種類型的數(shù)據(jù)結(jié)構(gòu)的定義、存儲和基本操作的實(shí)現(xiàn)。查找和排序模塊則討論各種常用的查找和排序算法。如表1所示,《數(shù)據(jù)結(jié)構(gòu)》課程知識點(diǎn)的組織一般分為七章,前五章討論基本的數(shù)據(jù)結(jié)構(gòu),后兩章討論查找和排序。第一章線性表介紹順序表、鏈表及其查找、插入和刪除等操作的實(shí)現(xiàn),第二章棧和隊(duì)列介紹棧和隊(duì)列的順序存儲和鏈?zhǔn)酱鎯?、插入和刪除等操作的實(shí)現(xiàn)以及棧和隊(duì)列的應(yīng)用,第三章串?dāng)?shù)組和廣義表介紹串的定義、存儲、模式匹配算法、數(shù)組的存儲和廣義表的概念,第四章樹和二叉樹介紹樹和二叉樹的定義和存儲、二叉樹的性質(zhì)、二叉樹的遍歷和線索化、樹的遍歷、赫夫曼樹和赫夫曼編碼等,第五章圖介紹圖的鄰接矩陣和鄰接表存儲、圖的遍歷、最小生成樹、拓?fù)渑判颉㈥P(guān)鍵路徑、最短路徑等算法,第六章查找介紹順序查找、折半查找、二叉排序樹的定義、查找、插入和刪除、哈希表的構(gòu)造和查找等,第七章介紹直接插入排序、shell排序、起泡排序、快速排序、簡單選擇排序、堆排序和基數(shù)排序等。
2基本案例及教學(xué)實(shí)施方案
2.1基本案例。表2列出了基本案例集,其中每一行對應(yīng)了數(shù)據(jù)課程的一章,第1列是該案例對應(yīng)的基本知識點(diǎn),第2列對應(yīng)了在基本知識點(diǎn)上的引申,引申的知識點(diǎn)用于引出案例且可以用在案例的講解上,第3列是基本案例,第4列是引申案例。2.2基本案例的教學(xué)實(shí)施。每章配置至少一個基本案例,其教學(xué)采取如下步驟實(shí)施:(1)對基本知識點(diǎn)進(jìn)行講解教師通過回顧本章知識,對該案例涉及到的基本知識點(diǎn)進(jìn)行講授,基本知識點(diǎn)主要涉及到數(shù)據(jù)結(jié)構(gòu)的描述和基本操作的實(shí)現(xiàn)。(2)引申知識點(diǎn)的實(shí)現(xiàn)-引導(dǎo)式方法在基本知識點(diǎn)的實(shí)現(xiàn)基礎(chǔ)上,對基本操作進(jìn)行擴(kuò)展,實(shí)現(xiàn)引申的知識點(diǎn)。該步驟采取引導(dǎo)式方法授課,即與學(xué)生互動,引導(dǎo)學(xué)生實(shí)現(xiàn)引申知識點(diǎn)。(3)案例的導(dǎo)入和實(shí)現(xiàn)-引導(dǎo)+框架+學(xué)生分組討論基于引申知識點(diǎn)的實(shí)現(xiàn),引入案例,說明案例的要求。引導(dǎo)學(xué)生對案例的數(shù)據(jù)結(jié)構(gòu)和操作進(jìn)行抽象設(shè)計,得到一個實(shí)現(xiàn)框架,最后讓學(xué)生討論來實(shí)現(xiàn)框架。(4)案例的講解-有的放矢教學(xué)隨機(jī)抽取學(xué)生分組,檢查他們的設(shè)計及實(shí)現(xiàn)中存在的普遍問題進(jìn)行分析。(5)案例的引申及類比案例的引出-教師引導(dǎo)+學(xué)生業(yè)余實(shí)現(xiàn)(開放式)對基本案例的實(shí)現(xiàn)進(jìn)行總結(jié),并類比引出引申案例,引導(dǎo)學(xué)生思考其如何實(shí)現(xiàn),并在課下時間實(shí)現(xiàn)。以第一章的基本案例“有序表的合并”為例,該案例涉及的基本知識點(diǎn)包括表的順序存儲和鏈?zhǔn)酱鎯?、表的查找、插入和刪除等基本操作。引申的知識點(diǎn)是有序表的插入,該知識點(diǎn)可以通過組合表查找和表插入兩個操作來實(shí)現(xiàn),同時該算法實(shí)現(xiàn)又可以用到基本案例的實(shí)現(xiàn)中。然后是基本案例的實(shí)現(xiàn),因?yàn)橛行虮淼暮喜⒖梢栽谟行虮聿迦氲幕A(chǔ)上實(shí)現(xiàn),因此可以引導(dǎo)學(xué)生建立有序表并對有序表的插入進(jìn)行改造來實(shí)現(xiàn)。最后,與此案例相類似的案例有約瑟夫環(huán)、多項(xiàng)式運(yùn)算等,可以讓學(xué)生思考如何采用類似的分析和設(shè)計方法對這些案例進(jìn)行實(shí)現(xiàn)。
3綜合案例
基本案例涉及的知識點(diǎn)相對單一,因此需要設(shè)置一定的綜合案例,使學(xué)生理解知識的綜合運(yùn)用。綜合案例的選擇首先需要體現(xiàn)知識點(diǎn)之間的融合,即需要涉及到多個相互關(guān)聯(lián)的知識點(diǎn)。其次需要控制其規(guī)模和難度,規(guī)模不易過大,難度要適中,這樣才能使學(xué)生既有對其進(jìn)行實(shí)現(xiàn)的信心,又能體會到學(xué)以致用的效果。綜合案例的講授方法采取“教師引導(dǎo)+學(xué)生分組討論+確定實(shí)現(xiàn)框架+課下實(shí)現(xiàn)”的方法,即通過教師引導(dǎo)確定該案例涉及的知識點(diǎn),然后由學(xué)生分組討論可能的實(shí)現(xiàn)方案,繼而總結(jié)這些實(shí)現(xiàn)方案確定可行的實(shí)現(xiàn)框架,最后留下具體的實(shí)現(xiàn)給真正感興趣的學(xué)生課下實(shí)現(xiàn)。受限于固定的授課學(xué)時,綜合性案例不易過多。選取了四個綜合案例,如表3所示。表達(dá)式求值及形式轉(zhuǎn)換,涉及到棧、二叉樹的創(chuàng)建、遍歷、字符串截取及轉(zhuǎn)數(shù)值等知識點(diǎn)。通過該實(shí)例,不僅可以使學(xué)生體會到不同數(shù)據(jù)結(jié)構(gòu)之間的相通性,也為后續(xù)編譯原理課程的學(xué)習(xí)打下一定基礎(chǔ)。哈夫曼編碼譯碼涉及到正則二叉樹的存儲(靜態(tài)鏈表)、生成及遍歷等知識點(diǎn),使學(xué)生可以體會到靜態(tài)鏈表的用途、基于哈夫曼的加密解密實(shí)現(xiàn)等。基于索引的學(xué)生成績管理系統(tǒng)涉及到數(shù)據(jù)元素及索引的外部存儲和內(nèi)部存儲、基于索引的數(shù)據(jù)元素的插入刪除(包括索引的插入刪除和數(shù)據(jù)元素的插入刪除),索引可以是順序索引,也可以是樹索引。通過該實(shí)例,不僅可以使學(xué)生體會到數(shù)據(jù)的外部存儲和內(nèi)部存儲之間的關(guān)系,而相關(guān)的索引知識還可以為后續(xù)數(shù)據(jù)庫原理課程的學(xué)習(xí)打下一定基礎(chǔ)。
4結(jié)語
本文針對MOOC背景下案例法教學(xué)實(shí)施的問題,設(shè)計了一套案例集。該案例集包含基本案例和綜合案例,基本案例用于每章的教學(xué),綜合案例用于綜合性訓(xùn)練。該案例集中的不少案例已在筆者多年的教學(xué)實(shí)踐中進(jìn)行了實(shí)施。在后續(xù)基于MOOC的課程教學(xué)改革中,該案例集及教學(xué)方法將被實(shí)施到本校的《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)中。
作者:楊春花 單位:齊魯工業(yè)大學(xué)