信息技術(shù)支持下的算法案例及反思_第1頁
信息技術(shù)支持下的算法案例及反思_第2頁
信息技術(shù)支持下的算法案例及反思_第3頁
信息技術(shù)支持下的算法案例及反思_第4頁
信息技術(shù)支持下的算法案例及反思_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、信息技術(shù)支持下的算法案例及反思【摘 要】 算法思維具有機(jī)械操作的特點(diǎn),算法學(xué)習(xí)是一種數(shù)學(xué)活動(dòng),因此算法教學(xué)要重視信息技術(shù)支持下的算法實(shí)現(xiàn)。本文以Excel為技術(shù)平臺(tái),認(rèn)識(shí)到算法實(shí)現(xiàn)有利于學(xué)生認(rèn)識(shí)、理解算法,有利于辨析、建構(gòu)算法,有利于優(yōu)化、創(chuàng)新算法。在教學(xué)實(shí)踐的基礎(chǔ)上,認(rèn)識(shí)到:理論教學(xué)與實(shí)踐操作要作適當(dāng)?shù)膭?dòng)態(tài)平衡;算法教學(xué)要加強(qiáng)學(xué)科知識(shí)內(nèi)部和學(xué)科間的整合;算法教學(xué)要講算法、重算理,進(jìn)行算法化教學(xué)。【關(guān)鍵詞】 Excel 算法 算理 整合作為一種為解決給定問題而需執(zhí)行者去一步一步實(shí)施有窮操作過程的描述,算法是求解一個(gè)問題所需步驟的提綱,是對(duì)解題過程的抽象和精確描述,“算法思想已經(jīng)成為現(xiàn)代人應(yīng)具備

