體會-理解-內(nèi)化:高中遞歸程序教學(xué)三步_第1頁
體會-理解-內(nèi)化:高中遞歸程序教學(xué)三步_第2頁
體會-理解-內(nèi)化:高中遞歸程序教學(xué)三步_第3頁
體會-理解-內(nèi)化:高中遞歸程序教學(xué)三步_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

【摘要】高中信息技術(shù)教學(xué)中,遞歸可將復(fù)雜問題簡單化,且遞歸程序代碼較為簡潔,是程序設(shè)計必備的算法。遞歸同時也是高中信息技術(shù)課標(biāo)要求學(xué)生所掌握的算法。在教學(xué)中,教師可從體會遞歸的原理、深層次理解遞歸、內(nèi)化遞歸思維三個方面展開,促進(jìn)學(xué)生理解遞歸,進(jìn)而形成遞歸思維?!娟P(guān)鍵詞】高中信息技術(shù);遞歸算法;遞歸程序遞歸在程序設(shè)計領(lǐng)域是一種算法,遞歸程序就是利用遞歸算法編寫的程序代碼。其中遞歸算法的實現(xiàn)依賴于函數(shù)。因此,在一個函數(shù)的函數(shù)體中可以直接或間接地調(diào)用該函數(shù)本身,這樣的函數(shù)稱為遞歸函數(shù),遞歸函數(shù)直接或間接調(diào)用自身的過程叫作遞歸。[1]在實際教學(xué)中,遞歸程序雖然代碼簡潔,但函數(shù)逐層調(diào)用自己的過程過于復(fù)雜,有時還要逐層返回去執(zhí)行上一層后續(xù)的代碼,教師難講解清楚,學(xué)生易陷入思維混亂。因此,在進(jìn)行遞歸程序教學(xué)時,教師應(yīng)注意設(shè)置情境,引導(dǎo)學(xué)生從形象思維順利過渡到抽象思維,理解遞歸的本質(zhì)以及遞歸執(zhí)行的原理與過程。一、體會遞歸的原理體會遞歸的原理是深入學(xué)習(xí)遞歸的第一步。遞歸的基本思想就是把一個大的復(fù)雜問題逐層轉(zhuǎn)化為一個與原問題相似但規(guī)模較小的子問題來求解,即化繁為簡、以大化小。筆者認(rèn)為,教師在教學(xué)中可選取能體現(xiàn)遞歸的原理的案例,讓學(xué)生直觀感受的同時,激發(fā)其繼續(xù)探究遞歸的興趣。案例的選取可從生活中的遞歸入手。如分形圖,利用遞歸算法可以模擬出傳統(tǒng)的幾何方法所不能描述的自然景觀,將復(fù)雜的景物用簡單的規(guī)則來生成[2],從視覺上刺激學(xué)生。如何引導(dǎo)學(xué)生在直觀感受的同時領(lǐng)悟其中的遞歸思想,是教師教學(xué)的重點。筆者認(rèn)為,可以從引導(dǎo)學(xué)生利用計算思維分析案例入手。計算思維解決問題一般分為4個步驟,即分解問題、模式識別、抽象化、算法。以圖1中的遞歸二叉樹案例為例。第一步:分解問題,教師呈現(xiàn)遞歸二叉樹代碼運(yùn)行過程的動畫,讓學(xué)生觀察它是如何將遞歸二叉樹圖形逐步轉(zhuǎn)化為一個個規(guī)模較小的子圖形的,使學(xué)生意識到可將復(fù)雜的圖形分解為較小的簡單圖形來求解。第二步:模式識別,引導(dǎo)學(xué)生發(fā)現(xiàn)原圖形和子圖形的相似之處。學(xué)生從動畫演示中易發(fā)現(xiàn)二者不僅形狀相似,且畫法相同。第三步:抽象化,引導(dǎo)學(xué)生抽象出原圖形和子圖形本質(zhì)的畫法,即“繪制右子樹—回到樹枝節(jié)點—繪制左子樹—回到樹枝節(jié)點”。第四步:算法,不斷重復(fù)執(zhí)行第三步抽象得到的步驟,即可畫出遞歸二叉樹。此時學(xué)生已感知到了原問題與子問題的關(guān)系,也有了將復(fù)雜問題分解成小問題來解決的意識。據(jù)此,教師可以引出遞歸算法的基本思想。二、深層次理解遞歸經(jīng)過遞歸思想的滲透,學(xué)生即可編寫程序。但在編寫程序時,學(xué)生往往會無從下手,尤其是對函數(shù)自己調(diào)用自己的過程感到困惑。因此,本部分教學(xué)的難點在于使學(xué)生深層次理解遞歸,理解函數(shù)自己調(diào)用自己來解決問題的原理與過程。教學(xué)遞歸程序的前提是學(xué)生已經(jīng)掌握了自定義函數(shù)。首先,筆者讓學(xué)生用遞歸思想去分析問題,明確自定義函數(shù)。其次,用嵌套的形式輔助學(xué)生理解遞歸的執(zhí)行過程,即遞推然后回歸。具體以年齡問題為例闡述如下。問題情境:5個學(xué)生在一起,第5個學(xué)生說他比第4個學(xué)生大兩歲,第4個學(xué)生說他比第3個學(xué)生大兩歲,第3個學(xué)生說他比第2個學(xué)生大兩歲,第2個學(xué)生說他比第1個學(xué)生大兩歲,第1個學(xué)生說他今年10歲,請問第5個學(xué)生今年幾歲?第一步:按照遞歸思想分析該問題,以大化小,可知要求第5個人年齡,先求第4個人年齡再加2,求第4個人年齡要先求第3個人年齡再加2,以此類推。接下來逐步形成自定義函數(shù),可以發(fā)現(xiàn):計算某個人的年齡是重復(fù)的動作,即其等于計算前一個人的年齡加2,如果是第一個人年齡,答案就是10??勺远x一個函數(shù)為age(),功能為求某個人的年齡。設(shè)變量n代表“當(dāng)前同學(xué)”,則可得到代碼(見圖2)。第二步:用嵌套的形式輔助學(xué)生理解遞歸的執(zhí)行過程。遞歸的本質(zhì)是函數(shù)的重復(fù)執(zhí)行,只不過是通過函數(shù)自己嵌套自己的方式來實現(xiàn)的。筆者認(rèn)為,此處可以讓學(xué)生動手實踐,體會和感悟函數(shù)的重復(fù)執(zhí)行過程,如可設(shè)計如圖3所示的試一試活動。實踐過程中學(xué)生會發(fā)現(xiàn)這個程序會不斷輸出某個數(shù),直至報錯,教師可借此順利引出解答此題要給出重復(fù)執(zhí)行的終止條件,否則函數(shù)會無限地反復(fù)調(diào)用,從而陷入死循環(huán)。經(jīng)過以上學(xué)習(xí),教師引導(dǎo)學(xué)生再回過頭來分析計算年齡的遞歸程序,學(xué)生易體會到雖然age()函數(shù)僅有4行代碼,但實際上該age()函數(shù)在不斷地重復(fù)執(zhí)行。由于age()函數(shù)執(zhí)行過程中涉及回歸,筆者認(rèn)為此處可展開嵌套,用圖形的形式將抽象的東西具象化,輔助學(xué)生理解遞歸過程(見圖4)。根據(jù)嵌套的執(zhí)行原理,即先遞推到最內(nèi)層嵌套,只有當(dāng)最內(nèi)層嵌套解決了,才返回上一層嵌套去執(zhí)行后續(xù)的代碼,先是逐層遞推進(jìn)去,然后再逐層返回,且每一層嵌套都是age()函數(shù)本身,學(xué)生也就理解了遞歸“自己”逐層向內(nèi)嵌套“自己”的原理——先逐層嵌套進(jìn)行遞推,再逐層返回進(jìn)行回歸。經(jīng)過以上教學(xué),學(xué)生明確年齡問題的遞歸程序完整代碼如圖5所示,遞歸終止條件為n==1。遞歸編寫的代碼簡潔易懂。三、內(nèi)化遞歸思維圖5中的年齡問題較簡單,用普通的循環(huán)就可以解決,但是現(xiàn)實中學(xué)生往往會面臨復(fù)雜的問題,解決這類復(fù)雜問題時就需要用到遞歸思維。因此,在教學(xué)中,教師要引導(dǎo)學(xué)生通過遞歸的案例形成遞歸思維,解決復(fù)雜問題。教師可設(shè)計經(jīng)典的案例培養(yǎng)學(xué)生的遞歸思維,使其學(xué)會分解并抽象復(fù)雜問題。如走臺階問題:一個10級臺階的樓梯,如果每次只能走一個臺階或者兩個臺階,那么有多少種走法?第一步:以大化小,逐層分解問題。設(shè)問:逐步縮小問題規(guī)模,分解的若干子問題分別是什么?其中最小可直接解決的子問題是什么?第二步:尋找關(guān)聯(lián),抽象問題。設(shè)問:原問題與分解的若干子問題有何關(guān)聯(lián),能否建立計算模型?學(xué)生容易發(fā)現(xiàn)原問題和子問題解法相同,即n階臺階走法=(n-1階臺階走法)+(n-2階臺階走法),接著教師引導(dǎo)學(xué)生將解決問題的方法抽象成自定義函數(shù),即遞歸函數(shù)。第三步:整理算法,編寫程序。遞歸的優(yōu)勢在于編寫的代碼簡潔,解決問題的邏輯一目了然,尤其是用于

溫馨提示

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

最新文檔

評論

0/150

提交評論