《遞迴演算法的實現》教學設計
《遞迴演算法的實現》教學設計
一、教材分析
“演算法的程式實現”是高中資訊科技教育科學出版社《演算法與程式設計》選修模組第三單元 的內容,本節課是“遞迴演算法的程式實現”,前面學習了用解析法解決問題、窮舉法解決問題、在陣列中查詢資料、對數進行排序以及本節的前一小節知識點“什麼是自定義函式”的學習,在學習自定義函式的基礎上,學習遞迴演算法的程式實現是自定義函式的具體應用,培養學生“自頂向下”、“逐步求精”的意識起著重要的作用。
二、學情分析
教學物件是高中二年級學生,前面學習了程式設計的各種結構,在學習程式設計各種結構的應用過程中,培養了用計算機程式設計解決現實中的問題,特別的學習迴圈語句的過程中,應用了大量的迴圈結構進行“遞推”演算法。前一節課學習瞭如何自定義函式,在此基礎上學習深入學習和體會自定義函式的應用。以遞推演算法的逆向思維進行求解問題,在學習過程中體會遞迴演算法的思想過程。多維度的思考問題和解決問題是提高學生的學習興趣關鍵。
三、教學三維目標
知識與技能:
1、理解什麼是遞迴演算法,學生用遞迴演算法的思想分析問題
2、能夠應用自定義函式方法實現遞迴演算法的程式設計
過程與方法:
學生參與討論,透過思考、動手操作,體驗遞迴演算法的'方法
情感態度與價值:
結合數學中的例項,激發學生的數學建模的意識,培養學生多維度的思考問題和解決問題。
四、教學重點與難點
重點:
理解什麼是遞迴演算法,學生用遞迴演算法的思想分析問題
應用自定義函式方法實現遞迴演算法的程式設計
難點:
應用自定義函式方法實現遞迴演算法的程式設計
五、教學策略教
遞迴演算法的實現思想是比較抽象,比較理論化的教學內容。本著培養學生的發現問題、分析問題、解決問題的意識與能力入手。知識主要是靠學生學會的,學習就是發生在學生頭腦的建構。因此,教師必須明確學生是學習的主體,研究學生學習的真實心理活動,分析其認識過程、機制及心智變化。確定教學方法。
六、教學環境
網路教室,教學軟體VB,大螢幕投影,音響播放影片
七、教學資源準備
從本學科的特點(學生可能不會花太多的時間進行知識的記憶和拓展學習)、學生的認知水平及學習心理特徵(做自己可能做到的事,如果感覺到繁雜自己很難實現可能會放棄),為更好的激發學生的學習動機與信心,為保持學生的學習激情,不可能每位同學都喜歡程式設計,可能因素比較多,特此在教學過程中我設計了學生學習支援材料(智慧化半成品加工程式),目的是為了學生在有限的課堂中能清楚的瞭解演算法與程式設計思想和方法。
八、教學過程
(一)創設情境,提出課題
師:上課之前我問同學們一個問題,平時你們上體育課是怎麼報數的? 生:1、2、3、4、5、……
師:除了佇列中第一位同學報1以外,每一位同學報出的數字是怎麼得出來的?(推算!)(請看影片!問你們報數是不是這樣?)
師:黑板板書“推算———>(最後一位同學所報的數是前面同學一步步推出的結果)一步步的推出結果”這就是我們常用的遞推演算法。
師:今天我給同學們介紹一種你們沒見過的報數方式(請看影片)
師:引導學生觀察並討論影片(這個報數方式,被問的同學將問題推下去——>一步步的推——>底端——>答案一步步的返回一直到結束)這就是本節課我們學習的遞迴演算法思想。
設計意圖:激發學生學習求知慾,並初步奠定“遞迴演算法”思考分析問題的方法。
(二)啟發主體,匯出遞迴演算法程式設計思想
(1)展示題:
小猴吃桃:
有一天小猴子摘若干個桃子,當即吃了一半還覺得不過癮,又多吃了一個。第二天接著吃剩下桃子中的一個,仍覺得不過癮又多吃了一個,以後小猴子都是吃尚存桃子一半多一個。
問題一:到第3天早上小猴子再去吃桃子的時候,看到只剩下一個桃子。問小猴子第一天共摘下了多少個桃子?
設計意圖:鼓勵學生進行推算,這裡只設3天目的是簡化題的難度,讓學生有信心深入本思考,初步培養推算的思想。(根據學生思維特點,這一階段思維主要在於習慣性的數學推算環節)
問題二:到第10天早上小猴子再去吃桃子的時候,看到只剩下一個桃子。問小猴子第一天共摘下了多少個桃子? (學生思考,培養學生從數學思維走入程式設計推算的思維)。
(2)大螢幕展示遞推演算法的推算動畫演示過程
(3)根據推算10天吃桃動畫演示過程得出的資料和本題大意
(3)根據推算10天吃桃動畫演示過程得出的資料和本題大意引導學生討論並建立數學模型:
假設第days ,days<=10天的桃子數為tao(days)那麼
tao=10 days=1
tao(days)=(tao(days+1)+1)*2 n<10
(4)(提示學生回憶今天老師介紹的報數方式)透過數學模型來看這個問題?引導學生換個思路來思考這道題的問題求解,第10天的桃子數為1個,求第一天的桃子數?
設計意圖:培養學生分析問題、解決問題能力,煅練學生“數學建模”,讓學生透過實踐和思考找出本題的關鍵。並引出遞迴演算法的解題思想。
(三)深入學習遞迴演算法的實現
(1)展示遞迴演算法的動畫演算過程,分析演算過程。透過演算過程,引導學生總結出,遞迴演算法的兩個必備條件:
1、遞迴分為遞推與迴歸兩個過程
2、遞迴必需要有結束條件
3、遞迴演算法的實現方式:遞迴演算法是數值層層呼叫實現的,函式先由上向下呼叫,當達到最底層後,再將數值層層向上返回。(在函式層層呼叫的過程中,引數的改變)
(2)透過上面的分析,大至的遞迴演算法實現思想我們瞭解了,那麼要思考在程式設計過程中如何解決兩個問題?
1、怎麼將問題推下去?
2、怎麼將結果迴歸?
設計意圖:在學生初步認識遞迴演算法的演算過程及特點以後,提出遞迴演算法程式設計實現的關鍵問題,層層深入的循導學生思考問題,培養學生分析和發現問題的能力。
(3)展示遞迴演算法自定義函式框架,並分析。
設計意圖:為下面進行操作練習奠定思維框架。
(四)學生操作
學生基本瞭解遞迴思路和遞迴實現的程式設計框架後開展操作練習,教師巡迴指導!
(五)總結提高
總結操學生操作,介紹遞迴演算法自定義函式的常用框架!
設計意圖:為下面學生自主練習奠定思維框架。
(六)回顧影片1和影片2比較提高,
引導學生能過影片分析,討論出“兩個影片報數同學的動作的不同”1、影片1的同學在沒有得到答案的時候就頭部轉向所問的同學等待,2、影片1和影片2的共同點是“完成報任務”的時候頭部都向前看!)
總結出:遞迴演算法使得計算機資源耗費大,所以效率比較底(常駐記憶體的資料比較多)。
設計意圖:透過影片模擬演算法的操作過程,讓學生能夠會意遞迴演算法在計算機內部操作的內含。培養學生髮散思維,理論也是來源於生活,在學習理論中學會生活,在生活中學會思考。
(七)教材使用
1、分析這個數例:1、1、2、3、5、8、13、……求數例中第十二個數的值是?
2、引導學生分析並建立數學模型:
3、此題是我們教材P68的例題“免子繁殖問題”,由於教材分析很詳細所以我想本題留給同學們課後思考,並研究遞迴演算法實現程式與非遞迴演算法實現程式。下節課上機除錯!
設計意圖:分析問題並建立數學模型,衝破學生學習的心理障礙,提高學生使用教材信心,並給學生提供可參考的學習資源和個性發展的空間。
(八)課堂練習
設計意圖:鞏固課堂學習內容
(九)課堂小結
設計意圖:引導學生回顧並明確本節課的學習目標
(十)下課前提出問題
遞迴演算法使得計算機資源耗費比較大,所以效率比較低(常駐記憶體的資料比較多)遞推演算法也能實現,為什麼還要使用遞迴演算法呢?下節課探討(漢諾塔問題求解)
設計意圖:讓學生帶著問題回家,下節課又帶著問題回到課堂,激發學生可持續學習的興趣。
獲獎情況:2007年全國高中資訊科技課展評一等獎作品。