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

下載本文檔

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

文檔簡介

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

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

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

4、;兩者均可以十分方便地實現(xiàn)算法。值得指出的是,VBA程序語言的實現(xiàn)在Excel中是以宏的形式出現(xiàn)的,其調(diào)用執(zhí)行步驟為:在Excel工作表中,選擇“工具/宏/Visual Basic編輯器”,進入VB編輯器窗口;在VB編輯器窗口中選擇“工具/宏”,在彈出的對話框中,在“宏名稱”欄內(nèi)輸入宏的名稱,點擊“創(chuàng)建”,出現(xiàn)宏主體語句Sub和End Sub,輸入相應(yīng)Excel VBA代碼;選擇“運行/運行宏”或按F5運行程序?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中算法的輸入輸出可借助對話框函數(shù)InputBox、MsgBox來完成,也可借助于單元格屬性cells(row,column)來完成,其中row為單元格的行號、column為單元格的列號,例如語句cells(1,2)=0即表示將B1單元格賦值為0,后者可以非常

6、方便地將后臺程序運行的結(jié)果顯示在前臺工作表中。二、基于Excel的算法實現(xiàn)教學案例21、認識、理解算法如前所述,算法思維的機械性特點往往有“不可接受性”,借助信息技術(shù)實現(xiàn)算法可以讓學生體驗編程過程,創(chuàng)立程序運行的“情境”,真實接觸到計算機的“思維”過程。案例1、已知,試設(shè)計一個程序交換的值。圖2-1圖2-2圖2-3初學算法語句,學生受數(shù)學中變量的影響,往往對算法變量的理解有一定的不可接受性,從而會得到右圖所示的偽代碼1-1,將其轉(zhuǎn)換成VBA語言運行后會發(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é)果;通過對變量值進行“追蹤”可以發(fā)現(xiàn),原來在語句30中變量的值賦給后的值便更新為5了,通過計算機實現(xiàn)創(chuàng)設(shè)的情境對學生的震憾力是可想而知的,學生在真實的程序運行的“情境”認識到變量可以看作一個存放數(shù)據(jù)的盒子,而且是最多只能存放一個數(shù)據(jù)的盒子,當一個新數(shù)據(jù)放進去時,原來的數(shù)就被“擠”了出來。進一步的探究中,學生會認識到,交換兩個變量正確的做法是設(shè)置一中間變量,用來暫時儲存原先變量的值,修改后的偽代碼為1-2。案

8、例2、根據(jù)圖2-1的框圖,列式寫出最后C的值。本題的變量較多,計算量也較大,學生往往很難“想象”結(jié)果,借助于Excel工作表強大的數(shù)據(jù)統(tǒng)計功能,很容易就能實現(xiàn)算法,從而幫助學生理解其中的算理。具體設(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按住鼠標左鍵并向下拖動填充柄,最終算法實現(xiàn)效果如圖2-2。在信息技術(shù)支持下,可以非常方便地幫助學生分析算法、理解算理,并且通過快捷鍵“ctr

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

10、循環(huán)體中語句的順序不同即影響變量初值的賦予(前者為,后者則是),也導致輸出結(jié)果的不同(前者為,后者則是)。要想幫助學生透徹理解程序,必須從“變量的變化”入手,分析清楚每次循環(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é)果輸出到工作表中,從而便于查找出錯環(huán)節(jié)并加以修正,在分析算法過程中可起到事半功倍的效果。事實上,數(shù)學中有很多相當精妙的算法公式,如等,這樣的公式的合理性顯然已超出學生的“想象”,通過設(shè)置算法由計算機來“算”,一方面可以提高學生算法設(shè)計能力,更能感受到算法的力量,這顯然是“紙上談兵”所難以企及的。23、優(yōu)化、創(chuàng)新算法算法的形成和發(fā)展,需要進行不斷地感知、觀察、抽象、識別、歸納,經(jīng)歷發(fā)現(xiàn)算法、利用算法、選擇算法、推廣算法等一系列思維過程,在“做

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

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

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

溫馨提示

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

評論

0/150

提交評論