摘 要: 根據新課標中算法的內容和要求,結合學生已有的認知結構和學習能力,本文作者就算法的教學中如何既體現新課程、新理念、新課標,又注意結合舊知識,調動學生的積極性,培養學生的自主探索能力及學習興趣提出幾點思考。
關鍵詞: 高中數學 《算法初步》 教學反思
《算法初步》一章的教學終于在高二開學后三周內結束了。這是高中數學必修模塊中唯一新增章節,對于進行這一章節教學的數學教師而言,實在是感觸良多。因為不但沒有教過,自己也未學過。可以說對于這一章的教學,教師是與學生同摸索共成長。筆者就以下幾個方面進行這一章的教學反思:
一、滲透算法意識,展現知識體系
對數學概念的認識,既要呈現知識,又要使學生體會人類認識數學經歷的一切,因此很多時候教材中只能看到漂亮的結論和嚴格的證明。由此產生的認識困難問題必須通過教師的教學加以解決。這就需要教師首先了解清楚所教的內容的發生發展過程,在教學過程中,有意識有目的地進行滲透和展現。
正如本章引言中所述:“算法并不是一個全新的概念。”算法是學生既陌生又熟悉的內容。因為新課程的關系,在高中數學學習階段會讓教師學生都不斷地有“歸零”的機會,經驗有時是墊腳石,有時又是絆腳石,教科書上是用回顧一元二次方程組x-2y=-12x+y=1的求解過程,歸納出步驟來引入算法的。而以學生的固有思維,往往只關注解法,會對書上明確而有限的共五步步驟解決x-2y=-12x+y=1覺得費解。在他們看來,如此簡單的題目,一兩步就夠了,為什么要分五步進行?
由于算法思維側重于思維的構造性實踐,注重于獲得結果并將取得的結果構造出來,即注重歸納思維,算法可以使抽象的數學知識轉化為一種可操作的教學過程,通過自主探索、發現和再創造,經歷反思性循環、體驗和感受數學發現的過程,從非形式化的、算法的、直覺相互作用與矛盾中形成數學,注重對數學本質的認識,體驗創造性工作的歷程。算法有利于發展數學應用意識和創新意識,有利于對現實生活中蘊涵的一些數學模式做出理性思考和判斷。因此,對算法思想的初步認識,已經成為現代人所具備的一種數學素養。有意識地培養學生的算法思想,幫助他們構建算法意識,從“算法的視角”看待和解決問題,必將有利于提升學生的創新性思維水平。
二、體現算法應用,展示框圖意義
程序框圖能夠更加直觀、清楚地描述算法步驟。教科書首先展示了一個較為復雜的、完整的程序框圖,然后分解出這個程序框圖中的三種基本的邏輯結構,接著分別用簡單的例子對這三種結構作詳細的闡述。三種基本邏輯結構與程序框圖是算法的教學重點,但是程序框圖感覺上有點“不上不下”的狀況。因為程序框圖既不同于算法的自然語言描述那樣淺顯易懂,又不同于程序那樣能被計算機所識別,那么程序框圖為什么是算法的教學重點?依據是什么?重要地位如何凸顯?
隨著教學的展開,對于算法的基本思想,學生都已有所了解,有所掌握。但在做練習題時困難也開始顯現。因為算法這一塊內容是全新的,剛開始接觸時,了解的少,未知的也少。隨著對算法了解的深入,未知的東西也會越來越多。例如:作業本上有這樣一道題:
x=1
y=1
WHILE x<=4
z=0
WHILE y<=x+2
z=z+1
y=y+1
WEND
PRINT z
x=x+1
y=1
WEND
END
問程序運行后輸出的結果。
學生解決這道題時覺得眼花繚亂。連本身已經對自己挺自信的學生都覺得有些頭疼,因為從程序上看來,確實有些千頭萬緒,找不到切入點,但如果將其改寫成算法程序框圖,馬上可以做到“其意自現”。其實算法教學越進行到后段,越有體會和感觸——程序框圖真是十分重要十分有效。算法程序框圖的確能起到橋梁的作用,它將自然淺顯的算法自然語言描述與計算機語言緊密地結合在一起,它既有算法自然語言的直白也有算法程序的理智和條理。把握住了算法程序框圖,實際上也就是把握住了算法的精髓。
因此在教學中教師要強調算法程序框圖,要求學生不但能將程序框圖轉化為算法程序,還能將算法程序轉化為程序框圖。事實上,每一種程序設計語言都是為特殊的目標而創建的,都是將算法轉換為計算機程序的工具,因此它們之間的差別只是一件小事,算法才是關鍵所在。在數學課程中,教師應該盡力讓學生在簡單的計算機語言環境中學習算法的基本知識,而把有效設計、實現、調試和測試程序的任務留待信息技術等課程來解決。就此方面來說,在教學中應把程序框圖作為描述算法的主要工具。
三、重視算法本質,引導學生思考
“在算法教學中,學生將學習算法的初步知識,并通過對具體算法案例的分析,體驗算法在解決問題中的重要作用,培養算法基本思想,提高邏輯思維能力,發展有條理的思考與數學表達的能力”。
輸出S
結束
毫無疑問,正確。可是為什么教科書上用的是累加的“笨”辦法,而對于這種看起來簡捷又很好的辦法卻提都不提?
事實上,對于從1到100的100個數相加的問題,依次累加存在著基本邏輯結構:①順序結構:第一步,第二步,……,一直做至第一百步,在這樣的操作順序下可以得出求和的結果。②循環結構:每一行都在“重復”同一結構A+i=S的運算。③條件結構:“重復”操作至i=100停止。
所以,教科書上所提出的兩種程序框圖都是在關注結構的背景之下產生的。算法是一種解決問題的方法,算法與解法有聯系也有區別,算法關注問題的基本邏輯結構。同一個問題雖然會有不同的算法可以解決,但設計算法通常針對解決“某一類問題”,也就是算法所追求的普適性。
由此可見,在算法教學中,一條最基本的原則就是在各種教學活動中,努力創造各種適用于解決各種問題的有效算法,不斷提升學生的算法思維層次和水平。
四、尋求算法原型,體會古典算法
通過對解決具體問題過程與步驟的分析,學生也能體會到算法的思想,理解算法的含義;通過模仿、操作、探索,把算法轉化為計算機可執行程序,應用計算機解決相應的問題,從而讓學生體會到雖然有時算法過程很復雜或計算很繁雜,但在計算機上運行,很快就可以獲得解決問題的結果,并且一種算法可以解決一類的問題。
從古到今,“算法”都在扮演著重要的時代角色。中國古代數學在世界數學史上一度居于領先地位,古典算法注重實際問題的解決,以算法為中心,寓理于算,其中蘊涵了豐富的算法思想。比如說秦九韶算法。
如果說對秦九韶算法的學習是“認識”,那么,讓學生對秦九韶算法的認識過程及運用則是“實踐”,實踐—認識—再實踐—再認識,這是認識發展的必然規律。因此,教師要精心設計訓練的平臺,將秦九韶算法的思想與學生原有知識建立起聯系,讓學生感受到中國古代數學對世界數學發展的貢獻。教育心理學表明,學習的疑難太多,會影響到學生的信心。對于一些新的知識,其與學生已有的知識沒有內在的邏輯聯系,必須提前給予解釋,對于如何表述要給予示范。如程序框圖能使學生的思維更規范、更科學。對秦九韶算法的認識、理解,不僅來源于會寫算法,會將算法轉化成程序框圖,更來源于用程序框圖寫出計算機識別的程序。由以上程序框圖對應寫出程序:
評析:根據程序框圖及前面提到的循環結構、遞推公式,引導學生選對循環語句寫出程序,問題就會迎刃而解。
再如,中國古算中用“更相減損術求等”的方法,其原理是在運算過程中,實施“更相減損”的機械化程序,使整數逐步減少,但“等”卻始終不變,而且總可以在有限步驟內將其求出,故它是一種構造性的思維方法。有限構造是算法的核心,構造性解決問題是數學解題的重要方法,也是數學哲學的重要流派。因此,算法思維的學習有助于學生理解構造性數學。
實踐證明,在算法教學過程中,應盡可能選取最簡單、最典型的算法模型作為載體。這是因為,一方面,算法教學目標就是介紹算法的基本思想和初步知識,另一方面,算法本身來源于具體問題。古往今來,一直如此,所以空講理論學生難以真正理解,而從簡單典型、學生熟悉的算法模型中挖掘、提煉出來的思想方法,更容易被學生接受。
把算法轉化為計算機可執行程序,應用計算機解決相應的問題,可使學生體會到,雖然有時算法過程很復雜或計算很繁雜,但在計算機上運行,很快就可以獲得解決問題的結果,并且一種算法可以解決一類的問題,讓人從一些機械重復、繁雜的工作中解放出來。同時通過電腦操作,讓學生自我去探索,及時驗證自己的算法是否可行,及時獲得成就感,激發其學習興趣,也符合新課程的理念。我們擁有豐富的資源,只要認真去探索、研究、實踐,我們就可以大有作為,這也是數學教師的重要使命。
參考文獻:
[1]普通高中課程標準實驗教科書數學必修3.人民教育出版社,2007.2.
[2]普通高中課程標準實驗教科書數學必修3教師教學用書.人民教育出版社,2007.2.
[3]李亞玲.算法及其學習意義[J].數學通報,2004.2.
[4]李建華.算法及其教育價值[J].數學教育學報,2004.3.
[5]秦德生,孔凡哲.算法思維及其認知發展.中學數學教學參考,2009,(1-2).