資源簡(jiǎn)介 《算法的驗(yàn)證》教學(xué)設(shè)計(jì)一、教學(xué)內(nèi)容分析《算法驗(yàn)證》是浙教版五年級(jí)上冊(cè)第三單元“用算法解決問(wèn)題”第五模塊內(nèi)容,在前四課已經(jīng)介紹了設(shè)計(jì)算法的一般過(guò)程,學(xué)生能夠?qū)?wèn)題分解、抽象、建模并設(shè)計(jì)算法。本課主要講解算法驗(yàn)證的三種方式,第一部分安排“根據(jù)算法特征驗(yàn)證”,旨在讓學(xué)生通過(guò)對(duì)流程圖的觀察,回憶算法特征、變量值的變化過(guò)程,熟練運(yùn)用流程圖描述算法,確保算法的描述是有效的。第二部分“用數(shù)據(jù)驗(yàn)證算法”,根據(jù)算法能夠通過(guò)部分測(cè)試數(shù)據(jù),讓學(xué)生感受算法驗(yàn)證的作用和重要性,能將具體數(shù)據(jù)代入流程圖并逐步計(jì)算得到結(jié)果。第三部分“用計(jì)算機(jī)程序驗(yàn)證算法”,讓學(xué)生通過(guò)修改、編寫(xiě)程序等方式體驗(yàn)程序驗(yàn)證算法的優(yōu)勢(shì)。二、學(xué)習(xí)對(duì)象分析從問(wèn)題的分解、抽象、算法的設(shè)計(jì)到驗(yàn)證,是一個(gè)將形式化的描述方式轉(zhuǎn)變?yōu)榭梢詫?shí)現(xiàn)的結(jié)果。從學(xué)生的認(rèn)知發(fā)展角度來(lái)看,需要將推演結(jié)果轉(zhuǎn)變?yōu)榫幊痰念A(yù)測(cè)結(jié)果,然后執(zhí)行程序驗(yàn)證結(jié)果。雖然五年級(jí)學(xué)生已經(jīng)有圖形化編程基礎(chǔ),了解了變量、三種程序結(jié)構(gòu)等,但是在掌握python程序語(yǔ)言上還是存在一定困難,因此本節(jié)課嘗試搭建支架,為學(xué)生提供半成品程序,引導(dǎo)學(xué)生修改參數(shù)、記錄結(jié)果、觀察數(shù)據(jù)、發(fā)現(xiàn)規(guī)律。三、教學(xué)目標(biāo)1.具有主動(dòng)跟蹤和分析量值變化的意識(shí)。2.掌握用算法特征、數(shù)據(jù)驗(yàn)證及程序驗(yàn)證算法的方法;通過(guò)算法驗(yàn)證,初步形成模擬、驗(yàn)證解決問(wèn)題的思維;認(rèn)識(shí)到解決同一問(wèn)題有不同算法,算法效率和算法本身、問(wèn)題規(guī)模都有關(guān)系。3.能用數(shù)字化流程圖描述累加求和的算法。4.認(rèn)識(shí)到不同算法驗(yàn)證方式的價(jià)值和局限性,將其靈活遷移運(yùn)用到學(xué)習(xí)和生活中。。教學(xué)重點(diǎn):掌握用算法特征、數(shù)據(jù)驗(yàn)證及程序驗(yàn)證算法的方法。教學(xué)難點(diǎn):掌握用數(shù)據(jù)驗(yàn)證算法的方法。四、方法策略本課以“數(shù)學(xué)王子解題”為教學(xué)情境,主要采用任務(wù)驅(qū)動(dòng)教學(xué)法,輔以小組合作探究,以及學(xué)生的自主學(xué)習(xí)逐步展開(kāi)。以“用計(jì)算機(jī)解決問(wèn)題的一般過(guò)程”為線索,引導(dǎo)學(xué)生分析問(wèn)題、設(shè)計(jì)算法、驗(yàn)證算法。通過(guò)確定“求和式子規(guī)律”為關(guān)鍵問(wèn)題,切割、分解、細(xì)化、完善整個(gè)流程圖,抽象出順序、分支結(jié)構(gòu),并蘊(yùn)含分支嵌套概念,從而形成問(wèn)題分解的思維,滲透“分而治之”的思想。五、教學(xué)流程(一)情景導(dǎo)入教學(xué)內(nèi)容與活動(dòng) 設(shè)計(jì)意圖1.設(shè)疑提問(wèn) 德國(guó)“數(shù)學(xué)王子”高斯三歲時(shí)便能糾正父親的借債賬目。十歲時(shí),他的老師布納特出了一道算數(shù)題:求1到100所有整數(shù)的和,老師剛敘述完,高斯就算出了正確答案。同學(xué)們知道高斯是怎么算的嗎?你們會(huì)怎么計(jì)算?能設(shè)計(jì)算法并驗(yàn)證嗎? 回答:5050,首尾配對(duì)…… 2.板書(shū)標(biāo)題:算法驗(yàn)證 數(shù)學(xué)中的求和運(yùn)算是學(xué)生熟悉的問(wèn)題,不會(huì)給學(xué)生造成太大認(rèn)知障礙。另一方面,布納特老師的數(shù)學(xué)難題也能激發(fā)學(xué)生的興趣(二)任務(wù)驅(qū)動(dòng),分析問(wèn)題教學(xué)內(nèi)容與活動(dòng) 設(shè)計(jì)意圖1.感知算法 探究:嘗試先設(shè)計(jì)“求1+2+3+4+5和”的算法。在用i表示某個(gè)數(shù),sum表示和的情況下,觀察相鄰累加求和的過(guò)程,你有什么發(fā)現(xiàn)? 總結(jié):數(shù)每次增加1,和是在上一步的基礎(chǔ)上增加新的數(shù),可以表示為sum=sum+i,i=i+1 2.用算法特征驗(yàn)證算法 完型:在希沃課件中補(bǔ)全“求1+2+3+4+5和”算法流程圖 提問(wèn):觀察流程圖,一共有幾步?步驟有限嗎?每一步可以確定執(zhí)行嗎?有輸出嗎?輸出符合規(guī)定嗎? 總結(jié):用算法特征驗(yàn)證算法可以從算法有限性、確定性和有輸出三個(gè)角度實(shí)施。 拓展:算一算高斯的方法和累加求和兩種算法的步驟。 3.用數(shù)據(jù)驗(yàn)證算法 代數(shù):修改流程圖中條件為“i<=6”,逐步寫(xiě)出每一步結(jié)果。 進(jìn)入時(shí)i的值 每一步結(jié)果i=1sum=0+1=1i=i+1=2i=2總結(jié):用數(shù)據(jù)驗(yàn)證算法需要代入具體數(shù)據(jù),逐步分析計(jì)算結(jié)果,從而驗(yàn)證算法是否存在問(wèn)題。 提問(wèn):如果驗(yàn)證的數(shù)據(jù)很大(比如要求1+2+……+1000)怎么辦? 4.程序驗(yàn)證 人工測(cè)試便捷且不要求掌握程序設(shè)計(jì)語(yǔ)言,但是當(dāng)數(shù)據(jù)規(guī)模變大時(shí)就顯得比較麻煩,這時(shí)可以采用機(jī)器測(cè)試。 調(diào)參:調(diào)整桌面上“求和.py”程序中的條件終值為8、100、1000,記錄程序結(jié)果。 sum=0 i=1 #修改下面i的停止條件為i<=8 i<=100 i<=1000 記錄sum的值 while i<=5: sum=sum+i i=i+1 print("和:",sum)算式1+2+……+81+2+……+1001+2+……+1000條件i<=8i<=100i<=1000結(jié)果總結(jié):程序驗(yàn)證比前兩種驗(yàn)證更適合大規(guī)模數(shù)據(jù),但如果跳過(guò)前兩步驗(yàn)證,可能需要多次修改算法和程序,甚至在編寫(xiě)程序過(guò)程中就會(huì)遇到問(wèn)題。 拓展:用程序驗(yàn)證高斯的方法 通過(guò)圖解1+2+3+4+5的累加過(guò)程,幫助學(xué)生建立累加模型,初步感知累加算法。 補(bǔ)全算法流程圖能讓學(xué)生進(jìn)一步理解累加算法。學(xué)生在回答算法特征相關(guān)問(wèn)題時(shí)進(jìn)一步修改算法中的錯(cuò)誤,確保算法的描述是有效的。 通過(guò)代入測(cè)試數(shù)據(jù),并逐步計(jì)算得到結(jié)果,讓學(xué)生感受算法驗(yàn)證的作用和重要性。 讓學(xué)生調(diào)整具體參數(shù),體驗(yàn)感受程序驗(yàn)證,與前兩個(gè)驗(yàn)證對(duì)比,感悟程序驗(yàn)證的優(yōu)勢(shì)。(三)總結(jié)提升教學(xué)內(nèi)容與活動(dòng) 設(shè)計(jì)意圖1.總結(jié)測(cè)評(píng) 總結(jié):算法驗(yàn)證的方法不一,包括用算法特征驗(yàn)證、數(shù)據(jù)驗(yàn)證和程序驗(yàn)證等,程序驗(yàn)證速度更快,但前兩者是程序驗(yàn)證的基礎(chǔ),它們之間相輔相成,只有通過(guò)驗(yàn)證的算法,才能夠有效地被運(yùn)行并解決問(wèn)題。 測(cè)評(píng):測(cè)一測(cè)你今天的學(xué)習(xí)情況 我會(huì)了嗎我還存在的疑問(wèn)我會(huì)根據(jù)算法的特征找到問(wèn)題,正確描述算法 會(huì) 會(huì)一點(diǎn) 不會(huì)我能讀懂算法,代入數(shù)據(jù)寫(xiě)出每一步結(jié)果 會(huì) 會(huì)一點(diǎn) 不會(huì)我會(huì)修改編寫(xiě)程序驗(yàn)證算法 會(huì) 會(huì)一點(diǎn) 不會(huì)總結(jié)回顧本節(jié)課的內(nèi)容,反思收獲和仍然存在的疑問(wèn)。板書(shū)設(shè)計(jì):(共7張PPT)/第9課 《算法的驗(yàn)證》五上信息技術(shù)德國(guó)“數(shù)學(xué)王子”高斯三歲時(shí)便能糾正父親的借債賬目。十歲時(shí),他的老師布納特出了一道算數(shù)題:求1到100所有整數(shù)的和,老師剛敘述完,高斯就算出了正確答案。同學(xué)們知道高斯是怎么算的嗎?你們又會(huì)怎么計(jì)算?能設(shè)計(jì)算法驗(yàn)證嗎?1+2+3+……+99+100=?問(wèn)題抽象嘗試先設(shè)計(jì)一個(gè)“求1+2+3+4+5和”的算法1+2+3+4+5數(shù)(i=1)觀察相鄰sum求和式子,你發(fā)現(xiàn)了什么規(guī)律?和(sum=0)sum=0+1=1sum=1+2=3sum=3+3=6sum=6+4=10sum=10+5=15i=i+1sum=sum+i問(wèn)題分解在課件中補(bǔ)全“求1+2+3+4+5和”的算法流程圖開(kāi)始結(jié)束sum=0i=i+1sum=sum+ii=1輸出sum的值i<=5 否是算法特征驗(yàn)證步驟有限?可確定執(zhí)行?輸出?數(shù)一數(shù)高斯的方法和累加求和兩種算法的步驟,哪個(gè)少?高斯方法和=(1+尾數(shù))*尾數(shù)/25√√算法設(shè)計(jì)進(jìn)入時(shí)i的值 每一步結(jié)果i=1 sum=0+1=1i=i+1=2i=2 sum=1+2=3i=i+1=3…… …………修改流程圖中條件為“i<=6”,逐步寫(xiě)出計(jì)算結(jié)果開(kāi)始結(jié)束sum=0i=i+1sum=sum+ii=1輸出sum的值i<=6 否是數(shù)據(jù)驗(yàn)證如果驗(yàn)證的數(shù)據(jù)很大(如i<=1000)怎么辦?sum=3+3=6i=i+1=4sum=15+6=21i=i+1=7i=6i=3算法設(shè)計(jì)調(diào)整桌面上“求和”程序中i<= 的值為8、100、1000,記錄程序輸出結(jié)果算式 1+2+……+8 1+2+……+100 1+2+……+1000條件 i<=8 i<=100 i<=1000結(jié)果程序驗(yàn)證執(zhí)行速度如何?和:36和:5050和:500500我們可以發(fā)現(xiàn),用程序驗(yàn)證比數(shù)據(jù)驗(yàn)證速度要________(快/慢)。當(dāng)數(shù)據(jù)規(guī)模變得越來(lái)越大,程序運(yùn)行時(shí)間越________(長(zhǎng)/短)。用程序驗(yàn)證高斯的方法sum=(1+i)*i/2算法設(shè)計(jì)我會(huì)了嗎 我還存在的疑問(wèn)我會(huì)根據(jù)算法的特征找到問(wèn)題,正確描述算法 會(huì) 會(huì)一點(diǎn) 不會(huì)我能讀懂算法,代入數(shù)據(jù)寫(xiě)出每一步結(jié)果 會(huì) 會(huì)一點(diǎn) 不會(huì)我會(huì)修改編寫(xiě)程序驗(yàn)證算法 會(huì) 會(huì)一點(diǎn) 不會(huì)測(cè)一測(cè)你今天的學(xué)習(xí)情況算法的驗(yàn)證請(qǐng)根據(jù)左邊的流程圖,分析i和sum的變化過(guò)程,寫(xiě)出每一步的結(jié)果。進(jìn)入時(shí)i的值 每一步結(jié)果i=1 sum=0+1=1i=i+1=2i=2 sum=1+2=3i=i+1=3i=3i=4i=5i=6調(diào)整程序中的條件參數(shù),記錄結(jié)果。算式 1+2+……+8 1+2+……+100 1+2+……+1000條件 i<=8 i<=100 i<=1000結(jié)果我們可以發(fā)現(xiàn),用程序驗(yàn)證比數(shù)據(jù)驗(yàn)證速度要________(快/慢)。當(dāng)數(shù)據(jù)規(guī)模變得越來(lái)越大,程序運(yùn)行時(shí)間越________(長(zhǎng)/短)。測(cè)一測(cè)你今天的掌握情況。我會(huì)了嗎 我還存在的疑問(wèn)我會(huì)根據(jù)算法的特征找到問(wèn)題,正確描述算法 會(huì) 會(huì)一點(diǎn) 不會(huì)我能讀懂算法,代入數(shù)據(jù)寫(xiě)出每一步結(jié)果 會(huì) 會(huì)一點(diǎn) 不會(huì)我會(huì)修改編寫(xiě)程序驗(yàn)證算法 會(huì) 會(huì)一點(diǎn) 不會(huì)附:求和程序sum=0i=1#修改下面i的停止條件為i<=8 i<=100 i<=1000 記錄sum的值while i<=5:sum=sum+ii=i+1print("和:",sum) 展開(kāi)更多...... 收起↑ 資源列表 《算法的驗(yàn)證》學(xué)習(xí)單.docx 《算法的驗(yàn)證》教學(xué)設(shè)計(jì).docx 《算法的驗(yàn)證》課件.pptx 縮略圖、資源來(lái)源于二一教育資源庫(kù)