• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      體會—理解—內(nèi)化:高中遞歸程序教學(xué)三步*

      2024-06-13 22:17:06張宏亮
      關(guān)鍵詞:高中信息技術(shù)

      【摘 要】高中信息技術(shù)教學(xué)中,遞歸可將復(fù)雜問題簡單化,且遞歸程序代碼較為簡潔,是程序設(shè)計必備的算法。遞歸同時也是高中信息技術(shù)課標要求學(xué)生所掌握的算法。在教學(xué)中,教師可從體會遞歸的原理、深層次理解遞歸、內(nèi)化遞歸思維三個方面展開,促進學(xué)生理解遞歸,進而形成遞歸思維。

      【關(guān)鍵詞】高中信息技術(shù);遞歸算法;遞歸程序

      【中圖分類號】G633.67? 【文獻標志碼】A? 【文章編號】1005-6009(2024)19-0071-03

      【作者簡介】張宏亮,南京市第二十九中學(xué)(南京,210036)教師,一級教師。

      遞歸在程序設(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é)生易陷入思維混亂。因此,在進行遞歸程序教學(xué)時,教師應(yīng)注意設(shè)置情境,引導(dǎo)學(xué)生從形象思維順利過渡到抽象思維,理解遞歸的本質(zhì)以及遞歸執(zhí)行的原理與過程。

      一、體會遞歸的原理

      體會遞歸的原理是深入學(xué)習(xí)遞歸的第一步。遞歸的基本思想就是把一個大的復(fù)雜問題逐層轉(zhuǎn)化為一個與原問題相似但規(guī)模較小的子問題來求解,即化繁為簡、以大化小。

      筆者認為,教師在教學(xué)中可選取能體現(xiàn)遞歸的原理的案例,讓學(xué)生直觀感受的同時,激發(fā)其繼續(xù)探究遞歸的興趣。案例的選取可從生活中的遞歸入手。如分形圖,利用遞歸算法可以模擬出傳統(tǒng)的幾何方法所不能描述的自然景觀,將復(fù)雜的景物用簡單的規(guī)則來生成[2],從視覺上刺激學(xué)生。如何引導(dǎo)學(xué)生在直觀感受的同時領(lǐng)悟其中的遞歸思想,是教師教學(xué)的重點。筆者認為,可以從引導(dǎo)學(xué)生利用計算思維分析案例入手。計算思維解決問題一般分為4個步驟,即分解問題、模式識別、抽象化、算法。以圖1中的遞歸二叉樹案例為例。

      第一步:分解問題,教師呈現(xià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。可自定義一個函數(shù)為age(),功能為求某個人的年齡。設(shè)變量n代表“當前同學(xué)”,則可得到代碼(見圖2)。

      第二步:用嵌套的形式輔助學(xué)生理解遞歸的執(zhí)行過程。遞歸的本質(zhì)是函數(shù)的重復(fù)執(zhí)行,只不過是通過函數(shù)自己嵌套自己的方式來實現(xià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í)行過程中涉及回歸,筆者認為此處可展開嵌套,用圖形的形式將抽象的東西具象化,輔助學(xué)生理解遞歸過程(見圖4)。根據(jù)嵌套的執(zhí)行原理,即先遞推到最內(nèi)層嵌套,只有當最內(nèi)層嵌套解決了,才返回上一層嵌套去執(zhí)行后續(xù)的代碼,先是逐層遞推進去,然后再逐層返回,且每一層嵌套都是age()函數(shù)本身,學(xué)生也就理解了遞歸“自己”逐層向內(nèi)嵌套“自己”的原理——先逐層嵌套進行遞推,再逐層返回進行回歸。

      經(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)勢在于編寫的代碼簡潔,解決問題的邏輯一目了然,尤其是用于解決復(fù)雜問題。但遞歸需要較多的時間和空間,若遞歸的深度過大還會導(dǎo)致系統(tǒng)崩潰。因此,在面對問題時,應(yīng)根據(jù)實際情況選擇是否用遞歸。教師在教學(xué)遞歸程序時,若可以引導(dǎo)學(xué)生快速找到循環(huán)解決的方法,則優(yōu)先用循環(huán)解決,反之嘗試用遞歸思維去解決,也可將遞歸轉(zhuǎn)為非遞歸程序。

      【參考文獻】

      [1]譚浩強.C程序設(shè)計教程[M].北京:清華大學(xué)出版社,2007:153.

      [2]張學(xué)軍, 張萍.遞歸程序探討[J].蘭州文理學(xué)院學(xué)報:自然科學(xué)版,2002,16(1):65-69.

      猜你喜歡
      高中信息技術(shù)
      試分析高中信息技術(shù)教學(xué)現(xiàn)狀和改進對策
      亞太教育(2016年34期)2016-12-26 16:42:01
      高中信息技術(shù)教學(xué)中接觸式教學(xué)手段的探究
      考試周刊(2016年96期)2016-12-22 23:26:55
      高效利用微課實施高中信息技術(shù)“動學(xué)融合”教學(xué)
      考試周刊(2016年95期)2016-12-21 01:12:16
      淺談提高高中信息技術(shù)課堂教學(xué)效率的策略
      巧用現(xiàn)代教學(xué)評價技術(shù) 助力高中信息技術(shù)教學(xué)
      高中信息技術(shù)“微課”設(shè)計的“三性”
      高中信息技術(shù)教學(xué)改革研究
      考試周刊(2016年94期)2016-12-12 12:01:36
      高中信息技術(shù)教學(xué)中的問題與對策
      微課在高中信息技術(shù)課程分層教學(xué)中的應(yīng)用效果研究
      高中信息技術(shù)探究式教學(xué)的實踐與思考
      伊川县| 山西省| 个旧市| 嘉定区| 新竹县| 肃北| 静乐县| 偏关县| 和静县| 澄城县| 垣曲县| 大化| 山东| 拉萨市| 永吉县| 汝南县| 琼海市| 邢台县| 古交市| 山东省| 枝江市| 当涂县| 永康市| 浙江省| 西乌珠穆沁旗| 溆浦县| 孝感市| 昆明市| 南溪县| 小金县| 错那县| 万载县| 北宁市| 兴业县| 邹城市| 酒泉市| 西峡县| 藁城市| 衡南县| 洱源县| 弥渡县|