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