2、的一種數(shù)學(xué)素養(yǎng)”,在新課程改革中算法正作為數(shù)學(xué)的重要組成部分而逐步“深入人心”。筆者以為算法教學(xué)一方面要讓學(xué)生體會(huì)算法中的算理,因?yàn)樗憷硎撬惴ǖ撵`魂,同時(shí)也要讓學(xué)生學(xué)會(huì)算法的適度形式化,學(xué)會(huì)算法的實(shí)現(xiàn)。一方面算法思維與通常的數(shù)學(xué)思維有迥然不同的特點(diǎn),通過計(jì)算機(jī)的算法實(shí)現(xiàn)有利于學(xué)生認(rèn)識(shí)和接受算法思維,體會(huì)到算法的力量和操作機(jī)械的特點(diǎn)。另一方面,算法學(xué)習(xí)是一種數(shù)學(xué)活動(dòng),“實(shí)踐操作應(yīng)成為學(xué)生學(xué)習(xí)的重要環(huán)節(jié)”,就像游泳本身也有理論,但更重要的是他必須下水去練習(xí),老是站在陸地上是永遠(yuǎn)也學(xué)不會(huì)游泳的,因此,“有條件的學(xué)校,應(yīng)鼓勵(lì)學(xué)生盡可能上機(jī)嘗試各種算法”事實(shí)上,算法設(shè)計(jì)的優(yōu)劣需要上機(jī)檢驗(yàn),算法設(shè)計(jì)的改進(jìn)

3、需要調(diào)試修正,更重要的是要培養(yǎng)學(xué)生利用數(shù)學(xué)理論在計(jì)算機(jī)上實(shí)現(xiàn)問題解決的能力。本文將以Excel為平臺(tái)談?wù)勅绾卧谛畔⒓夹g(shù)支持下進(jìn)行算法教學(xué)。一、Excel環(huán)境介紹Excel作為一種普及性的軟件,內(nèi)置有豐富的函數(shù),長于數(shù)據(jù)分析,并嵌有功能強(qiáng)大的宏語言作為后臺(tái)支撐,從而成為連接算法和計(jì)算機(jī)技術(shù)的一個(gè)理想平臺(tái)。Excel工作表有 “趨勢(shì)填充”和“相對(duì)引用”功能,通過雙擊或拖動(dòng)即可產(chǎn)生結(jié)構(gòu)相同的公式或大量的數(shù)據(jù),能有效減少重復(fù)性勞動(dòng);與此同時(shí),VBA(Visual Basic for Application)是Excel自帶的一種程序設(shè)計(jì)語言,它具有一般程序設(shè)計(jì)所具有的功能,具有語法簡(jiǎn)單、通用性強(qiáng)的特點(diǎn)

4、;兩者均可以十分方便地實(shí)現(xiàn)算法。值得指出的是,VBA程序語言的實(shí)現(xiàn)在Excel中是以宏的形式出現(xiàn)的,其調(diào)用執(zhí)行步驟為:在Excel工作表中,選擇“工具/宏/Visual Basic編輯器”,進(jìn)入VB編輯器窗口;在VB編輯器窗口中選擇“工具/宏”,在彈出的對(duì)話框中,在“宏名稱”欄內(nèi)輸入宏的名稱,點(diǎn)擊“創(chuàng)建”,出現(xiàn)宏主體語句Sub和End Sub,輸入相應(yīng)Excel VBA代碼;選擇“運(yùn)行/運(yùn)行宏”或按F5運(yùn)行程序?qū)崿F(xiàn)算法。作為一種特定的程序語言,Excel VBA有其自身特定的語法規(guī)則,與偽代碼有一些差異,下表即為兩者間的重要不同:分類偽代碼VBA程序語句含義賦值語句m20m=20將20賦給變量

5、m輸入輸出語句Read aa=InputBox( )輸入a的值Print aMsgBox( a )輸出a的值循環(huán)語句For i From 1 To 100End ForFor i=1 To 100Next iFor循環(huán)語句While x10000End WhileWhile x<=10000WEndWhile循環(huán)語句Excel VBA中算法的輸入輸出可借助對(duì)話框函數(shù)InputBox、MsgBox來完成,也可借助于單元格屬性cells(row,column)來完成,其中row為單元格的行號(hào)、column為單元格的列號(hào),例如語句cells(1,2)=0即表示將B1單元格賦值為0,后者可以非常

6、方便地將后臺(tái)程序運(yùn)行的結(jié)果顯示在前臺(tái)工作表中。二、基于Excel的算法實(shí)現(xiàn)教學(xué)案例21、認(rèn)識(shí)、理解算法如前所述,算法思維的機(jī)械性特點(diǎn)往往有“不可接受性”,借助信息技術(shù)實(shí)現(xiàn)算法可以讓學(xué)生體驗(yàn)編程過程,創(chuàng)立程序運(yùn)行的“情境”,真實(shí)接觸到計(jì)算機(jī)的“思維”過程。案例1、已知,試設(shè)計(jì)一個(gè)程序交換的值。圖2-1圖2-2圖2-3初學(xué)算法語句,學(xué)生受數(shù)學(xué)中變量的影響,往往對(duì)算法變量的理解有一定的不可接受性,從而會(huì)得到右圖所示的偽代碼1-1,將其轉(zhuǎn)換成VBA語言運(yùn)行后會(huì)發(fā)現(xiàn)變量值均a=2:b=5a=bb=acells(1,1)=”a=” & acells(1,2)=”b=” & bVBA 1-1

7、10 a220 b530 ab40 ba50 Print a,b偽代碼1-110 a220 b525 ta30 ab40 bt50 Print a,b偽代碼1-2為5,并沒有得到我們想象的結(jié)果;通過對(duì)變量值進(jìn)行“追蹤”可以發(fā)現(xiàn),原來在語句30中變量的值賦給后的值便更新為5了,通過計(jì)算機(jī)實(shí)現(xiàn)創(chuàng)設(shè)的情境對(duì)學(xué)生的震憾力是可想而知的,學(xué)生在真實(shí)的程序運(yùn)行的“情境”認(rèn)識(shí)到變量可以看作一個(gè)存放數(shù)據(jù)的盒子,而且是最多只能存放一個(gè)數(shù)據(jù)的盒子,當(dāng)一個(gè)新數(shù)據(jù)放進(jìn)去時(shí),原來的數(shù)就被“擠”了出來。進(jìn)一步的探究中,學(xué)生會(huì)認(rèn)識(shí)到,交換兩個(gè)變量正確的做法是設(shè)置一中間變量,用來暫時(shí)儲(chǔ)存原先變量的值,修改后的偽代碼為1-2。案

8、例2、根據(jù)圖2-1的框圖,列式寫出最后C的值。本題的變量較多,計(jì)算量也較大,學(xué)生往往很難“想象”結(jié)果,借助于Excel工作表強(qiáng)大的數(shù)據(jù)統(tǒng)計(jì)功能,很容易就能實(shí)現(xiàn)算法,從而幫助學(xué)生理解其中的算理。具體設(shè)置如下:將單元格A列、B列、C列、D列分別作為變量、,在第二列相應(yīng)單元格分別輸入0、1、1、0作為相應(yīng)變量的初值,在單元格A3、B3、C3、D3中分別輸入公式“=A2+1”、“=B2+2”、“=2*C2”、“=D2+B3*C3”,選中單元格A3、B3、C3、D3按住鼠標(biāo)左鍵并向下拖動(dòng)填充柄,最終算法實(shí)現(xiàn)效果如圖2-2。在信息技術(shù)支持下,可以非常方便地幫助學(xué)生分析算法、理解算理,并且通過快捷鍵“ctr

9、l+”可以方便地實(shí)現(xiàn)數(shù)據(jù)與對(duì)應(yīng)公式的切換,通過對(duì)相應(yīng)公式(如圖2-3)的查看可以幫助學(xué)生進(jìn)一步理解相應(yīng)的算法。22、辨析、建構(gòu)算法算法教學(xué)應(yīng)提倡算法化,鼓勵(lì)學(xué)生由實(shí)例的考察主動(dòng)地去總結(jié)出相應(yīng)的算法,經(jīng)歷一個(gè)由不那么精確、不那么完整到比較精確、比較完善的發(fā)展過程,使“算法”不僅僅是宣布某個(gè)結(jié)果,而且也是學(xué)生主動(dòng)建構(gòu)的結(jié)果案例3、設(shè)計(jì)求滿足條件的最小正整數(shù)的算法。本題由于的值事先不知道,故可使用While循環(huán)來實(shí)現(xiàn)算法,循環(huán)中可設(shè)置累加變量、計(jì)數(shù)變量(見偽代碼3-1)。我們知道,影響循環(huán)語句結(jié)果的三要素是初始值、循環(huán)條件和循環(huán)體。本題的循環(huán)條件可設(shè)置為“”,但循環(huán)體中的語句可以設(shè)置為,也可設(shè)置為,

10、循環(huán)體中語句的順序不同即影響變量初值的賦予(前者為,后者則是),也導(dǎo)致輸出結(jié)果的不同(前者為,后者則是)。要想幫助學(xué)生透徹理解程序,必須從“變量的變化”入手,分析清楚每次循環(huán)中變10 20 While 30 40 50 End While60 Print 偽代碼3-1 循環(huán)初值循環(huán)條件循環(huán)體結(jié)果輸出n=0:S=0While S<=105n=n+1;S=S+n2cells(n,1)=ncells(n,2)=SWendVBA 3-1n=1:S=0While S<=105S=S+n2 ;n=n+1cells(n,1)=Scells(n,2)=nWendVBA 3-2量值是如何變化的,借助

11、于信息技術(shù),設(shè)置相應(yīng)的VBA程序(前者見VBA3-1,后者見VBA3-2),并在循環(huán)體中增加變量的輸出,借助于cells(row,column)語句將變量結(jié)果輸出到工作表中,從而便于查找出錯(cuò)環(huán)節(jié)并加以修正,在分析算法過程中可起到事半功倍的效果。事實(shí)上,數(shù)學(xué)中有很多相當(dāng)精妙的算法公式,如等,這樣的公式的合理性顯然已超出學(xué)生的“想象”,通過設(shè)置算法由計(jì)算機(jī)來“算”,一方面可以提高學(xué)生算法設(shè)計(jì)能力,更能感受到算法的力量,這顯然是“紙上談兵”所難以企及的。23、優(yōu)化、創(chuàng)新算法算法的形成和發(fā)展,需要進(jìn)行不斷地感知、觀察、抽象、識(shí)別、歸納,經(jīng)歷發(fā)現(xiàn)算法、利用算法、選擇算法、推廣算法等一系列思維過程,在“做

12、“的過程中感受算法學(xué)習(xí)是一種充滿探索、發(fā)現(xiàn)、創(chuàng)造的活動(dòng)。案例4、寫出求的一個(gè)算法。偽代碼4-2偽代碼4-1偽代碼4-3本題可可以考慮用For循環(huán),用變量(初始值設(shè)定為0)來接受累加結(jié)果,問題的關(guān)鍵在于循環(huán)體如何構(gòu)造,因?yàn)楸纠袨槠鏀?shù)時(shí)賦值為,為偶數(shù)時(shí)賦值為,從而容易想到構(gòu)造相應(yīng)算法(偽代碼如圖4-1),在將偽代碼轉(zhuǎn)換為VBA語言實(shí)現(xiàn)過程中,有學(xué)生將算法作了改進(jìn),將與分開處理采用If語句構(gòu)造循環(huán)體(其偽代碼見圖4-2);更有學(xué)生考慮到為整數(shù)),循環(huán)體中語句設(shè)計(jì)為(偽代碼見圖4-3);從而達(dá)到了優(yōu)化算法的效果。三、幾點(diǎn)教學(xué)反思31、理論教學(xué)與實(shí)踐操作要作適當(dāng)?shù)膭?dòng)態(tài)平衡算法教學(xué)要重視算法實(shí)現(xiàn),通過上

13、機(jī)調(diào)試檢驗(yàn)算法設(shè)計(jì)的優(yōu)劣、修正改進(jìn)算法、提高問題解決能力。但應(yīng)作適當(dāng)?shù)钠胶?,不能把算法?nèi)容簡(jiǎn)單處理成程序語言的學(xué)習(xí)或程序設(shè)計(jì),兩者間固然有密切的聯(lián)系(算法是程序語言的“靈魂”,程序可以作為算法的一種描述),但在教學(xué)重點(diǎn)上又有所不同,算法的教學(xué)重點(diǎn)在于體現(xiàn)算法的思想,而程序語言教學(xué)重點(diǎn)是讓學(xué)生學(xué)會(huì)編程,在算法教學(xué)時(shí)可以充分結(jié)合程序語言教學(xué),鼓勵(lì)學(xué)生盡可能把自己的算法在計(jì)算機(jī)上實(shí)現(xiàn),但不可本末倒置。32、算法教學(xué)要加強(qiáng)學(xué)科知識(shí)內(nèi)部和學(xué)科間的整合一方面要加強(qiáng)學(xué)科間的課程整合,算法的描述要注重適當(dāng)形式化,我們的思考是偽代碼能否盡量與程序語言相吻合,這樣可以方便學(xué)生的算法實(shí)現(xiàn)(如現(xiàn)有的蘇教版教材中,將偽

14、代碼轉(zhuǎn)換成VBA語言就是算法實(shí)現(xiàn)的一大障礙),事實(shí)上本著教為不教、學(xué)為創(chuàng)造的原則,只有將信息技術(shù)交到學(xué)生手中,才能最大發(fā)揮信息技術(shù)的作用與此同時(shí),數(shù)學(xué)課程中的算法初步和信息技術(shù)課程中的程序設(shè)計(jì)內(nèi)容息息相關(guān),但在課程內(nèi)容和技術(shù)實(shí)現(xiàn)載體上均大相徑庭,這也造成了算法教學(xué)一定程度的混亂。另一方面也要加強(qiáng)數(shù)學(xué)課程內(nèi)的知識(shí)整合,算法教學(xué)中可以適當(dāng)滲透數(shù)列知識(shí),因?yàn)檫f歸是設(shè)計(jì)和描述算法的一種非常好的工具,遞歸的關(guān)鍵在于找出遞歸方程式和遞歸終止條件,學(xué)生在理解和設(shè)計(jì)算法(特別是循環(huán)語句)時(shí),由于缺少數(shù)列知識(shí)作為支撐,往往很難得出相應(yīng)的遞歸方程式,至于遞歸終止條件更是似是而非33、 算法教學(xué)要講算法、重算理,進(jìn)行算法化教學(xué)算法是解決問題的操作程序,算理是算法賴于成立的數(shù)學(xué)原理,如果說算法是一種工具,那么算理則是一種觀念,具有更豐富的數(shù)學(xué)思想方法、更多的人文精神,具有更大的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論