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