高中數學課程引入算法,是因為算法是現代數學不可缺少的數學知識,同時也是培養學生邏輯思維能力的重要載體.本人通過對算法教學的總結與反思,對算法教學提出自己的幾點見解.
一、理解算法概念,領會算法與解法的異同
在現代數學中,算法通常是指按一定規則解決的某一類問題的明確和有限的步驟.現在算法通常編成計算機程序,讓計算機執行并解決問題.
1.如何理解“一定規則”
“一定規則”指的是設計算法時的依據,例如“輾轉相除法”和“更相減損術”是求兩個正整數的最大公約數的不同依據,這些依據通常是不同的數學結論或數學方法,因而是不同的規則.根據不同的規則得到不同的算法,這與算法用什么方式表示無關.通過對二元一次方程組的求解過程,不難理解,一定的規則實際就是解決問題的一般方法,強調的是算法的“通用性”.
2.如何把握對算法的基本特征的理解
“有序性”、“明確性”和“有限性”是算法的基本特征.在教學中,應緊扣教材的例題與思考,研究的問題以數學問題為主,讓學生自己動手實踐與模仿,在錯誤中體會算法的基本特征.
在教學中,很多學生的作法如下:
S1:用2除1997,得到余數1,因為余數不為0,所以2不能整除1997;
S2:用3除1997,得到余數2,因為余數不為0,所以3不能整除1997;
S3:用4除1997,得到余數1,因為余數不為0,所以4不能整除1997;
S4:用5除1997,得到余數2,因為余數不為0,所以5不能整除1997;
……
S1996:用1996除1997,得到余數1,因為余數不為0,所以1996不能整除1997.
教師點評指出學生的主要問題是出在S4與S1996之間省略的內容.從中得出:“步驟”是算法的最顯著的特征,即具有“有序性”.同時,算法步驟具有“明確性”,上述表述中的省略號就不具有算法步驟的“明確性”.
3.算法與解法的聯系與區別
算法表現為解決某一類問題的程序或步驟,它可以不呈現問題的結果,而解法主要是針對某一個具體問題的步驟,其程序性也不一定強,按教學習慣它還必須給出結果.
二、用循序漸進的方式實現課標對算法的教學要求
課標對算法的教學要求是:“通過對解決具體問題過程與步驟的分析,體會算法的思想,了解算法的含義.”要達到這一要求,需要通過一章完整的教學才有可能實現.在教學中可以通過三個階段螺旋式上升地實現對算法的理解.
第一階段:初步了解算法思想與含義——在算法的概念的教學中,通過對解決具體問題過程與步驟的分析,初步認識到算法可以提供解決某一類問題的一種方法;認識到算法是解決某一類問題的步驟,并初步認識到這樣的步驟是明確有效的.
第二階段:初步形成算法思想、理解算法含義——在程序框圖教學中,通過對解決具體問題程序框圖的分析,進一步認識到算法可以直觀地提供解決某一類問題的一種方法,并初步形成用算法思想解決問題的意識;認識到算法不僅是解決某一類問題的有效步驟和程序.這一階段是算法教學的重心.
第三階段:初步應用算法思想解決問題——通過對解決具體問題算法語句的分析,認識到算法可以為計算機直接解決某類問題提供一種方法,并進一步形成用算法思想解決問題的意識;理解算法是可供計算機執行的解決一類問題的明確有效的步驟或程序.
三、把握章節教學的重點與難點,合理控制教學的難度
程序框圖與算法的基本邏輯結構是教學的重點,而三種基本的邏輯結構中對條件結構與循環結構掌握的好壞,是決定算法教學成敗的關鍵.
在條件結構教學中,注意引導學生比較兩種形式的區別和聯系,合理利用教材中的例題.讓學生先自己動手實踐、模仿與操作.
四、教學中合理應用教材的范例與習題,引導學生模仿與實踐
教材中的例題是通過多位專家精心挑選的,具有廣泛的代表性與典型性,具有較高的思想性與應用價值.特別是算法案例——三個案例個個經典,除了具有較高的思想性與應用價值外,還包含著大量的數學文化,是數學史的重要資料.在例題教學時,應充分挖掘教材例題的編寫意圖——理解其蘊含的思想方法.
如在算法案例——進位制的課上,引入以下的練習:計算機中常用十六進制是逢16進1的計數制,采用數字0~9和字母A~F共16個計數符號,這些符號與十進制的數的對應關系如下表:
那么,用十六進制可表示:E+D=1B,求AB.
學生通過模仿與類比,進一步理解進位制的思想.
(責任編輯 金 鈴)