[摘要]《算法設計與分析》是計算機專業的一門核l心課程。本文結合多年教學實踐,從加強理論和實踐相結合,增強教學實驗課環節的效果和加強課程平臺建設和人才培養工作三個方面介紹了我們在課程教學和建設中的幾點經驗。
[關鍵詞]算法設計與分析 教學方法 研討 人才培養
[基金項目]國家自然科學基金項目(60873107),湖北省高等學校省級教學研究項目(No.20060175),中國地質大學研究生課程與教材建設項目。
《算法設計與分析》是高校計算機專業學生的一門重要專業課程。其主要目的是理解和掌握算法設計的主要方法,使學生在選擇或設計算法時能夠進行時空耗費分析,進而編寫出高效程序,為開發出優秀軟件系統奠定基礎。由于算法領域的知識覆蓋面廣、難度大、理論推導復雜,學生們普遍認為它難于其他專業課程,這主要是由于這門課程本身的一些特點造成的:1.它具有很強的理論性,要求學生有很扎實的數學、數據結構和至少一種高級語言的基本功。2.它涉及的領域廣、應用性強,這就要求學生不能機械記憶,而需要理解性地學習,并靈活運用。3.它有極強的可擴展性、可開發性,學生必須善于思考,有較強的探索欲望,才能從這門課中得到真正的樂趣。
學生調研情況介紹
為了更好地掌握學生在學習這門課程中的情況和需求,我們在近幾年的教學過程中,通過發放問卷的形式,對學生情況進行調查。通過調研,我們發現學生在學習這門課程中主要關心以下幾點問題:1.由于這門課程具有很強的理論性,課程中大量講解算法的基本定義、原理、推導等,容易造成學習積極性降低,不知道學習這門課對將來的專業積累有何幫助等問題。2.在上機實驗課程安排上,希望能設計一些結合實際或有項目背景需求的題目,最好能有一些參考代碼。3.課后希望能夠提供一個繼續學習的平臺,或能夠參加老師的一些相關算法研究項目。
教學經驗
根據筆者多年的算法設計與分析課程的教學經驗,結合上述的學生提出的一些問題,我們在教學中不斷進行改進,總結了一些教學心得和比較成功的教學方法,提出以下幾點建議:
1.加強理論和實踐相結合
科研和教學應該相輔相成,在教學過程中,通過加入最新的研究成果和國內外研究前沿,將有助于開闊學生視野,同時提高學生學習的積極性和能動性。(1)在講課的內容上,首先講解幾類經典算法,如:分治法、動態規劃法等典型算法,教師應不局限于教材內容,可將計算機領域熱門話題或前沿知識擴展到教學中,啟發并引導學生主動探索知識。(2)將科研成果融入到算法教學中。目前,我們在算法講解中,將多目標優化概念,各種最新的多目標演化算法,擬物算法,以及將這些算法在實際工程項目中的應用成果引入到教學。通過科研推動教學的方式,調動學生學習的積極性,激發他們從事算法研究的興趣。
2.加強教學實驗課環節的設計
對于算法設計和分析課程,實驗環節的設計非常重要。經過多年的摸索,我們在本科生課程教學中,采取了類似研究生小組研討的方式來進行。我們將4~5個相同專業學生分為一組,每組推選一位小組長,負責整個小組組織和協調工作。在選題方面,我們采用老師出題和學生自主選題相結合,這樣做的目的是不同專業的學生可以選擇本專業領域中感興趣的算法。同時,通過集中匯報的方式,不同專業的學生可以互相了解不同領域的算法,從而拓寬他們的知識面。在準備初期,每小組同學都要進行資料的收集和學習,在后期,小組要進行任務分工和協調,各司其職,整個研討課程,要求完成所選算法的編碼和測試工作,編寫算法研究報告和最后的算法研討匯報幾項內容。
對于研討課環節,有幾點需要注意:(1)在選題過程中,對于算法研究能力較差的學生,老師要指定題目,并提供一定的資料和參考代碼,引導他們進行研究工作。(2)在整個研討準備過程中,要加強監督和檢查工作,及時了解各小組的分工和進展情況,調動小組每個學生的積極性。(3)由于一般的本科生在研究匯報方面的經驗不足,所以匯報前,老師要進行必要的指導,提供匯報模版和建議。
通過在課程中設置研討環節,使不同專業學生能夠了解更多的算法和不同的應用領域,拓寬他們的知識而。同時,通過分組和匯報的形式,提高了學生自主學習的能力,提高了學生團隊合作和學術交流的能力,對他們將來從事科研工作或找工作都有很好的幫助。
3.加強課程平臺建設和人才培養工作
在課程教學之外,我們積極開展ACM等算法競賽平臺建設,為學生提供一個長期的學習平臺。鼓勵學生在課后能夠參與此類練習,從根本上提高自身的算法設計能力和編程能力。
在人才培養方面,通過課程教學,我們發現一些對算法研究有興趣和希望從事研究工作的同學,鼓勵其參與老師的相關科研課題,幫助學生能夠盡早地從事一些科研工作,更深入地了解算法領域,對學生未來從事研究生學習或工作都有很大的幫助。
總結
通過多年的教學實踐和摸索,我們在算法設計與分析課程中,提出的小組研討,以研促教等方法,不斷提高教學質量。從對學生的調研來看,這些教學方法的改革得到學生的認可,學習的積極性和能動性得到激發,很多同學開始萌發研究型思維,課余思考和解決一些算法問題,提高自身的算法理論和編程能力。同時,我們每年發現和培養了一批具有較好研究能力的學生,大部分已經成為科研骨干,在研究生階段作出不錯的科研成果,發表高水平學術論文。
參考文獻:
[1]王楠,淺析《計算機算法設計與分析》專業課教學方法吉林廣播電視大學學報,2006(2):53~55
[2]徐子珊,“算法設計與分析”課程教學和創新能力培養合肥工業大學學報(社會科學版),2008(6):64~66
[3]高尚“算法設計與分析”課程改革初探計算機教育,2008(14):37~38
[4]戴光明,王茂才,彭雷,《算法設計與分析》課程教學的幾點體會,計算機科學,2008(35):102~104