前言:本站為你精心整理了算法課堂教學(xué)的探索與體會(huì)范文,希望能為你的創(chuàng)作提供參考價(jià)值,我們的客服老師可以幫助你提供個(gè)性化的參考范文,歡迎咨詢。
一、設(shè)問法教學(xué)
在計(jì)算機(jī)程序中算法的核心作用,算法與數(shù)據(jù)結(jié)構(gòu)之于程序設(shè)計(jì)的重要性也就就不言自明。同時(shí),中國工程院院士、計(jì)算機(jī)科學(xué)家李國杰說過:“……而軟件的核心是算法(不是編程技巧),……算法設(shè)計(jì)是人類智慧的結(jié)晶,計(jì)算機(jī)科學(xué)中的知識(shí)創(chuàng)新主要是算法的創(chuàng)新,創(chuàng)建一種新算法其意義不亞于建造一種新機(jī)型?!瓏?yán)格說來,不講算法,計(jì)算機(jī)科學(xué)就無從說起。”由于李國杰院士是我們邵陽人,也是我們邵陽學(xué)院的名譽(yù)院長,所以同學(xué)一下子覺得親切起來,對(duì)算法學(xué)習(xí)的陌生感、距離感也慢慢消失。總之,要通過各種教學(xué)手段和方法使得學(xué)生明白算法的重要性,使得學(xué)生對(duì)算法的學(xué)習(xí)產(chǎn)生興趣,其中設(shè)問導(dǎo)入只是其中一種,我們還可以通過一些有趣的實(shí)例,比較不同算法的差異等,有很多方法值得去探索。
二、比喻法教學(xué)
在計(jì)算機(jī)專業(yè)課程教學(xué)中,許多學(xué)生不懂得計(jì)算機(jī)語言和算法的關(guān)系,總以為學(xué)習(xí)程序設(shè)計(jì)就是學(xué)習(xí)各種計(jì)算機(jī)語言。所以許多學(xué)生熱衷于學(xué)習(xí)一門一門的計(jì)算機(jī)語言,從C到C++,從Java到C#等等。似乎學(xué)的計(jì)算機(jī)語言越多,程序設(shè)計(jì)水平就越高。同時(shí)把學(xué)習(xí)的重點(diǎn)放在學(xué)習(xí)每種語言的數(shù)據(jù)類型、運(yùn)算符和表達(dá)式、語句、函數(shù)等語言本身的一些語法規(guī)則上,反而忽視了程序設(shè)計(jì)中最核心的部分:算法的學(xué)習(xí)。這種現(xiàn)象的產(chǎn)生是因?yàn)樵谟?jì)算機(jī)語言類課程教學(xué)中,算法只是作為例題形式出現(xiàn),老師在計(jì)算機(jī)語言課程教學(xué)中不會(huì)專門介紹算法,更多講解計(jì)算機(jī)語言的特點(diǎn)和編程的技巧,因而學(xué)生認(rèn)識(shí)中就會(huì)出現(xiàn)偏差,以為這些例題只是為了練習(xí)和熟悉計(jì)算機(jī)語言為目的,不會(huì)有意識(shí)地研究算法。等到大三開始《算法設(shè)計(jì)與分析》課程學(xué)習(xí),在教學(xué)過程中,老師更多地側(cè)重理論的教學(xué),學(xué)生學(xué)習(xí)起來覺得枯燥和難懂,有為難情緒,學(xué)習(xí)效果不理想。為了講清楚計(jì)算機(jī)程序設(shè)計(jì)中語言和算法的關(guān)系,我在上課時(shí)采用比喻的方法,用自然語言和寫文章的關(guān)系作為例子,學(xué)生很快就明白了。我告訴學(xué)生:計(jì)算機(jī)語言和生活中的語言是一樣的。計(jì)算機(jī)有許多種語言,比如C、Java、C++等,生活中也有許多種語言,比如中文、英語、西班牙語等。我們在計(jì)算機(jī)語言的學(xué)習(xí)中掌握好這門語言中的數(shù)據(jù)類型、運(yùn)算符和表達(dá)式、語句、函數(shù)等基本知識(shí)是很重要,這如同學(xué)習(xí)中文、英文要學(xué)習(xí)詞匯、句子、各種語法規(guī)則一樣。學(xué)習(xí)計(jì)算機(jī)語言的目的是要寫計(jì)算機(jī)程序,開發(fā)計(jì)算機(jī)軟件。這也和學(xué)習(xí)中文和英文是為了寫文章,表達(dá)思想和觀點(diǎn)相同。那么,什么是優(yōu)秀的計(jì)算機(jī)程序或者說軟件呢?最重要的標(biāo)準(zhǔn)就是看你解決問題的算法。這好像一篇文章的好壞關(guān)鍵是你在文章中表達(dá)思想和觀點(diǎn),這和你使用的語言沒有太多關(guān)系。這好比一個(gè)偉大的哲學(xué)家的思想,不管用什么語言、文字表達(dá)出來,都是偉大的思想。所以在程序設(shè)計(jì)中關(guān)鍵是看你程序設(shè)計(jì)中解決問題的算法是否優(yōu)秀,能否找到一種最好的算法,這和你使用哪種計(jì)算機(jī)語言都沒有太多關(guān)系。通過這種通俗和貼切的例子,學(xué)生很快就能理解到算法的意義,明白了要寫出優(yōu)秀的程序,不只是熟練掌握所使用的語言和相應(yīng)的編程技巧,也要了解各種算法,根據(jù)問題設(shè)計(jì)出最優(yōu)秀的算法,而且算法的學(xué)習(xí)更加重要。
三、算法教學(xué)中的問題
首先,在計(jì)算機(jī)專業(yè)的課程教學(xué)中,涉及到算法的有三門課程:《計(jì)算方法》、《數(shù)據(jù)結(jié)構(gòu)》、《算法設(shè)計(jì)與分析》。這就需要這三門專業(yè)課的老師在講授本門課程的同時(shí)也要適當(dāng)介紹其它課程中算法的特點(diǎn)和作用,以便學(xué)生更有目的的學(xué)習(xí)。算法分為數(shù)值算法和非數(shù)值算法?!队?jì)算方法》課程中講的是數(shù)值算法,著重介紹計(jì)算機(jī)上常用的數(shù)值計(jì)算方法。內(nèi)容包括誤差、一元非線性方程的解法、線性代數(shù)方程組的解法、插值法和曲線擬合、數(shù)值積分、常微分方程數(shù)值解法等內(nèi)容?!稊?shù)據(jù)結(jié)構(gòu)》課程中主要介紹非數(shù)值算法。著重介紹各種數(shù)據(jù)結(jié)構(gòu)中數(shù)據(jù)的插入、刪除、查找、排序等算法?!端惴ㄔO(shè)計(jì)與分析》更多的是引導(dǎo)學(xué)生的思維告訴學(xué)生如何應(yīng)用一些特定的算法設(shè)計(jì)策略來解決問題。比如迭代法、蠻力法、分治法、貪婪法、和動(dòng)態(tài)規(guī)劃等算法設(shè)計(jì)技術(shù)。這幾門課,每門課都有自己的特點(diǎn),都是算法設(shè)計(jì)技術(shù),但又有區(qū)別,所以在課程教學(xué)過程中,每門課的老師要相互呼應(yīng),承上啟下。這樣學(xué)生對(duì)算法學(xué)習(xí)的體會(huì)才會(huì)更深刻。其次,算法教學(xué)的內(nèi)容也要隨著計(jì)算機(jī)技術(shù)的發(fā)展不斷更新。目前,超級(jí)計(jì)算機(jī)的計(jì)算能力越來越強(qiáng)大,目前已經(jīng)達(dá)到萬萬億次/秒。人們會(huì)有這樣的疑問:計(jì)算機(jī)的硬件性能已經(jīng)提高的這樣的水平,算法的研究還有必要嗎?其實(shí),計(jì)算機(jī)硬件功能越強(qiáng)大,人們就會(huì)嘗試解決更復(fù)雜的問題,計(jì)算量也就更大,所以算法研究始終是推動(dòng)計(jì)算機(jī)技術(shù)發(fā)展的關(guān)鍵。大學(xué)計(jì)算機(jī)專業(yè)算法教學(xué)也應(yīng)該根據(jù)計(jì)算機(jī)技術(shù)的發(fā)展不斷補(bǔ)充、增加新的內(nèi)容,相應(yīng)的教材也要加以更新。例如:Internet應(yīng)用引起的海量數(shù)據(jù)的處理技術(shù)成為熱點(diǎn),使得數(shù)據(jù)的檢索算法更為復(fù)雜。而且,有些時(shí)候,軟件的維護(hù)成本已經(jīng)遠(yuǎn)遠(yuǎn)高于開發(fā)成本,所以,軟件中的算法能做到易讀、易懂、易維護(hù)會(huì)大大降低軟件的研發(fā)成本。不斷完善和補(bǔ)充新的內(nèi)容,介紹最新的算法研究的發(fā)展方向,可以使學(xué)生學(xué)習(xí)的積極性和自覺性不斷提高,也為學(xué)生走向社會(huì),更快地適應(yīng)軟件的設(shè)計(jì)和研發(fā)打下基礎(chǔ)。計(jì)算機(jī)算法教學(xué)是一個(gè)需要不斷探索和實(shí)踐的領(lǐng)域。如何讓學(xué)生在學(xué)習(xí)過程中加深對(duì)計(jì)算機(jī)的理解,如何在學(xué)習(xí)算法的過程中加強(qiáng)對(duì)學(xué)生讀懂算法、設(shè)計(jì)算法、分析算法甚至發(fā)明算法能力的培養(yǎng),尤其是如何調(diào)動(dòng)學(xué)生的學(xué)習(xí)積極性和主動(dòng)性,使他們具有強(qiáng)烈的參與意識(shí)和求知欲望,這些都十分重要。好的教學(xué)方法,促使學(xué)生的積極思考,拓寬學(xué)生的思路,提高教學(xué)效率。本文僅僅是根據(jù)筆者平時(shí)在教學(xué)一線的心得體會(huì),對(duì)計(jì)算機(jī)算法課程教學(xué)進(jìn)行一定程度的探索與實(shí)踐。
作者:成婭輝單位:邵陽學(xué)院信息工程系