摘 要: 本文立足于《計(jì)算機(jī)數(shù)學(xué)》課程改革,分析了目前《計(jì)算機(jī)數(shù)學(xué)》課程教學(xué)中存在的主要問題,提出從算法思想的融入為著手點(diǎn)進(jìn)行高職計(jì)算機(jī)數(shù)學(xué)課程改革,并對算法思想的概念與來源進(jìn)行了考證,對算法思想融入《計(jì)算機(jī)數(shù)學(xué)》途徑與方法提出了自己的觀點(diǎn)。
關(guān)鍵詞: 計(jì)算機(jī)數(shù)學(xué)教學(xué) 算法與算法思想 途徑方法
“計(jì)算機(jī)的基礎(chǔ)是軟件,軟件的基礎(chǔ)是算法,算法的基礎(chǔ)是數(shù)學(xué)。”“我們希望在教學(xué)過程中,培養(yǎng)學(xué)生的數(shù)學(xué)思想,算法思想,而不應(yīng)該把重點(diǎn)放在培養(yǎng)學(xué)生的計(jì)算能力上。”“希望能有更有針對性的算法思想的訓(xùn)練,使學(xué)生理解數(shù)學(xué)培養(yǎng)的是一種思維方式。”計(jì)算機(jī)老師們這樣評論《計(jì)算機(jī)數(shù)學(xué)》的改革。
可以看到,現(xiàn)在需要一種更有用的數(shù)學(xué),對于《計(jì)算機(jī)數(shù)學(xué)》課程而言,它需要承載的是計(jì)算機(jī)專業(yè)從業(yè)人員的思想方法與職業(yè)素養(yǎng)的培養(yǎng)。本文將從算法思想的概念與實(shí)質(zhì)、算法思想的淵源、算法思想與高職數(shù)學(xué)的融合方法與途徑等方面探討這個問題。
一、算法思想的概念與淵源
1.什么是算法與算法思想
李文林在其著名的《數(shù)學(xué)史概論》中指出:“所謂‘算法’,不只是單純的計(jì)算,而是為了解決一整類實(shí)際和科學(xué)問題而概括出來的,帶一般性的計(jì)算方法,……它們是一種歸納思維能力的產(chǎn)物,這種能力與歐幾里得幾何的演繹風(fēng)格迥然不同而又相輔相成。”
算法可以理解為有基本運(yùn)算及規(guī)定的運(yùn)算順序所構(gòu)成的完整的解題步驟。或者看成按照要求設(shè)計(jì)好的有限的確切的計(jì)算序列,并且這樣的步驟和序列可以解決一類問題。一個算法應(yīng)該具有以下七個重要的特征:(1)有窮性(Finiteness);(2)確切性(Definiteness);(3)輸入項(xiàng)(Input);(4)輸出項(xiàng)(Output);(5)可行性(Effectiveness);(6)高效性(High efficiency);(7)健壯性(Robustness)。
算法思想則指對算法的設(shè)計(jì)、實(shí)施,以及對算法的改進(jìn)等一系列與算法有關(guān)問題本質(zhì)的理性認(rèn)識層次上的思維活動的結(jié)果。
同一問題可用不同算法解決,而一個算法的質(zhì)量優(yōu)劣將影響到算法乃至程序的效率的高低。一個算法的評價(jià)主要從時間復(fù)雜度和空間復(fù)雜度來考慮。
2.中國古代的算法思想
從歷史上看數(shù)學(xué)的發(fā)展包括兩大主要活動:證明定理和創(chuàng)造算法。定理證明是希臘人首倡,后構(gòu)成數(shù)學(xué)發(fā)展中演繹傾向的脊梁;算法創(chuàng)造昌盛于古代和中世紀(jì)的中國、印度,形成了數(shù)學(xué)發(fā)展中強(qiáng)烈的算法傾向。
中國古代數(shù)學(xué)就有明顯的算法特征,成書于公元前1世紀(jì)的《九章算術(shù)》是這方面的典范,其中收錄了大量的古代算法,譬如約分的“更相減損”原理、秦九韶算法和割圓術(shù),等等。著名學(xué)者吳文俊先生認(rèn)為:“中國古代的數(shù)學(xué)是一種算法的數(shù)學(xué),也是一種計(jì)算機(jī)的數(shù)學(xué)。進(jìn)入到計(jì)算機(jī)時代,這種計(jì)算機(jī)數(shù)學(xué)或是算法的數(shù)學(xué),剛巧是符合時代要求,符合時代精神的。從這個意義上來講,我們最古老的數(shù)學(xué)也是計(jì)算機(jī)時代最適合、最現(xiàn)代化的數(shù)學(xué)。”
我國古代最著名的有數(shù)學(xué)書籍有《算經(jīng)十書》,它是指漢、唐一千多年間的十部著名數(shù)學(xué)著作,它們曾經(jīng)是隋唐時候國子監(jiān)算學(xué)科(國家所設(shè)學(xué)校的數(shù)學(xué)科)的教科書。十部算書的名字是:《周髀算經(jīng)》、《九章算術(shù)》、《海島算經(jīng)》、《五曹算經(jīng)》、《孫子算經(jīng)》、《夏侯陽算經(jīng)》、《張丘建算經(jīng)》、《五經(jīng)算術(shù)》、《緝古算經(jīng)》、《綴術(shù)》。這十部算書,以《周髀算經(jīng)》為最早,對古代數(shù)學(xué)的各個方面全面完整地進(jìn)行敘述的是《九章算術(shù)》,它是十部算書中最重要的一部。
書中記載了當(dāng)時世界上最先進(jìn)的分?jǐn)?shù)四則運(yùn)算和比例算法。書中還記載有解決各種面積和體積問題的算法及利用勾股定理進(jìn)行測量的各種問題。《九章算術(shù)》中最重要的成就在代數(shù)方面,書中記載了開平方和開立方的方法,并且在這基礎(chǔ)上有了求解一般一元二次方程(首項(xiàng)系數(shù)不是負(fù))的數(shù)值解法。還有整整一章是講述聯(lián)立一次方程解法的,這種解法實(shí)質(zhì)上和現(xiàn)在中學(xué)里所講的方法是一致的。這要比歐洲同類算法早出一千五百多年。在同一章中,還在世界數(shù)學(xué)史上第一次記載了負(fù)數(shù)概念和正負(fù)數(shù)的加減法運(yùn)算法則。
3.近代數(shù)學(xué)中的算法思想
事實(shí)上,作為近代數(shù)學(xué)誕生標(biāo)志的解析幾何與微積分,從思想方法的淵源看都是算法傾向的產(chǎn)物。
從微積分的歷史可以知道,微積分的產(chǎn)生是尋找解決一系列實(shí)際問題的普遍算法的結(jié)果。這些問題包括:決定物體的瞬時速度、求極大值與極小值、求曲線的切線、求物體的重心及引力、面積與體積計(jì)算等。從16世紀(jì)中開始的100多年間,許多大數(shù)學(xué)家都致力于獲得解決這些問題的特殊算法。牛頓與萊布尼茲的功績在于將這些特殊的算法統(tǒng)一成兩類基本運(yùn)算——微分與積分,并進(jìn)一步指出了它們的互逆關(guān)系。
而對于解析幾何的誕生,通常認(rèn)為,笛卡兒創(chuàng)立解析幾何的基本思想,是用代數(shù)方法來解幾何問題。如果我們?nèi)ラ喿x笛卡兒的原著,就會發(fā)現(xiàn)貫穿于其中的徹底的算法精神。《幾何學(xué)》開宗明義就宣稱:“我將毫不猶豫地在幾何學(xué)中引進(jìn)算術(shù)的術(shù)語,以便使自己變得更加聰明。”解析幾何將一切幾何問題化為代數(shù)問題,這些代數(shù)問題則可以用一種簡單的、幾乎自動的方法去解決。這與古代中國數(shù)學(xué)家解決問題的路線可以說是一脈相承。
二、計(jì)算機(jī)數(shù)學(xué)教學(xué)過程中算法思想融入的途徑與方法
計(jì)算機(jī)數(shù)學(xué)是計(jì)算機(jī)專業(yè)的一門基礎(chǔ)課程,它不僅為計(jì)算機(jī)專業(yè)其他課程的學(xué)習(xí)提供必要的數(shù)學(xué)知識,為計(jì)算機(jī)應(yīng)用提供必要的數(shù)學(xué)思想,而且為計(jì)算機(jī)專業(yè)學(xué)生數(shù)學(xué)素養(yǎng)的養(yǎng)成提供必要的環(huán)境。
一直以來,高職計(jì)算機(jī)數(shù)學(xué)教學(xué)內(nèi)容其實(shí)是變相的高等數(shù)學(xué),重點(diǎn)講述極限、導(dǎo)數(shù)、微分、積分,然后附帶介紹一些圖論,邏輯代數(shù)的知識,且由于后面的離散數(shù)學(xué)部分內(nèi)容不多,所占期末考試比例15%左右,大部分學(xué)生認(rèn)為學(xué)的計(jì)算機(jī)數(shù)學(xué)等同于高等數(shù)學(xué)。有些老師說,不是不想改,而是不知道怎么改才對。其實(shí)這有個摸索的過程。尤其是高職階段,課程壓縮得很厲害,大多數(shù)只開一個學(xué)期,要講微積分,要講補(bǔ)充內(nèi)容,要講數(shù)學(xué)實(shí)驗(yàn),的確也很緊張。這也就需要我們認(rèn)真研究算法思想滲透的方法與途徑。可以從以下幾個方面進(jìn)行考慮。
1.算法思想與計(jì)算機(jī)數(shù)學(xué)文化史的介紹相結(jié)合
數(shù)學(xué)文化史的介紹在高職數(shù)學(xué)的介紹中起著重要的啟發(fā)、引導(dǎo)的作用,英國數(shù)學(xué)史家福弗爾(J.Fauvel 1947—2001)曾總結(jié)出應(yīng)用數(shù)學(xué)史于數(shù)學(xué)教學(xué)的十五個理由,其中有:(1)增強(qiáng)學(xué)生的學(xué)習(xí)動機(jī);(2)改變學(xué)生的數(shù)學(xué)觀;(3)因?yàn)橹啦⒎侵挥兴麄冏约河欣щy,因而會感到欣慰;(4)使數(shù)學(xué)不那么可怕;(5)有助于保持對數(shù)學(xué)的興趣;(6)給予數(shù)學(xué)以人文的一面;(7)通過古今方法的對比,確立現(xiàn)代方法的價(jià)值;(8)為學(xué)生提供探究的機(jī)會;(9)過去的發(fā)展障礙有助于解釋今天學(xué)生的學(xué)習(xí)困難。
中國的數(shù)學(xué)史中有大量有關(guān)算法思想的內(nèi)容,在介紹極限思想時,割圓術(shù)求圓面積就是一個很好的引入數(shù)學(xué)史的例子。
《算經(jīng)十書》中的第三部是《海島算經(jīng)》,它是三國時期的劉徽(約225—295)所作。這部書中講述的都是利用標(biāo)桿進(jìn)行兩次、三次、最復(fù)雜的是四次測量來解決各種測量數(shù)學(xué)的問題。這些測量數(shù)學(xué),正是中國古代非常先進(jìn)的地圖學(xué)的數(shù)學(xué)基礎(chǔ)。此外,劉徽對《九章算術(shù)》所作的注釋工作也是很有名的。一般地說,可以把這些注釋看成是《九章算術(shù)》中若干算法的數(shù)學(xué)證明。
劉徽注中的“割圓術(shù)”開創(chuàng)了中國古代圓周率計(jì)算方面的重要方法,他還首次把極限概念應(yīng)用于解決數(shù)學(xué)問題。通過割圓術(shù)求圓面積的方法,使學(xué)生在感受中國古人的聰明智慧的同時,學(xué)習(xí)這種無限細(xì)分,無限接近的計(jì)算方法。
2.算法思想與計(jì)算機(jī)數(shù)學(xué)教學(xué)內(nèi)容相結(jié)合
在高職計(jì)算機(jī)數(shù)學(xué)教學(xué)中,我們都要介紹數(shù)制的基本計(jì)算方法,二進(jìn)制、八進(jìn)制、十進(jìn)制的互相轉(zhuǎn)換。對于這個部分,我們可以在課堂上設(shè)計(jì)這樣的教學(xué)情境:“能讓計(jì)算機(jī)幫你進(jìn)行數(shù)制轉(zhuǎn)換嗎?”由于學(xué)生已了解了數(shù)制之間的轉(zhuǎn)換規(guī)律,只要介紹N-S流程圖,就可以鼓勵學(xué)生創(chuàng)造自己的算法。我們可以先對算法進(jìn)行介紹,使學(xué)生理解算法的四種基本結(jié)構(gòu)“順序、選擇、當(dāng)型循環(huán)、直到型循環(huán)”,并做例題1:給出求10!并打印的N-S流程圖(見圖一)。
和例題2:求出1到100順序相加的過程中末位數(shù)是0的和,并把它們打印出來(見圖二)。通過這兩個流程圖案例,使學(xué)生理解流程圖的基本設(shè)計(jì)方法與步驟。最后請同學(xué)們自己嘗試做十進(jìn)制轉(zhuǎn)換成二進(jìn)制的流程圖(如表一),在此過程中,同學(xué)們可以討論,提問,最后分小組回答,使同學(xué)們對算法的七個特征有更深刻的認(rèn)識,能運(yùn)用基本特征對算法的優(yōu)劣作出自己的評價(jià)。
過程是最重要的,讓同學(xué)們設(shè)計(jì)算法,比較算法,評判算法的優(yōu)劣,從而對算法概念形成自己的理解。
3.算法思想與計(jì)算機(jī)數(shù)學(xué)實(shí)驗(yàn)教學(xué)內(nèi)容相結(jié)合
除了高等數(shù)學(xué)中常見的數(shù)學(xué)實(shí)驗(yàn)內(nèi)容,如函數(shù)求值,極限、導(dǎo)數(shù)、積分的計(jì)算等,計(jì)算機(jī)數(shù)學(xué)可加入算法實(shí)踐,編程等實(shí)驗(yàn)內(nèi)容。如可在實(shí)驗(yàn)中帶有實(shí)際應(yīng)用意義的問題,使學(xué)生綜合應(yīng)用所學(xué)數(shù)學(xué)知識,分析實(shí)際帶有建模意義的實(shí)際問題,并通過建立算法,設(shè)置程序予以解決。如兔子問題:“一對剛出生的幼兔經(jīng)過一個月可以長成成兔,成兔再經(jīng)過一個月后可以繁殖出一對幼兔。如果不計(jì)算兔子的死亡數(shù),請給出在未來12個月中每個月的兔子對數(shù)。”在數(shù)學(xué)實(shí)驗(yàn)課上,老師可引導(dǎo)學(xué)生用樹狀圖來表示兔子增長規(guī)律,然后讓學(xué)生列出流程圖(圖略),最后編出簡單程序用數(shù)學(xué)軟件matlab或mathematica來計(jì)算:
執(zhí)行結(jié)果:233。即一年以后小兔的數(shù)量為233對。
再比如在積分課程開始之前,可以設(shè)計(jì)一節(jié)數(shù)學(xué)實(shí)驗(yàn)課程,讓學(xué)生求一塊任意封閉圖形的面積,通過設(shè)計(jì)無窮級數(shù)求和的方法,使學(xué)生通過自己的實(shí)驗(yàn)發(fā)現(xiàn)面積的分割求法,并自己設(shè)計(jì)算法,進(jìn)行計(jì)算,可編程如下:function s=def(f,a,b,m)
運(yùn)行程序,可得不同n時的不同S值,使學(xué)生更直觀地理解和式極限的概念。在下一節(jié)課上講定積分的概念時,學(xué)生就自然而然地理解了定積分的式子與概念。通過算法對基礎(chǔ)概念的闡釋方式,有利于高職學(xué)生理解抽象的數(shù)學(xué)概念。
三、結(jié)語
算法是一種思想,它與函數(shù)思想的一樣,也是一種需要通過訓(xùn)練得來的數(shù)學(xué)思想,《計(jì)算機(jī)數(shù)學(xué)課程》是算法思想培養(yǎng)的良好途徑。愿以本文拋磚引玉,與廣大數(shù)學(xué)教師一起探討如何更好地推進(jìn)《計(jì)算機(jī)數(shù)學(xué)》教學(xué)改革,促進(jìn)信息學(xué)院學(xué)生職業(yè)能力與學(xué)習(xí)發(fā)展能力的養(yǎng)成,使數(shù)學(xué)課成為對高職學(xué)生終身受益的一門課程。
參考文獻(xiàn):
[1]李章.高職計(jì)算機(jī)數(shù)學(xué)教學(xué)改革與實(shí)踐[D].湖南師范大學(xué),2010.5.
[2]王信峰.計(jì)算機(jī)數(shù)學(xué)基礎(chǔ)[M].高等教育出版社,2009.
[3]Fauvel.J,Using history in mathematics education[J].For the Learning of Mathematics,1991,11(2):3-6.
[4]陳希,陳艷平.計(jì)算機(jī)專業(yè)數(shù)學(xué)教學(xué)有效性的思考與實(shí)踐[J].寧德師專學(xué)報(bào)(自然科學(xué)版),2010,22(1):35-38.