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