• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    面向高中生計(jì)算思維培養(yǎng)的迭代算法教學(xué)策略

    2023-07-25 13:58:30曹香
    中國信息技術(shù)教育 2023年14期
    關(guān)鍵詞:計(jì)算思維高中信息技術(shù)

    曹香

    摘要:本文主要針對當(dāng)前高中信息技術(shù)課程中關(guān)于迭代算法教學(xué)中存在的諸多問題,結(jié)合高中生的認(rèn)知特點(diǎn),在迭代算法教學(xué)過程中聚焦教學(xué)策略進(jìn)行實(shí)踐研究,從而提出可視化抽象概念、分析結(jié)構(gòu)提煉模型、循序漸進(jìn)、錯(cuò)誤中提升等教學(xué)策略。這些策略有助于教師提高課堂教學(xué)效率,有益于激發(fā)學(xué)生的學(xué)習(xí)興趣,有利于提升學(xué)生的計(jì)算思維。

    關(guān)鍵詞:高中信息技術(shù);迭代算法教學(xué);計(jì)算思維

    中圖分類號:G434? 文獻(xiàn)標(biāo)識碼:A? 論文編號:1674-2117(2023)14-0049-04

    迭代算法是程序設(shè)計(jì)中的核心算法之一,它是利用計(jì)算機(jī)運(yùn)算速度快、適合做重復(fù)性操作的特點(diǎn),進(jìn)行問題解決的一種方法,其在數(shù)值計(jì)算、圖像處理、機(jī)器學(xué)習(xí)等方面有著廣泛的應(yīng)用。雖然學(xué)生在初中階段也接觸了一些算法,但對迭代涉及很少,而迭代在高中數(shù)學(xué)學(xué)科中也有許多應(yīng)用,如等差數(shù)列、等比數(shù)列等數(shù)學(xué)概念,根據(jù)遞推式求通項(xiàng)公式,牛頓二分法求方程的解等都是迭代思想的體現(xiàn)。因此,對于高中生來說,學(xué)習(xí)并掌握迭代算法有著重要意義。Python是一種簡單易學(xué)的編程語言,下面,筆者以Python語言為例,探討迭代算法的教學(xué)策略。

    在過去的程序設(shè)計(jì)教學(xué)中,學(xué)生對迭代算法的理解存在許多困難,原因是多方面的:其一,迭代算法涉及一些數(shù)學(xué)和計(jì)算機(jī)科學(xué)的抽象概念,如迭代變量、累加、循環(huán)等,這些概念對于初學(xué)者來說不夠直觀,需要時(shí)間去理解。其二,雖然迭代算法可以用編程語言來實(shí)現(xiàn),但其中涉及的數(shù)學(xué)知識需要一定的數(shù)學(xué)基礎(chǔ),如果學(xué)生數(shù)學(xué)水平較低,理解起來也會比較困難。其三,理解迭代算法還需要反復(fù)練習(xí)和實(shí)踐,然而,高中信息技術(shù)課時(shí)有限,學(xué)生多半缺乏相關(guān)編程實(shí)踐經(jīng)驗(yàn)。上述種種因素的存在,使得高中生覺得迭代算法難學(xué)難懂。為了促進(jìn)學(xué)生的學(xué)習(xí),筆者搜集了許多關(guān)于迭代算法的資料,總結(jié)了一些教學(xué)策略,設(shè)計(jì)了一套針對高中生特點(diǎn)的教學(xué)策略,幫助他們更好地理解和掌握迭代算法。

    可視化抽象概念的教學(xué)策略

    迭代的概念和原理比較抽象,學(xué)生理解起來有難度,此時(shí)教師可以借助數(shù)字化工具,將概念和原理進(jìn)行可視化,引導(dǎo)學(xué)生從感性上理解迭代原理。牛頓迭代法求平方根,是非常經(jīng)典的迭代實(shí)例,高中數(shù)學(xué)教材中也很詳細(xì)地介紹了牛頓迭代法求方程解的知識,教師可以直接引用此實(shí)例給學(xué)生講解迭代的概念。為了讓學(xué)生直觀地看到迭代過程,可借助網(wǎng)絡(luò)畫板,將其求解過程制作成一個(gè)動(dòng)畫進(jìn)行演示,內(nèi)容如下:

    利用牛頓迭代法求a的平方根,就是利用函數(shù)f(x)=x^2-a,求當(dāng)f(x)=0時(shí)x的正數(shù)解。下頁圖1是網(wǎng)絡(luò)畫板求解過程中的演示截圖。

    首先,任意確定初始值x1(>0),然后將其代入函數(shù)f(x)=x^2-a中計(jì)算出函數(shù)值f(x1)。接下來,在點(diǎn)(x1,f(x1))處求出切線,并將切線與x軸相交得到新的迭代點(diǎn)x2。重復(fù)以上步驟,即可逐步逼近得到a的平方根。

    通過上述演示分析,學(xué)生直觀地學(xué)習(xí)了迭代原理和過程。同時(shí),引導(dǎo)學(xué)生總結(jié)迭代算法的特點(diǎn):①需要重復(fù)執(zhí)行一定的步驟,以逐漸逼近所求結(jié)果。②迭代過程中后續(xù)計(jì)算結(jié)果會依賴于之前的值。

    合理地使用數(shù)字化工具,將迭代過程可視化,可以幫助學(xué)生更直觀地理解迭代算法的過程和原理,激發(fā)學(xué)生的學(xué)習(xí)興趣,為后面編寫迭代程序奠定基礎(chǔ)。

    分析結(jié)構(gòu)提煉模型的教學(xué)策略

    分析程序結(jié)構(gòu)和提煉算法模型是編程教學(xué)中常用的教學(xué)策略。程序結(jié)構(gòu)是指程序代碼的組織形式和層次關(guān)系。算法模型是指將算法問題抽象為一個(gè)簡單而通用的數(shù)學(xué)模型,從而更好地理解和應(yīng)用該算法進(jìn)行問題求解。

    1.迭代算法程序結(jié)構(gòu)

    迭代算法程序通常包括以下三個(gè)部分:初始化—確定迭代計(jì)算的初值,如定義一個(gè)變量,并賦予其初值。迭代計(jì)算—重復(fù)執(zhí)行的迭代計(jì)算式。終止條件—判斷當(dāng)前的計(jì)算結(jié)果是否滿足所需要求,如果滿足,則停止迭代計(jì)算并輸出結(jié)果,否則繼續(xù)迭代計(jì)算。

    對應(yīng)到具體程序中,以求解平方根為例,具體如圖2所示。

    2.迭代計(jì)算數(shù)學(xué)模型

    在該算法結(jié)構(gòu)中迭代計(jì)算部分是難點(diǎn),筆者采用對迭代問題進(jìn)行分類探討的方式幫助學(xué)生突破該難點(diǎn)。對于高中生而言,需要運(yùn)用迭代法解決的問題主要有以下三種類型。

    (1)累加器更新迭代

    對于數(shù)列求和、求乘積等問題,使用累加器或累乘器來記錄中間結(jié)果,實(shí)現(xiàn)相應(yīng)的計(jì)算。這類問題對應(yīng)的迭代公式可總結(jié)如下:

    s=s+an(求和)

    s=s*an(求乘積)

    此類問題的解決,首先引導(dǎo)學(xué)生分析數(shù)列中每一項(xiàng)的特點(diǎn),找出通項(xiàng)公式an,接著根據(jù)以上的迭代公式得到迭代計(jì)算部分的代碼。

    (2)遞推公式迭代

    對于求數(shù)列中的某一項(xiàng)的問題,常常利用遞推公式迭代法實(shí)現(xiàn),迭代公式總結(jié)如下:

    an=a*a(n-1)+b

    這類問題的解決,需要分析數(shù)列中的每一項(xiàng)和前面項(xiàng)之間的關(guān)系,找出其中的遞推算式,進(jìn)而得到具體的迭代算式。高中生已經(jīng)具備了一定的數(shù)學(xué)基礎(chǔ),只需做適當(dāng)引導(dǎo),便可找出數(shù)列的遞推式。

    (3)二分逼近迭代

    對于求解函數(shù)零點(diǎn)、方程根、最大值等問題,常常采用二分逼近法,通過反復(fù)二分區(qū)間來逐步逼近精度較高的結(jié)果。對于高中學(xué)生而言,這類問題的迭代公式,一般會在題目中直接給出,迭代計(jì)算部分直接使用,學(xué)生只需設(shè)定合理的迭代初值,并設(shè)計(jì)恰當(dāng)?shù)牡刂茥l件即可。

    學(xué)生掌握了迭代算法基本模型之后,在編程實(shí)踐中可以直接套用,提高了編程效率。分析程序結(jié)構(gòu)和提煉算法模型教學(xué)策略不僅能夠幫助學(xué)生建立深入的知識結(jié)構(gòu),還能夠促進(jìn)學(xué)生更好地掌握編程思想,提高編程技巧。

    循序漸進(jìn)的教學(xué)策略

    為了讓學(xué)生充分理解迭代算法的基本原理和實(shí)際應(yīng)用,可以循序漸進(jìn)地引導(dǎo)學(xué)生逐步完成學(xué)習(xí)任務(wù)。

    1.從讀到寫逆向?qū)W習(xí)促進(jìn)理解

    對于初學(xué)編程的高中生而言,直接編寫迭代程序有一定難度,可以讓學(xué)生先從閱讀程序開始,體驗(yàn)迭代執(zhí)行過程,發(fā)現(xiàn)迭代變量的變化規(guī)律,理解迭代的運(yùn)行邏輯,再要求他們編寫程序。通過這種逆向?qū)W習(xí)的方式,可以幫助他們更快速地掌握迭代算法的基本知識,降低入門難度。

    (1)閱讀程序理解迭代過程

    圖3所示程序使用循環(huán)結(jié)構(gòu)實(shí)現(xiàn)了對1到10的整數(shù)求和并輸出結(jié)果。其中,sum=sum+i為迭代計(jì)算式,通過重復(fù)執(zhí)行該迭代算式,最終實(shí)現(xiàn)了10個(gè)自然數(shù)之和的功能。學(xué)生在閱讀該程序過程中,初步建立了迭代思維,為后面的學(xué)習(xí)打下基礎(chǔ)。

    (2)編程實(shí)踐從修改程序入手

    接下來的編程實(shí)踐,可從修改程序開始,讓學(xué)生參照圖3所示的程序改寫程序,實(shí)現(xiàn)下列功能:求和s=1+2+…+n;求階乘s=1*2*…*n;求自然數(shù)倒數(shù)之和s=1+1/2+…+

    1/n等。

    學(xué)生通過改寫發(fā)現(xiàn)這些問題之間的相似性,這種相似性表現(xiàn)在它們具有相同的程序結(jié)構(gòu),但是使用不同的迭代關(guān)系式。通過改變迭代關(guān)系式中的新增項(xiàng)公式,就可以從一個(gè)程序轉(zhuǎn)變?yōu)榱硪粋€(gè)程序來解決不同的問題。

    由讀到寫,從簡單問題入手的循序漸進(jìn)的模式,能夠幫助學(xué)生逐步建立求解迭代問題知識體系,同時(shí)也增強(qiáng)了他們的學(xué)習(xí)興趣和信心。

    2.探討經(jīng)典問題助力思維提升

    當(dāng)具備了一定的迭代知識后,可將迭代算法融入到具體問題求解中,拋出一些有趣的經(jīng)典問題,使學(xué)生能將所學(xué)的計(jì)算思維和編程技能應(yīng)用到現(xiàn)實(shí)問題中。

    案例一:通過觀看視頻《神奇的π》,激發(fā)學(xué)生對π的值產(chǎn)生興趣,并且了解到π可以通過多種方法求解。

    π=4(……);(萊布尼茨級數(shù))

    ……;

    ……

    以上是兩種求π的近似值的方法,這些公式看起來很復(fù)雜,但是用迭代思想可以化復(fù)雜為簡單逐步解決。

    首先,分析其中一項(xiàng)的特點(diǎn),以及它與前一項(xiàng)之間的關(guān)系或變化規(guī)律,得到這一項(xiàng)的通項(xiàng)公式或遞推公式;其次,構(gòu)建循環(huán)來完成整個(gè)式子的計(jì)算;最后,根據(jù)算法模型編寫程序。這里可以將兩個(gè)程序代碼進(jìn)行對比,讓學(xué)生發(fā)現(xiàn)它們的算法結(jié)構(gòu)都一樣,唯一的區(qū)別就是通項(xiàng)公式不一樣,代碼如下表所示。

    尋找通項(xiàng)公式或遞推公式是求解以上問題的難點(diǎn),此處教師可適當(dāng)引導(dǎo)學(xué)生進(jìn)行自主探究,讓學(xué)生通過逐項(xiàng)對比,推導(dǎo)出最終的算式。學(xué)生在探究問題的過程中形成解決問題的邏輯思維。

    案例二:由斐波那契的兔子問題探究斐波那契數(shù)列的前后項(xiàng)之比。

    斐波那契的兔子是一個(gè)有趣的問題,它源于意大利數(shù)學(xué)家斐波那契的名著《算法之書》中提出的一個(gè)假設(shè):“如果一對兔子從出生后第三個(gè)月起每個(gè)月都能生一對小兔子,并且新生的小兔子也會按照同樣的規(guī)律成長和繁殖,那么一年內(nèi)可以繁殖多少對兔子?”

    根據(jù)問題分析兔子的繁殖規(guī)律:本月兔子對數(shù)=本月大兔子對數(shù)+本月小兔子對數(shù);本月大兔子對數(shù)=上月兔子對數(shù);本月小兔子對數(shù)=上上月兔子對數(shù)。

    因此本月兔子的數(shù)量為:本月兔子對數(shù)=上月兔子對數(shù)+上上月兔子對數(shù)。

    通過分析每個(gè)月兔子的數(shù)量,得到了著名的斐波那契數(shù)列:1,1,2,3,5……其前兩項(xiàng)為1,從第三項(xiàng)開始,每一項(xiàng)都等于前兩項(xiàng)之和。

    有了每一項(xiàng)和前面項(xiàng)之間的遞推公式之后,運(yùn)用迭代算法編寫程序計(jì)算出每一項(xiàng)的值,代碼如圖4所示。

    在計(jì)算出斐波那契數(shù)列的每一項(xiàng)值后,開始探索數(shù)列相鄰兩項(xiàng)之比,并讓學(xué)生觀察其中的規(guī)律。

    在探討上述問題的過程中,學(xué)生可能會發(fā)現(xiàn),求前后兩項(xiàng)之比,需要兩次執(zhí)行上述代碼,為了避免代碼重復(fù),這里可以考慮引入函數(shù)的概念,并通過調(diào)用函數(shù)來求比值。最后經(jīng)過程序運(yùn)行測試,學(xué)生驚喜地發(fā)現(xiàn),相鄰兩項(xiàng)之比隨著項(xiàng)數(shù)的增加逐漸趨近于黃金比例(約為1.61803398875)。

    通過這些有趣的數(shù)學(xué)問題的探討,激發(fā)了學(xué)生的學(xué)習(xí)興趣,加強(qiáng)了學(xué)生的邏輯推理與思考能力,幫助他們更好地理解算法與實(shí)際問題之間的聯(lián)系,培養(yǎng)他們遷移應(yīng)用所學(xué)知識的能力。

    錯(cuò)誤中提升的教學(xué)策略

    在編程學(xué)習(xí)過程中,學(xué)生會遇到各種錯(cuò)誤和問題,教師需要及時(shí)給予指導(dǎo)和解決方案,鼓勵(lì)學(xué)生閱讀報(bào)錯(cuò)提示,分析錯(cuò)誤原因,正確調(diào)試運(yùn)行程序。引導(dǎo)學(xué)生從錯(cuò)誤中學(xué)習(xí),于錯(cuò)誤中反思。對于迭代算法,學(xué)生易出的問題除了基本語法錯(cuò)誤外,還有算法錯(cuò)誤和邏輯錯(cuò)誤,大致有以下幾個(gè)方面。

    一是迭代初值的選擇。迭代算法的初值是其計(jì)算的起點(diǎn),需要根據(jù)實(shí)際情況進(jìn)行選擇。良好的初值可以加快算法的收斂速度,但錯(cuò)誤的初始值可能會導(dǎo)致迭代失敗。例如,在求解階乘問題時(shí),初始值不能設(shè)為0。在獲得迭代解之后,需要提醒學(xué)生進(jìn)行算法驗(yàn)證以確保解的正確性。

    二是程序死循環(huán)。這種錯(cuò)誤屬于邏輯錯(cuò)誤,由于迭代是一種循環(huán),for語句的迭代次數(shù)可控,一般不容易發(fā)生這種問題。而在使用while語句時(shí),必須正確設(shè)置終止條件,否則就會陷入死循環(huán)。遇到此類問題,需要引導(dǎo)學(xué)生檢查while語句后面的迭代結(jié)束條件是否正確,同時(shí)也要檢查在循環(huán)體內(nèi)的代碼是否正確,以確保循環(huán)條件能夠在一定的時(shí)間范圍內(nèi)被滿足。

    總結(jié)迭代算法易錯(cuò)點(diǎn),可以幫助學(xué)生找到解決錯(cuò)誤的方法,鼓勵(lì)學(xué)生自我糾錯(cuò),得到正確的程序運(yùn)行結(jié)果。引導(dǎo)學(xué)生在錯(cuò)誤中提升,不僅可以激發(fā)他們的內(nèi)在動(dòng)力,提高學(xué)生編程實(shí)踐的能力和水平,還可以培養(yǎng)學(xué)生獨(dú)立思考和解決問題的能力。

    結(jié)束語

    筆者根據(jù)高中生認(rèn)知特點(diǎn)和學(xué)習(xí)需求總結(jié)出的一系列教學(xué)策略,都是基于計(jì)算思維和迭代算法的理論和實(shí)踐,目的是幫助學(xué)生從感性到理性、從簡單到復(fù)雜、從錯(cuò)誤到正確地理解和掌握迭代算法,并且能夠?qū)⑵溥\(yùn)用到解決實(shí)際問題中。本文提及的教學(xué)策略也可以應(yīng)用到整個(gè)程序設(shè)計(jì)教學(xué)中,幫助學(xué)生更好地學(xué)習(xí)程序設(shè)計(jì)知識,提高計(jì)算機(jī)編程能力,培養(yǎng)計(jì)算思維。

    參考文獻(xiàn):

    [1]李盼盼,張維,曾鑫耀,等.基于布魯姆教育目標(biāo)分類的計(jì)算思維核心要素測評框架構(gòu)建[J].軟件導(dǎo)刊,2023(02):160-165.

    [2]鄭興航.從解決數(shù)學(xué)問題出發(fā)認(rèn)識計(jì)算思維[J].中國信息技術(shù)教育,2023(02):40-43.

    猜你喜歡
    計(jì)算思維高中信息技術(shù)
    高中信息技術(shù)教學(xué)改革研究
    考試周刊(2016年94期)2016-12-12 12:01:36
    高中信息技術(shù)教學(xué)中的問題與對策
    微課在高中信息技術(shù)課程分層教學(xué)中的應(yīng)用效果研究
    高中信息技術(shù)探究式教學(xué)的實(shí)踐與思考
    提升信息技術(shù)實(shí)踐能力,促進(jìn)學(xué)生全面發(fā)展
    南北橋(2016年10期)2016-11-10 17:24:09
    基于計(jì)算思維的軟件類研究生高級算法課程教學(xué)研究
    基于計(jì)算思維程序設(shè)計(jì)的軍事案例研究
    程序設(shè)計(jì)課程中計(jì)算思維和應(yīng)用能力培養(yǎng)問題研究
    民族高校C語言程序設(shè)計(jì)課程教學(xué)改革的研究
    軟件工程(2016年8期)2016-10-25 16:03:32
    算法的案例教學(xué)探析
    曲阳县| 宝丰县| 攀枝花市| 栾川县| 花垣县| 海林市| 泗水县| 商南县| 长兴县| 贵州省| 始兴县| 三河市| 鄂托克前旗| 江北区| 息烽县| 江达县| 札达县| 白银市| 岑溪市| 柯坪县| 山丹县| 桂阳县| 安岳县| 郴州市| 陕西省| 榕江县| 阳春市| 凤庆县| 兰考县| 河池市| 云梦县| 获嘉县| 金门县| 肃北| 柳州市| 鄂托克旗| 千阳县| 亳州市| 芒康县| 金溪县| 册亨县|