資源描述:
《淺談遞歸算法的任務(wù)驅(qū)動式教學(xué)策略》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、淺談遞歸算法的任務(wù)驅(qū)動式教學(xué)策暁【摘要】本文旨在研究運用任務(wù)驅(qū)動式教學(xué)方法實施普通高屮信息技術(shù)《算法與程序設(shè)計》中遞歸算法知識點教學(xué)的策略和思路,并在實踐中進(jìn)行了教學(xué)嘗試,取得較好效果。【關(guān)鍵詞】遞歸算法;任務(wù);驅(qū)動;教學(xué)策略;研究遞歸算法是普通高屮信息技術(shù)課程《算法與程序設(shè)計》教學(xué)內(nèi)容中的難點,學(xué)生在學(xué)習(xí)實踐過程中,対于遞歸算法的思想、編程方法、運行過程的掌握較吃力,甚至無法理解,遇到實際問題時不知該如何運用此算法。筆者在多年的教學(xué)實踐中,針對該知識點嘗試運用任務(wù)驅(qū)動式教學(xué)策略,讓學(xué)生在一個個學(xué)習(xí)任務(wù)完成的過程中,慢慢理解和學(xué)握遞歸算法的精髓,最終完全吃透該知識點。任務(wù)驅(qū)動式教學(xué)
2、策略是一種建立在建構(gòu)主義學(xué)習(xí)理論基礎(chǔ)上的教學(xué)法,它將以往以傳授知識為主的傳統(tǒng)教學(xué)理念,轉(zhuǎn)變?yōu)橐越鉀Q問題、完成任務(wù)為主的多維互動式的教學(xué)理念;將再現(xiàn)式教學(xué)轉(zhuǎn)變?yōu)樘骄渴綄W(xué)習(xí),使學(xué)生處于積極的學(xué)習(xí)狀態(tài),每一位學(xué)生都能根據(jù)自己対當(dāng)前問題的理解,運用共冇的知識和自己特有的經(jīng)驗提出方案、解決問題。筆者在教學(xué)實踐中嘗試運用該方法開展遞歸算法的教學(xué),讓學(xué)生在解決實際問題的過程中完全掌握和理解遞歸算法的奧妙z處,達(dá)到了預(yù)期的教學(xué)效果。一、遞歸法概念通過閱讀教材中的:從前有座山……”的故事和對“兩個鏡子相互映射”現(xiàn)象的講解,學(xué)生能基木理解遞歸思想,從而歸納遞歸法的概念,即:在程序設(shè)計中,函數(shù)A自己調(diào)用
3、自己,或者函數(shù)A調(diào)用函數(shù)B,函數(shù)B反過來調(diào)用函數(shù)A,都是遞歸算法。二、自定義函數(shù)的運用在程序設(shè)計過程中,自定義函數(shù)和子過程在編程中的重要性不言而喻,對于自定義函數(shù)的講解和學(xué)習(xí)是進(jìn)行遞歸算法教授和學(xué)習(xí)的重要基石。因此,在教學(xué)過程中,要讓學(xué)生徹底理解什么是自定義函數(shù),為什么定義和如何定義使用函數(shù)。筆者在教學(xué)實踐屮,首先通過實例列出VB屮標(biāo)準(zhǔn)函數(shù)的不足,同時展現(xiàn)自定義函數(shù)的作用;然后演示如何定義、使用函數(shù)。學(xué)生按部就班,參照實例、自主探究、嘗試編寫自定義函數(shù),并完成自定義函數(shù)的調(diào)用,調(diào)試運行程序,得到問題的最終答案。三、遞歸法的實現(xiàn)在掌握上述兩點內(nèi)容的前提下,向?qū)W生拋出遞歸類的問題,要求
4、用遞歸算法找到問題的解決方法。故在教學(xué)過程中,首先分析遞歸問題的規(guī)律,演示遞歸問題中的遞推與回歸兩個過程,并找出遞歸結(jié)朿的必需條件。然后編制自定義函數(shù)完成遞歸算法的實現(xiàn),在主程序中調(diào)用函數(shù),最終實現(xiàn)遞歸法的運用。四、教學(xué)案例提出解決任務(wù):用遞歸法求“斐波那契數(shù)列”問題。首先向?qū)W生展示“斐波那契數(shù)列”:1、1、2、3、5、8……,然后要求學(xué)生利用解析法找出“斐波那契數(shù)列”問題的規(guī)律,絕大部分學(xué)生都能歸納出相應(yīng)的解析表達(dá)式。如下所示。Fib(n)=1,n+2或2Fib(n-2)+Fib(n-1),n>=3根據(jù)上述表達(dá)式,引導(dǎo)學(xué)生找出遞歸結(jié)束的必需條件:n=l或2,同時演示遞推和回歸兩個
5、過程,以求fib(5)為例:(1)n二1或2,fib(n)=1;(2)n>二3,fib(n)二fib(n-2)+fib(n-1);(3)遞推過程:n二5時,fib(5)二fib(3)+fib(4);n二3時,fib(3)二fib(1)+fib(2);n二4時,fib(4)=fib(2)+fib(3)0(4)回歸過程:將fib(1)二1、fib(2)二1、fib(3)二2代入上述三個表達(dá)式,即可求出fib(5)=fib(3)+fib(4)=fib(1)+fib(2)+fib(2)+fib(3),求出“斐波那契數(shù)列”第5項值為8。在學(xué)生理解了上述問題的編程思路后,拋出第二個問題:用哪種
6、基本結(jié)構(gòu)實現(xiàn)上述分段式函數(shù)。學(xué)生會異口同聲回答:“選擇結(jié)構(gòu)”。簡單回顧TF-Else語句的格式后,要求學(xué)生動手設(shè)計程序界面,編寫自定義函數(shù),在按鈕的單擊事件中調(diào)用自定義函數(shù),調(diào)試運行,輸岀答案。程序代碼如下:Functionfib(ByVainAsInteger)AsInteger'自定義函數(shù)Ifn=lorn=2Thenfib二1Elsefib二fib(n-2)+fib(n-1)EndIfEndFunctionPrivateSubCommand1_Click()'主程序Dimnasintegern二val(text1.text)Print“斐波那契數(shù)列笫”&n&“項值為”&fib(
7、n);EndSub在教學(xué)實踐中發(fā)現(xiàn),部分學(xué)生在對遞歸程序的理解上依然存在一定的困難,教師可從繪制流程圖或編寫偽代碼入手,引導(dǎo)學(xué)牛分析編程思路。對于遞歸法的特點,也可將遞歸法和解析法的編程思路進(jìn)行比較,和學(xué)生一起討論。還可以要求學(xué)生設(shè)計界面和主程序,也可以將界面和主程序都設(shè)計好,只要求學(xué)生填寫自定義函數(shù)。實踐證明,通過任務(wù)驅(qū)動式的教學(xué)策略,學(xué)生在學(xué)習(xí)過程中,能自發(fā)的去探索,去思考,既激發(fā)了學(xué)生學(xué)習(xí)程序設(shè)計的興趣,又樹立了用程序設(shè)計解決實際問題的信心,極大地調(diào)動了學(xué)生的主