李峰偉
算法是數(shù)學(xué)及其應(yīng)用的重要組成部分,是計算科學(xué)的重要基礎(chǔ)。新的高中數(shù)學(xué)課程標準中“算法初步”被列入必修3的內(nèi)容。算法思想已經(jīng)成為現(xiàn)代人應(yīng)具備的一種數(shù)學(xué)素養(yǎng)。
一、理解算法的思想
機械地按照某種確定的步驟行事,通過一系列小的簡單計算操作完成復(fù)雜計算的過程被人們稱為“算法過程”。人很容易完成的基本計算就是簡單的一位數(shù)加、減、乘和進位、借位等,復(fù)雜計算過程實際上都是通過這些操作,按照一定的工作秩序與步驟組合完成的。如:人們在計算過程中,先乘除,后加減,從內(nèi)到外去括號等規(guī)則,都是按部就班必須遵守的算法。一個多位數(shù)的乘法就是通過多次使用一位數(shù)乘法、一位數(shù)加法和進位計算規(guī)則實現(xiàn)的??梢钥醋鍪且粋€算法過程。我國古代數(shù)學(xué)就有以算法為主要特征體現(xiàn)算法的,其中最具有代表性的就是《九章算術(shù)》。《九章算術(shù)》的主要特點就是內(nèi)容的算法化,書中一般先提出問題,給出答案,再給出“術(shù)”作為一類問題的共同解法,以后可以用它來解決其他問題,得出了方術(shù)、割圓術(shù)、方程術(shù)、正負術(shù)等著名算法。
新課程標準中是這樣描述算法定義的:一般而言,對一類問題的機械的、統(tǒng)一的求解方法稱為算法,也即從廣義上講,人們把進行某一工作的方法和步驟稱為算法。如電器使用說明書就是使用電器的算法;菜譜就是做菜的算法,課程表是上課的算法……等等。從狹義上講,就中學(xué)階段,是針對計算機能實現(xiàn)的算法。
二、掌握算法的內(nèi)容
算法是數(shù)學(xué)及其應(yīng)用的重要組成部分,中學(xué)數(shù)學(xué)的算法內(nèi)容是較基本的算法初步,算法常用表示的方法有:自然語言表示法、流程圖表示法、偽代碼表示法。
1.自然語言表示法:就是用中文或者是英文來說明該做什么,只要條理清晰、易懂就可以了。但它比較麻煩且容易產(chǎn)生歧義。
2.流程圖表示法:結(jié)構(gòu)清晰,一般由順序、選擇和循環(huán)三種本結(jié)構(gòu)組成。下面看看這三種基本結(jié)構(gòu)。
(1)順序結(jié)構(gòu)
順序結(jié)構(gòu)的操作是按照書寫順序執(zhí)行的。
(2)選擇結(jié)構(gòu)
選擇結(jié)構(gòu)是以條件的判斷為起始點,根據(jù)條件是否成立而決定執(zhí)行哪一個處理步驟。
(3)循環(huán)結(jié)構(gòu)
循環(huán)結(jié)構(gòu)是指在算法設(shè)計中,從某處開始有規(guī)律地反復(fù)執(zhí)行某一處理步驟,這個處理步驟稱為循環(huán)體。循環(huán)體的執(zhí)行次數(shù)由一個控制循環(huán)條件決定的,不滿足條件反復(fù)做,滿足則停止。
3.偽代碼表示法:用介于自然語言和計算機語言之間的一種文字和符號來描述算法。它的表示形式比較自由。偽代碼沒有一個統(tǒng)一的語法,只要寫出來自己和別人能看懂就行。偽代碼包括賦值語句、輸入語句、輸出語句、條件語句、循環(huán)語句。每種語句在算法中具有各自的功能。
三、體會算法的教育價值
算法的教育價值在以下幾個方面:
1.有利于培養(yǎng)學(xué)生的思維能力
算法是思維的條理化、邏輯化。算法所體現(xiàn)出來的邏輯化特點被有些學(xué)者看成是邏輯學(xué)繼形式邏輯和數(shù)理邏輯之后發(fā)展的第三個階段。因此,培養(yǎng)邏輯思維能力,不僅可以通過幾何論證,代數(shù)運算等手段來進行,還可以通過算法設(shè)計的學(xué)習(xí)來達到。
2.有利于培養(yǎng)學(xué)生理性精神和實踐能力
算法既重視“算則”,更重視“算理”?!八憷怼笔恰八銊t”的基礎(chǔ),“算則”是“算理”的表現(xiàn)。因而,算法有利于培養(yǎng)學(xué)生理性精神和實踐能力,是實施探究性學(xué)習(xí)的良好素材。
3.算法內(nèi)容反映了時代的特點,同時也是中國數(shù)學(xué)課程內(nèi)容的新特色。
四、關(guān)于算法教學(xué)的建議
1.要準確理解課標
算法教學(xué)必須通過實例進行,使學(xué)生在解決具體問題的過程中學(xué)習(xí)一些基本邏輯結(jié)構(gòu)和語句,體會算法的思想,提高邏輯思維能力,要求學(xué)生將解決問題的過程整理成流程框圖,并將流程框圖翻譯成計算機語言,但不能將這些過程看成是學(xué)習(xí)程序語言和程序設(shè)計。
2.處理好重點和難點
流程圖的教學(xué)應(yīng)貫穿算法教學(xué)的始終。要通過具體案例循序漸進地講解流程框圖的設(shè)計,特別是循環(huán)結(jié)構(gòu)的框圖表示,要以掌握一定的循環(huán)語言為基礎(chǔ)。在學(xué)習(xí)循環(huán)語句之前,準確、簡明地畫出循環(huán)結(jié)構(gòu)的框圖,既是教學(xué)重點、難點,又是算法學(xué)習(xí)的關(guān)鍵。
3.算法語句的教學(xué)要與學(xué)生已掌握的信息技術(shù)知識程度相適應(yīng)
中學(xué)生學(xué)習(xí)的算法,一般要求是能轉(zhuǎn)變成計算機能夠理解的程序語言和能在計算機上實現(xiàn)的程序,還要根據(jù)學(xué)生已掌握的信息技術(shù)基礎(chǔ)知識的程序,靈活處理教學(xué)內(nèi)容。算法語句的教學(xué),既不能等同于學(xué)習(xí)程序語言和程序設(shè)計,又要達到基本的教學(xué)要求。教學(xué)中能讓學(xué)生上機操作體驗算法思想也是十分必要的。