齊晶薇
哈爾濱遠(yuǎn)東理工學(xué)院
淺談如何提高數(shù)據(jù)結(jié)構(gòu)中算法教學(xué)效果
齊晶薇
哈爾濱遠(yuǎn)東理工學(xué)院
在計(jì)算機(jī)專業(yè)教學(xué)當(dāng)中數(shù)據(jù)結(jié)構(gòu)可以說是其中必不可少的基礎(chǔ)教學(xué)課程。為此,本文筆者以數(shù)據(jù)結(jié)構(gòu)中算法教學(xué)為例,對(duì)如何提高數(shù)據(jù)結(jié)構(gòu)教學(xué)效果進(jìn)行深入的分析和研究,加深學(xué)生對(duì)數(shù)據(jù)結(jié)構(gòu)算法內(nèi)容的理解和掌握,為進(jìn)一步推動(dòng)計(jì)算機(jī)專業(yè)教學(xué)事業(yè)發(fā)展提供有益意見和建議。
數(shù)據(jù)結(jié)構(gòu);專業(yè)教學(xué);編譯環(huán)境
算法教學(xué)算不上是多么高難的內(nèi)容,學(xué)生在日常的學(xué)習(xí)當(dāng)中就能接觸甚至掌握其基礎(chǔ)思想,但卻難以在實(shí)際應(yīng)用當(dāng)中發(fā)揮其作用。我們必須要明確算法教學(xué)的思路,充分發(fā)揮算法對(duì)數(shù)據(jù)結(jié)構(gòu)教學(xué)的重要性,增強(qiáng)教學(xué)的實(shí)用性和有效性。
為了進(jìn)一步加深學(xué)生對(duì)C語(yǔ)言算法定義的理解和掌握,下面我們就是希爾排序?yàn)槔仃U述算法的重要性。希爾排序簡(jiǎn)單來說就是一種插入排序,它通過將整個(gè)排序記錄序列劃分成若干的子序列,并分別插入排序,待整個(gè)序列記錄“基本有序”時(shí),就可對(duì)全體記錄進(jìn)行重新的插入排序,希爾排序方式如下圖:
從該圖中我們能夠看出初始關(guān)鍵字序列是按照希爾排序思想所進(jìn)行的排序,它將整個(gè)序列劃分為五個(gè)子序列,并對(duì)每個(gè)子序列采取直接插入的方式,總稱一趟希爾排序。然后將第一趟希爾排序劃分為三個(gè)子序列進(jìn)行直接插入排序,這一過程就是第二趟希爾排序,并對(duì)整個(gè)序列進(jìn)行直接插入排序,希爾排序至此結(jié)束。
算法對(duì)學(xué)生學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)知識(shí)具有一定的示范和啟示作用,它對(duì)數(shù)據(jù)結(jié)構(gòu)教學(xué)產(chǎn)生著深遠(yuǎn)的影響,是數(shù)據(jù)結(jié)構(gòu)教學(xué)中的重要內(nèi)容。其具體表現(xiàn)如下:
首先,經(jīng)典性。這一特性是針對(duì)經(jīng)典算法而言的,經(jīng)典算法是眾多專業(yè)學(xué)者和專家對(duì)一些經(jīng)典問題進(jìn)行的深入分析和研究設(shè)計(jì)的。甚至有的專家或?qū)W者因?yàn)槟撤N算法的發(fā)明而功成名就,獲得各種獎(jiǎng)項(xiàng),而且很多算法都是用發(fā)明者的名字命名的。這些算法構(gòu)思巧妙、結(jié)構(gòu)嚴(yán)謹(jǐn),利用對(duì)算法的分析講解不僅能夠讓學(xué)生對(duì)數(shù)據(jù)結(jié)構(gòu)基本理論及方法有深入的理解;還能夠讓學(xué)生進(jìn)一步學(xué)到程序設(shè)計(jì)方法。通過對(duì)經(jīng)典算法問題處理方式思維讓學(xué)生能夠舉一反三、熟能生巧。
其次,基礎(chǔ)性。算法是最基本數(shù)據(jù)結(jié)構(gòu)的體現(xiàn),從某種意義上來說,只有掌握了相應(yīng)的數(shù)據(jù)結(jié)構(gòu)算法才能夠掌握該種數(shù)據(jù)結(jié)構(gòu)。
本文筆者經(jīng)過長(zhǎng)期對(duì)數(shù)據(jù)結(jié)構(gòu)教學(xué)的深入研究發(fā)現(xiàn),想要做好數(shù)據(jù)結(jié)構(gòu)算法教學(xué)工作應(yīng)從以下幾方面入手:
第一,精心設(shè)計(jì)課堂教學(xué)內(nèi)容。對(duì)于每種算法都要深入了解,明確算法設(shè)計(jì)思想及其要解決的問題,對(duì)算法教學(xué)重點(diǎn)和難點(diǎn)進(jìn)行重點(diǎn)研究。就拿KMP這種來說,它是在BF算法上的提升,但其本質(zhì)讓是要將模式串和主串字符逐一比較,而KMP算法摒除了BF算法在最壞的情況下主串模式中出現(xiàn)大量的0和1的情況,降低了時(shí)間復(fù)雜度。那么,既然KMP算法是一種改進(jìn),其重點(diǎn)和難點(diǎn)就需要我們重新概念了。KMP算法主要解決了匹配失配時(shí)指針回溯問題,進(jìn)行主串字符和子串字符比較是十分必要的。因此,我們可以確定KMP算法教學(xué)難點(diǎn)就是確定next[j]這個(gè)函數(shù)。因此,在數(shù)據(jù)結(jié)構(gòu)教學(xué)當(dāng)中我們就要將此函數(shù)作為你重點(diǎn)來講。
第二,靈活運(yùn)用多種教學(xué)方法。對(duì)于既定的教學(xué)內(nèi)容而言,采用什么樣的教學(xué)方法課堂教學(xué)成效將會(huì)大不一樣。正確選擇算法教學(xué)方法是決定課程教學(xué)成敗的關(guān)鍵。算法教學(xué)常用的教學(xué)方法有任務(wù)驅(qū)動(dòng)法、情境教學(xué)法、案例教學(xué)法等等。比方說Dijkstra算法的講解,我們可以通過講述人們旅游時(shí)如何選擇最便捷的道路和最節(jié)省開銷、時(shí)間的方式,知道始發(fā)地和目的地,各種出行方案自然而生。這樣不僅能夠有效將課堂教學(xué)內(nèi)容與實(shí)際生活聯(lián)系起來,增強(qiáng)了知識(shí)的實(shí)用性,還很能夠讓學(xué)生產(chǎn)生濃厚的學(xué)習(xí)興趣,有利于增強(qiáng)學(xué)生學(xué)習(xí)的積極性和主動(dòng)性,有利于學(xué)生對(duì)算法的掌握。但應(yīng)注意的是,不論采用那種教學(xué)方法,都要講清算法的內(nèi)容、地位、應(yīng)用,使學(xué)生能夠掌握住相關(guān)知識(shí)點(diǎn)。我們可以綜合運(yùn)用多種教學(xué)方法,創(chuàng)設(shè)輕松舒適的教學(xué)情境,將算法用通俗易懂的方式講解出來,使抽象化的知識(shí)更加形象化,提高學(xué)生知識(shí)運(yùn)用能力。
第三,根據(jù)實(shí)際靈活實(shí)施教學(xué)進(jìn)程。算法思想才是算法教學(xué)的重點(diǎn),我們可以以算法產(chǎn)生的背景為切入點(diǎn),逐漸深入到算法內(nèi)容、實(shí)質(zhì)和具體應(yīng)用上來,并按照1:1:1的課程比例開展教學(xué)活動(dòng)。以往我們常常忽略算法背景教學(xué),對(duì)其一筆帶過,學(xué)生始終會(huì)對(duì)算法成因產(chǎn)生困惑。我們可以講算法背景教學(xué)作為教學(xué)的擴(kuò)展,將發(fā)明者的生平、成長(zhǎng)經(jīng)歷和貢獻(xiàn)做一些介紹,讓學(xué)生對(duì)學(xué)習(xí)產(chǎn)生興趣,這樣對(duì)算法教學(xué)講解具有一定的促進(jìn)作用。講解算法內(nèi)容時(shí),教師最好的方式就是將其與實(shí)際相結(jié)合。每種算法都是應(yīng)問題而生的,是一種數(shù)據(jù)結(jié)構(gòu)的代表。只有將算法實(shí)質(zhì)內(nèi)容講清,才能夠加深學(xué)生對(duì)相關(guān)課程內(nèi)容的理解和掌握。在此我們就不一一舉例說明了。在講解完算法的所有內(nèi)容后,也可以組織學(xué)生對(duì)部分疑難問題進(jìn)行小組討論,并給與最后的實(shí)例總結(jié),進(jìn)而加深學(xué)生對(duì)數(shù)據(jù)結(jié)構(gòu)的印象。
開展算法教學(xué)的根本目的在于幫助學(xué)生更好的理解和掌握數(shù)據(jù)結(jié)構(gòu)。因此,筆者以自身多年教學(xué)經(jīng)驗(yàn)為依托,并結(jié)合了多方教學(xué)材料得出算法教學(xué)應(yīng)當(dāng)遵循的幾個(gè)原則:情景原則,也就是要最好必要的課堂教學(xué)情景設(shè)置;實(shí)效原則,追求教學(xué)實(shí)效性;點(diǎn)面原則,有側(cè)重點(diǎn)全面的開展數(shù)據(jù)結(jié)構(gòu)教學(xué)。
我們必須要重視算法教學(xué)的重要性,精心設(shè)計(jì)課堂教學(xué)情境,靈活運(yùn)用多種教學(xué)方法。從實(shí)際教學(xué)情況出發(fā),適當(dāng)適時(shí)調(diào)整教學(xué)進(jìn)程,努力提升數(shù)據(jù)結(jié)構(gòu)教學(xué)質(zhì)量,提高教學(xué)效果,更好的完成數(shù)據(jù)結(jié)構(gòu)教學(xué)目標(biāo)。
[1]秦玉平.數(shù)據(jù)結(jié)構(gòu)課程實(shí)踐教學(xué)改革與實(shí)踐[J].渤海大學(xué)學(xué)報(bào)(自然科學(xué)版).2013(04)
[2]劉曉敏.數(shù)據(jù)結(jié)構(gòu)與算法教學(xué)課程網(wǎng)上教學(xué)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].電子科技大學(xué)2013
[3]張穎慈.數(shù)據(jù)結(jié)構(gòu)在操作系統(tǒng)進(jìn)程調(diào)度中的應(yīng)用研究[D].電子科技大學(xué)2009
[4]張偉.數(shù)據(jù)結(jié)構(gòu)算法設(shè)計(jì)題的測(cè)試程序輔助構(gòu)建研究[D].廣東工業(yè)大學(xué)2012