邢 丹 姚俊明 徐 琦
(濟寧醫(yī)學院醫(yī)學信息工程學院 日照 276826)
計算機應用的目的是解決實際問題,而數(shù)據(jù)結構表示實際問題中信息及其關系,算法則是描述問題解決方案。數(shù)據(jù)結構與算法是計算機科學的支撐,掌握和應用該課程可以為深入學習其他專業(yè)課程奠定基礎[1]?!皵?shù)據(jù)結構”作為計算機科學與技術的專業(yè)基礎課,能夠為其他專業(yè)課提供常用工具,學生在課程中除學到專業(yè)知識外,還可以掌握工作和生活中所需的思維方式。“數(shù)據(jù)結構”課程中的相關問題比較抽象和難于理解,而激發(fā)學生學習興趣、找到學習的內(nèi)在驅動力,則是克服課程學習困難的關鍵。本文針對上述問題從多個維度進行課程思政教學探索。
數(shù)據(jù)結構課程教學存在的主要問題包括:概念抽象、難于理解;學生學習積極性不高,未深刻理解數(shù)據(jù)結構課程在計算機學科中的重要作用;編碼過程中遇到的bug無法調(diào)試通過;學生編碼過程中難以靈活運用C語言,無法理解抽象數(shù)據(jù)類型的定義和使用,上述問題限制了計算機科學后續(xù)課程的學習。
學科知識一般是由基本概念及基本概念之間的聯(lián)系構成的。信息化時代信息繁多,如何充分利用相關信息將知識講清楚并同實際應用緊密聯(lián)系是當前高校教師必須解決的問題。有計算機科學家指出,要成為領域專家需要學好并真正學懂基礎知識和理論。數(shù)據(jù)結構課程概念學習重在理解其內(nèi)涵和用意[2]。這就需要課堂教學設計貼近生活,抓住概念的基本要點及知識鏈接等。數(shù)據(jù)結構課程基本概念、原理及方法抽象、較難理解,需要教師在講授過程中使用通俗易懂、言簡意賅的語言,所舉例子盡可能貼近工作和生活,不能單純從概念到概念進行講解,而應更多地從應用角度去闡釋概念內(nèi)涵和外延。在教學過程中可通過充分挖掘課程內(nèi)容應用場景,從多角度充分理解基本概念[3];通過類比方式,將熟悉與不熟悉的內(nèi)容之間做類比,實現(xiàn)從已知到未知的轉化并尋找適合的學習方法;強調(diào)從應用角度理解基本概念并將新概念融入原有知識網(wǎng)絡中,以此加深對課程中概念、思想和方法等內(nèi)容的理解。提升學生內(nèi)在學習驅動力,通過充分挖掘課程中蘊含的德育元素,從一切優(yōu)秀文化成果中尋找與課程相通的地方,激發(fā)學習熱情,最終實現(xiàn)價值引領,提高學生學習主動性。
以應用型人才培養(yǎng)目標為導向,夯實學科基礎,通過典型數(shù)據(jù)結構及算法的學習及訓練,使學生逐步掌握根據(jù)不同應用場景和實際提煉數(shù)據(jù)和選用適合的數(shù)據(jù)結構,進行信息整合,配置相應的運算和處理算法,最終完成信息化系統(tǒng)集成。
更深入地完成該目標的前提是掌握課程中的基本內(nèi)容,主要包括基本概念、基本結構及基本技術[4]。其中基本概念的掌握要按照由淺入深、由表及里、從具體到抽象的原則進行,以符合認知規(guī)律。其中抽象數(shù)據(jù)類型處于中樞位置,集中體現(xiàn)了軟件工程分解、抽象和信息隱蔽基本原則,圍繞抽象數(shù)據(jù)類型設計、實現(xiàn)和應用展開教學,注意分析對比不同存儲結構的優(yōu)缺點,揭示主要算法求解思路,分析對比不同算法用到的相同技術。其基本結構主要分為線性與非線性結構,其中最常用的是表結構?;炯夹g中最重要的是遞歸技術及查找排序中的經(jīng)典算法。遞歸是計算機思維區(qū)別于人類思維最本質(zhì)的特征,因此對其講解和掌握的透徹程度是課程教學的關鍵問題之一。常見概念及經(jīng)典算法中體現(xiàn)的方法論對工作和生活均有指導作用。
“一核心,六維度”原則中的“一核心”是指以計算思維能力培養(yǎng)為核心,“六維度”是指以課程中體現(xiàn)的方法論、傳統(tǒng)文化中體現(xiàn)的數(shù)據(jù)結構思想、辯證思維、大自然中蘊含的數(shù)據(jù)結構、熱點問題、科學家及工匠精神6個維度進行探索,從中挖掘出對課程內(nèi)容理解最恰如其分的案例。
4.2.1 “一核心”計算思維的教學案例設計 計算思維是指在學習和應用計算機學科理論和技能的過程中所體驗和獲得的思想方法和做事方法。在未來超級智能時代,高效的學習方法是找到等價問題,實現(xiàn)舉一反三,達到一通百通的目的。計算機科學中的精髓就是遞歸思維[5],將大事分解,自頂向下設計,再自下而上回歸。計算思維核心的遞歸案例設計如下。案例名稱:積累的重要作用;知識單元:棧和遞歸的實現(xiàn);思政目標:遞歸的過程實質(zhì)與《禮記·大學》中的“古之欲明德于天下者,先治其國。欲治其國者,先齊其家。欲齊其家者,先修其身。欲修其身者,先正其心。欲正其心者,先誠其意。欲誠其意者,先致其知;致知在格物。物格而后知至,知至而后意誠,意誠而后心正,心正而后身修,身修而后家齊,家齊而后國治,國治而后天下平”具有相通之處。案例詳細內(nèi)容:遞歸中體現(xiàn)的自頂向下的思想是計算思維中最本質(zhì)和核心的。遞歸在程序設計中應注意的3個要點分別是:自頂向下、分叉和層層遞進。自頂向下倒推是重要的工作方法。強調(diào)做好頂層規(guī)劃和每一個步驟。
4.2.2 維度一:方法論課程思政案例設計 案例1名稱:選擇的智慧;知識單元:二叉樹的遍歷;思政目標:培養(yǎng)學生學會選擇正確的事,不同的選擇會有不同的人生,人生就在選擇之中;案例詳細內(nèi)容:二叉樹的遍歷算法能夠從某一個結點出發(fā)訪問二叉樹的所有節(jié)點。而人生的選擇之路卻是選擇了一條就沒辦法再走另外一條。從西方詩“未選擇的路”中,提示大家要選擇好要走的路,做最好的自己。闡釋選擇一方面是選擇好一條路,另一方面是走好所選擇的路。案例2名稱:提高效率就要少做事;知識單元:快速排序;思政目標:效率=產(chǎn)出/所做的事情。人的產(chǎn)出是很難提高的,但是所做的事情是可以減少的;案例詳細內(nèi)容:通過講解快速排序思想理解提高效率的方法。計算機算法和組織的管理乃至社會的管理,在道理上有相通性,想要提高效率就要少做事情。提高管理效率,最簡單的辦法就是對每一個人進行區(qū)分。案例3名稱:分而治之,統(tǒng)籌合作;知識單元:歸并排序;思政目標:培養(yǎng)學生統(tǒng)籌規(guī)劃及協(xié)作能力;案例詳細內(nèi)容:將一個復雜問題分解成多個簡單問題,逐一解決,最后比直接解決復雜問題要節(jié)省時間。案例4名稱:從量級中改進工程方法;知識單元:算法效率的評價;思政目標:工程上的本質(zhì)區(qū)別是量級之間的差距;案例詳細內(nèi)容:通過比較芝麻、橘子、西瓜、大象、大山、地球、太陽、銀河系之間的差別,類比其量級之間的差距,通過成就=成功率×事情的量級×做事的速度公式,大部分人做不到的是提高事情的量級。而一個好的工程師能夠梳理出一個難題中各個因素在量級上的不同,去除掉無關緊要的事情。案例5名稱:智能時代高效學習的方法;知識單元:算法的編碼實現(xiàn);思政目標:充分理解數(shù)據(jù)結構中經(jīng)典算法的重要價值;案例詳細內(nèi)容:通過講解算法概念,引導學生不是從簡單的個人習慣角度去寫程序,而是先去學習那些經(jīng)典的、驗證了無數(shù)次和優(yōu)化過的答案,掌握別人已經(jīng)寫好的高質(zhì)量代碼,才能夠事半功倍。
4.2.3 維度二:傳統(tǒng)文化課程思政案例設計 案例1名稱:二叉樹的分叉與陰陽對稱;知識單元:二叉樹的定義、折半查找、歸并排序;思政目標:從《易經(jīng)》中汲取常用數(shù)據(jù)結構工具——二叉樹中相似的本質(zhì)特征,強調(diào)中華優(yōu)秀傳統(tǒng)文化中許多內(nèi)容能夠跨越時空、國界,富有永恒魅力,具有當代價值。教育學生要具有高度的文化自信;案例詳細內(nèi)容:二叉樹,其左子樹和右子樹可看成原始事物發(fā)展的兩個方面(即陰陽),也可以看成0和1問題。而利用最優(yōu)二叉樹可以形成最優(yōu)編碼,實質(zhì)是將通信問題轉化成數(shù)字問題。折半查找中通過將原始問題歸結成前一半和后一半,前一半和后一半再各分一半,直到找到或找不到待查找記錄為止,本質(zhì)也是在二叉樹結構上去完成。同理類似于歸并排序,先劃分記錄再兩兩歸并,最終是在一棵樹型結構上完成。很多問題雖然最初沒有樹型結構,但是在不斷操作過程中形成一棵樹。案例2名稱:平衡對稱思維;知識單元:平衡二叉排序樹;思政目標:掌握易經(jīng)中陰陽兩個方面相輔相成,相互推移,不可偏廢?!兑捉?jīng)中》講“中行無咎”,意即不要過分走極端,也不能不及;案例詳細內(nèi)容:根據(jù)二叉排序樹的特點構建對稱型樹形結構,而平衡的二叉排序樹,就是將其調(diào)整成平衡、對稱的。這與走中道“不偏不倚”的思想是一脈相承的。在10億數(shù)據(jù)中只需要進行10幾次比較就能查找到目標,因具有極高效率,平衡的二叉排序樹成為信息技術中廣泛使用的數(shù)據(jù)類型。紅黑樹則是一種近似的平衡二叉排序樹,Java集合中的TreeMap和TreeSet都是這種結構,同時B-樹作為平衡二叉排序樹的擴展,是被廣泛應用的一種m叉多路查找樹,廣泛應用于外存文件索引中。這些均是平衡對稱思想在課程中的體現(xiàn)。
4.2.4 維度三:辯證思維課程思政設計案例 案例名稱:時間和空間復雜度中蘊含的辯證思維;知識單元:算法效率的度量;思政目標:辨證看待時間和空間復雜度的提升,恰當運用中庸辯證思維;案例詳細內(nèi)容:時間和空間復雜度的度量是辯證統(tǒng)一的關系,算法效率的提升或者是通過時間換空間,或者使用空間換時間。凡事都要辯證看待。
4.2.5 維度四:大自然中蘊含的數(shù)據(jù)結構課程思政案例 案例名稱:自然界中蘊含的遞歸思想;知識單元:遞歸;思政目標:遞歸的本質(zhì)是自相似性,體會大自然中的美,體現(xiàn)在計算機中則是數(shù)學與藝術的完美結合;案例詳細內(nèi)容:以常見樹為例,一棵樹與它自身上的樹枝及枝杈,在局部形狀上沒有大的區(qū)別,大樹與樹枝這種關系在幾何形狀上稱之為自相似關系。日常還有很多常見例子,如菜花、蝸牛殼、龍卷風、銀河系等都是以分形幾何學常見的圖片展示。整個宇宙以一種出人意料的方式構成自相似結構,將數(shù)學上的美與美學上的美進行有機結合。從本質(zhì)上理解遞歸問題在于大問題和小問題之間存在自相似性,求解遞歸問題也是利用這種自相似性,只要給出遞歸終止條件和遞歸體就能解決最終問題。遞歸原理在很多情況是使用遞歸的原則設計,遞推的原則實現(xiàn)。
4.2.6 維度五:熱點問題課程思政案例設計 案例名稱:應用排序算法設計;知識單元:排序算法綜合比較;思政目標:對比各國對突發(fā)公共衛(wèi)生事件的控制情況,增強民族自豪感,做到增強“四個自信”,引導學生具有家國情懷、團隊和大局意識;案例詳細內(nèi)容:在對各種排序算法比較之后引入應用,對各國突發(fā)公共衛(wèi)生事件控制情況進行排序比較,凸顯我國“以人為本”及大國擔當。在實踐探究過程中體悟精益求精的科學精神[2]。
4.2.7 維度六:科學家及工匠精神課程思政案例設計 案例1名稱:敢于走別人未走的路;知識單元:哈夫曼樹;思政目標:體會原始創(chuàng)新的重要性及對我國發(fā)展的作用,培養(yǎng)家國情懷;案例詳細內(nèi)容:哈夫曼放棄對已有編碼的研究,轉向新探索,形成新的編碼思想,并很快證明方法的有效性。通過這個實例可以印證“科技創(chuàng)新特別是原始創(chuàng)新要有創(chuàng)造性思辨的能力、嚴格求證的方法,不迷信學術權威,不盲從既有學說,敢于大膽質(zhì)疑,認真實證,不斷試驗”。案例2名稱:中國獲得圖靈獎的算法大師姚期智;知識單元:算法基本概念;思政目標:以中國大師、中青年學子在該課程領域取得的成績激勵學生,增強民族自信心;案例詳細內(nèi)容:在概論的生活中的算法部分,以“圖靈獎”相關算法為示例,以此為切入點引入課程思政。強調(diào)人應該具有奮斗精神、工匠精神以及體現(xiàn)社會主義核心價值觀的敬業(yè)精神。
對2019級計算機及相關專業(yè)合堂一(計本、信本、醫(yī)信工)及合堂二(軟件外包、智能物聯(lián)、大數(shù)據(jù)、人工智能)的問卷調(diào)查分別顯示91.5%和91.9%的學生認為教師引入的案例能夠很好地聯(lián)系實際,引起學習興趣。分別有79.8%和86.6%的學生認為中華傳統(tǒng)文化的引入恰到好處,能夠引起學習興趣。由此可見采用“一核心,六維度”進行課程思政,能夠有效解決存在的問題。
課程思政的教學設計仁者見人,智者見智。無論在教學中滲透何種思政元素,始終遵循的目標是恰當、自然。數(shù)據(jù)結構課程的特點及課程的學時限制決定了課程思政需要在總體上實現(xiàn)顯性和隱性相結合,需要對教學進行精心設計。內(nèi)容可多可少,可以是簡單的一句話或者簡單的一個思考題,看似無意實則意味深長。在課程教學中從各種應用角度充分理解數(shù)據(jù)結構用途,例如從常用的手機導航功能引入最短路徑問題;從百度毫秒級搜索速度引出索引的重要作用;由如何從淘寶網(wǎng)中獎勵前10名購買記錄最多的顧客引出堆排序;從哈夫曼樹的編碼策略談投資中的策略——將最優(yōu)質(zhì)的資源用到使用最多的信息上;從最早期的商業(yè)對人員和財務報表的管理談線性表使用;從系統(tǒng)各個要素之間關系談拓撲排序;從網(wǎng)絡中尋找骨干網(wǎng)絡談最小生成樹;從計算機誕生后的13年才發(fā)明的快速排序,引導學生理解高效的方法不是冥思苦想而是擅于學習;從良好的編碼規(guī)范中談職業(yè)素養(yǎng)等。
“數(shù)據(jù)結構”課程程思政案例庫建設仍處于探索中,還未形成完善和成熟的體系。課程思政教學設計應遵循因時、因地、因人的原則,充分根據(jù)學校辦學定位、學生特點、教學階段以及教師教學經(jīng)驗和課堂教學情況,實時恰到好處地融入才能起到潤物無聲的效果。