摘 要: 算法是高中數(shù)學(xué)新增的內(nèi)容,與計(jì)算機(jī)語(yǔ)言有著密切的聯(lián)系。如何搞好“算法初步”的教學(xué)是一線教師急需解決的一個(gè)重要問(wèn)題。本文結(jié)合作者的教學(xué)實(shí)踐來(lái)談?wù)勥@個(gè)問(wèn)題。
關(guān)鍵詞: 算法 算法教學(xué) 高中數(shù)學(xué)教學(xué)
新課程改革后,算法作為重要內(nèi)容被列入高中數(shù)學(xué)的必修課程中。對(duì)于算法,大部分?jǐn)?shù)學(xué)教師自從大學(xué)畢業(yè)后就沒(méi)有直接接觸過(guò),而且這一全新的內(nèi)容與計(jì)算機(jī)語(yǔ)言有著密切的聯(lián)系,是計(jì)算機(jī)科學(xué)的基礎(chǔ)。所以它既給一些教師造成了巨大的壓力,成為教師教學(xué)的難點(diǎn),又激發(fā)了一些教師極大的興趣,為教師發(fā)揮創(chuàng)造力和施展個(gè)人特長(zhǎng)提供了很好的機(jī)會(huì)。如何進(jìn)行算法教學(xué),教學(xué)中應(yīng)注意哪些方面?這是廣大數(shù)學(xué)教師目前急需解決的問(wèn)題。本文試結(jié)合我的教學(xué)實(shí)踐和體會(huì)作些探討。
一、深刻理解引入算法初步的必要性。
算法是計(jì)算機(jī)科學(xué)的核心。隨著社會(huì)和科學(xué)技術(shù)的發(fā)展與進(jìn)步,計(jì)算機(jī)和網(wǎng)絡(luò)改變了我們的生活方式,成了人們生活中不可缺少的重要工具。計(jì)算機(jī)工作靠的是程序,而程序的靈魂就是算法。它將人類的思維能力形式化為計(jì)算機(jī)可以執(zhí)行的步驟——程序。因此,算法是計(jì)算機(jī)程序的基礎(chǔ)。沒(méi)有算法,計(jì)算機(jī)的存在也就失去了意義。
算法具有廣泛的教育價(jià)值。學(xué)習(xí)算法有利于培養(yǎng)學(xué)生的邏輯思維能力;有利于培養(yǎng)學(xué)生的理性精神和實(shí)踐能力;有利于學(xué)生理解構(gòu)造性數(shù)學(xué)。中國(guó)古代數(shù)學(xué)以算法為主要特征,形成以構(gòu)造性與機(jī)械化為特征的算法體系,產(chǎn)生了一些特殊的算法流傳至今,并在現(xiàn)代得到了廣泛的應(yīng)用。學(xué)習(xí)算法對(duì)于繼承和發(fā)展我國(guó)傳統(tǒng)數(shù)學(xué),弘揚(yáng)我國(guó)文化,培養(yǎng)學(xué)生愛(ài)祖國(guó)、愛(ài)民族的優(yōu)良品德,都有著十分重要的意義。
二、對(duì)數(shù)學(xué)課程中算法的切入點(diǎn)要把握準(zhǔn)確。
算法和計(jì)算機(jī)語(yǔ)言有著密切的聯(lián)系。算法教學(xué)是程序語(yǔ)言教學(xué)的基礎(chǔ),程序語(yǔ)言教學(xué)是算法教學(xué)必要的延續(xù),兩者相輔相成。如果切入點(diǎn)把握不準(zhǔn)確,一些教師就有可能把算法教學(xué)講成計(jì)算機(jī)語(yǔ)言課。實(shí)際上,在數(shù)學(xué)課程中,算法的教學(xué)更應(yīng)該關(guān)注的是算法對(duì)問(wèn)題抽象過(guò)程和算法的構(gòu)建過(guò)程。在這個(gè)過(guò)程中,是學(xué)生著重理解算法的“算理”,同時(shí)體會(huì)算法的程序性、明確性、有效性和有限性等特點(diǎn),學(xué)習(xí)設(shè)計(jì)和描述算法以解決實(shí)際問(wèn)題和與人交流,發(fā)展有條理的思維和表達(dá)能力,提高邏輯判斷能力。
三、在算法教學(xué)過(guò)程中,選取的例子要合理、恰當(dāng)。
1.應(yīng)盡可能選取最簡(jiǎn)單、最典型的算法模型作為載體進(jìn)行算法教學(xué)。
因?yàn)樗惴ū旧砭褪桥c具體問(wèn)題結(jié)合在一起的??罩v理論只能導(dǎo)致學(xué)生不能真正理解算法,不會(huì)設(shè)計(jì)具體問(wèn)題的算法。而從簡(jiǎn)單、典型、學(xué)生熟悉的算法模型中挖掘提煉出來(lái)的思想和方法更易被學(xué)生接受。例如,在進(jìn)行條件結(jié)構(gòu)的教學(xué)時(shí),可以選取比較基礎(chǔ)且具有代表意義的分段函數(shù)的例子。這樣既能幫助學(xué)生理解條件結(jié)構(gòu)的基本思想,又能幫助學(xué)生更好地掌握分段函數(shù)。
例1:根據(jù)右面的流程圖,說(shuō)明該算法解決什么問(wèn)題?寫(xiě)出相應(yīng)的算法。
解析:該流程圖解決的問(wèn)題是求函數(shù)y=x-2x?搖?搖x≥2-2?搖?搖?搖 x<2的值。
算法如下:
S:輸入x
S:如果x<2,則y=-2,否則y=x-2x
S:輸出y
2.盡量從學(xué)生已學(xué)過(guò)的數(shù)學(xué)知識(shí)中選取例子,這樣學(xué)生就易于理解算法的程序化思想。
例如,在講解循環(huán)結(jié)構(gòu)時(shí),可以選擇數(shù)學(xué)必修1中的二分法,便于承前啟后,導(dǎo)入新知識(shí)。
例2:寫(xiě)出用二分法求方程f(x)=0的近似解的算法并畫(huà)出流程圖。
解析:算法步驟如下:
S:確定有解區(qū)間[a,b](f(a)·f(b)<0)
S:取[a,b]的中點(diǎn)
S:計(jì)算f()
S:判斷f()是否為0。如果為0,那么x=就是方程的解,否則執(zhí)行下一步
S:若f(a)·f()<0,則確定新的有解區(qū)間為(,b);
若f(a)·f()>0,則確定新的有解區(qū)間為(a,)
S:判斷新的有解區(qū)間的長(zhǎng)度是否小于精確度。如果新的有解區(qū)間的長(zhǎng)度小于或等于精確度則取新的有解區(qū)間的中點(diǎn)為方程的近似解,否則在新的有解區(qū)間的基礎(chǔ)上重復(fù)上述步驟。
流程圖:
3.選取的例子要蘊(yùn)含中國(guó)傳統(tǒng)數(shù)學(xué)思想,貼近生活,有一定的趣味性,能調(diào)動(dòng)學(xué)生的積極性,激發(fā)學(xué)生探究算法知識(shí)的興趣。
例如,在講解算法概念時(shí),可選取我國(guó)隋朝時(shí)期的數(shù)學(xué)著作《孫子算經(jīng)》中的一個(gè)有趣而且有著深遠(yuǎn)影響的問(wèn)題——“雞兔同籠”問(wèn)題。
例3:今有雞兔同籠,上有35頭,下有94足,問(wèn)雞兔各有幾只?
解析:按照方程的思想,設(shè)有x只雞,y只兔,則x+y=352x+4y=94。
下面設(shè)計(jì)一個(gè)解二元一次方程組的通用算法:
設(shè)二元一次方程組為ax+by=cax+by=c(ab-ab≠0),
用消元法得x=y=,
因此,只需要輸入相應(yīng)的未知數(shù)的系數(shù)和常數(shù)項(xiàng),就能計(jì)算出方程組的解,即可輸出x和y的值。上述二元一次方程組的算法如下:
S:輸入a,b,c,a,b,c
S:x=
S:y=
S:輸出x,y
算法除了作為數(shù)學(xué)必修3的教學(xué)內(nèi)容之外,其思想方法也應(yīng)滲透到高中數(shù)學(xué)課程的其他內(nèi)容中。因此,在教學(xué)算法時(shí),還應(yīng)鼓勵(lì)學(xué)生今后要盡可能地運(yùn)用算法解決相關(guān)問(wèn)題,讓程序思想成為我們思考問(wèn)題的習(xí)慣。
參考文獻(xiàn):
[1]數(shù)學(xué)課程標(biāo)準(zhǔn)研制組.普通高中數(shù)學(xué)課程標(biāo)準(zhǔn)(實(shí)驗(yàn))解讀.江蘇教育出版社,2004.3.
[2]中學(xué)數(shù)學(xué)課程教材研究研發(fā)中心.普通高中課程標(biāo)準(zhǔn)實(shí)驗(yàn)教科書(shū)數(shù)學(xué)3.人民教育出版社,2006.4.