• 
    

    
    

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

      基于深度學(xué)習(xí)的程序設(shè)計教學(xué)實踐探究

      2023-06-07 16:31:17趙倩倩
      中國信息技術(shù)教育 2023年11期
      關(guān)鍵詞:迭代法比較深度學(xué)習(xí)

      趙倩倩

      摘要:迭代法與遞歸法的比較在2020版教科版高中信息技術(shù)教材必修1第四單元“4.3 非數(shù)值計算”中的拓展知識與選擇性必修1中的“3.1 迭代與遞歸”中均有所涉及,很多學(xué)生難以透徹理解二者的關(guān)系,導(dǎo)致在解決實際問題時不能靈活應(yīng)用。作者通過對典型案例的深入探究,使學(xué)生明確迭代法與遞歸法實現(xiàn)過程與執(zhí)行效率及應(yīng)用方面的異同,在解決問題時能辨證地看待與應(yīng)用,達(dá)到了深度學(xué)習(xí)的效果。

      關(guān)鍵詞:深度學(xué)習(xí);遞歸法;迭代法;比較

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

      程序設(shè)計課深度學(xué)習(xí)的困境

      深度學(xué)習(xí)是指在真正理解一個知識點的基礎(chǔ)上,能夠在新問題情境下靈活遷移運用該知識點,快速找到解決思路和方法的一種學(xué)習(xí)。它以聯(lián)系和理解為主要特征,鼓勵學(xué)生積極地反思、探索,發(fā)展學(xué)生分析、應(yīng)用、評鑒和創(chuàng)造等高階思維能力。[1]在當(dāng)前高中程序設(shè)計與算法的課堂教學(xué)中,部分學(xué)生存在“聽講時都會,解決實際問題時卻不知從何下手”“編程解決問題時沒有考慮程序的運行時間”“沒有評價算法執(zhí)行效率的意識”等問題。出現(xiàn)這些問題的原因有兩方面:一方面是由于程序設(shè)計的核心知識——算法的學(xué)習(xí)是高階思維的形成,難度較高,學(xué)生沒有真正理解、理清知識的內(nèi)涵、外延及相近知識之間的關(guān)系,不能熟練應(yīng)用。另一方面是缺乏深度的教學(xué)使學(xué)生體驗得不深刻、思考得不深入、理解得不透徹。針對問題及原因,筆者嘗試以教科版高中信息技術(shù)教材必修1第四單元“4.3 非數(shù)值計算”中的拓展知識與選擇性必修1中的“3.1 迭代與遞歸”中都涉及的相似算法——迭代法與遞歸法的比較為例,探討如何進(jìn)行基于深度學(xué)習(xí)的程序設(shè)計教學(xué)實踐。

      基于深度學(xué)習(xí)的程序設(shè)計教學(xué)實踐

      迭代法與遞歸法在程序設(shè)計中應(yīng)用廣泛,是排序、搜索、查找、分治等經(jīng)典算法的基礎(chǔ),但對高中生來說,剛開始學(xué)習(xí)時往往難以理解二者的異同。因此,在教學(xué)實踐中,教師應(yīng)明確促進(jìn)深度學(xué)習(xí)的教學(xué)目標(biāo),注重引導(dǎo)學(xué)生的高階思維投入,并從具體的案例開始,探究分別使用迭代法與遞歸法解決同一問題,使學(xué)生深入理解兩種算法的執(zhí)行過程與使用方法;通過對時間與空間消耗的分析來比較兩種算法的執(zhí)行效率,在此基礎(chǔ)上觸發(fā)學(xué)生深度思維,辯證地看待與使用算法解決實際問題。

      1.尋找最近發(fā)展區(qū),促進(jìn)深度學(xué)習(xí)的開啟

      教師提出問題:斐波那契數(shù)列是指像1、1、2、3、5、8、13、21……的數(shù)列,即后一項是前兩項之和,在數(shù)學(xué)中該數(shù)列定義為:f(1)=1,f(2)=1,f(n)=f(n-1)+f(n-2)(n>2)。請說出數(shù)列的第20項數(shù)值。通過問題引入,學(xué)生在回顧數(shù)學(xué)知識的同時,體會當(dāng)人工推算滿足不了需求時,就要借助編程計算。這里有兩種方法:一種是從已知值開始,通過遞推關(guān)系式一步一步地推出所求未知項的值,這種方法即迭代法。另一種是從所求未知項出發(fā),通過調(diào)用函數(shù),倒推至初始項,再代入初始項的值一步一步回推而求出未知項的值,這種方法即遞歸法。

      在教學(xué)中,教師可以借助數(shù)學(xué)中經(jīng)典數(shù)列問題的定義,從學(xué)生的最近發(fā)展區(qū)入手,激發(fā)學(xué)生學(xué)習(xí)興趣并思考,由簡單的數(shù)學(xué)推算過渡到利用遞推關(guān)系式編程計算,由淺入深,使學(xué)生的思維由數(shù)學(xué)思維過渡到算法思維,促進(jìn)深度學(xué)習(xí)的開啟。

      2.解構(gòu)算法核心概念,建立深度學(xué)習(xí)的聯(lián)接

      深度學(xué)習(xí)的達(dá)成需觸發(fā)學(xué)生的深度思維,而深度思維首先應(yīng)聚焦、解構(gòu)概念的內(nèi)涵與外延。迭代法又稱輾轉(zhuǎn)法,是從初始值開始多次對過程進(jìn)行重復(fù),每一次迭代得到的結(jié)果都會被用來作為下一次迭代的初始值,以達(dá)到所求目標(biāo)。遞歸法是指函數(shù)直接或間接調(diào)用自身的一種方法,其基本思想是把規(guī)模較大的問題層層轉(zhuǎn)化為規(guī)模較小的同類問題求解。

      (1)從問題分解與構(gòu)造的角度看迭代與遞歸

      迭代法和遞歸法都是將大的問題分解成很小的問題直到小的問題能夠解決的方法。迭代法是從已知開始,即f(1)與f(2),通過循環(huán)結(jié)構(gòu)實現(xiàn)反復(fù)替換,在反復(fù)替換中達(dá)到解決問題的目的,它有三個構(gòu)造過程:①確定迭代變量的初始值;②建立遞推關(guān)系式;③迭代的結(jié)束條件,不能讓迭代無限重復(fù)。遞歸法則是從未知開始,通過反復(fù)調(diào)用函數(shù)直到遇到邊界f(1)與f(2),然后逐層返回獲得結(jié)果,它有兩個構(gòu)造過程:

      ①遞推——通過逐層函數(shù)調(diào)用實現(xiàn);②回歸——當(dāng)獲得最簡單的情況即數(shù)列的初始項f(1)與f(2)后,逐步返回,依次得到問題的解。遞歸法函數(shù)調(diào)用過程如圖1所示。

      (2)從形式化表達(dá)的角度看迭代與遞歸

      實現(xiàn)迭代法的循環(huán)控制和實現(xiàn)遞歸算法的函數(shù)調(diào)用與選擇結(jié)構(gòu),都是形式化表達(dá)方式,它們在程序設(shè)計中已存在標(biāo)準(zhǔn)的模型,可以方便地將復(fù)雜問題的解決過程進(jìn)行形式化描述。這里要注意f1,f2=f2,f1+f2是Python語言中的元組賦值方式,是對數(shù)列元素反復(fù)替換求解的形式化表示,同時創(chuàng)建兩個元組,然后將上一步的(f1,f1+f2)元組的值賦給當(dāng)前的(f1,f2)元組,就實現(xiàn)了多個變量值的替換與更新。表1所示為對使用迭代法與遞歸法解決斐波那契數(shù)列問題的兩個方面進(jìn)行的比較。

      通過對迭代法與遞歸法核心概念的解構(gòu),引導(dǎo)學(xué)生對知識進(jìn)行歸納與整理,促進(jìn)學(xué)生理解并熟練掌握兩種算法在實現(xiàn)過程與形式化表達(dá)方面的異同,從而建立深度學(xué)習(xí)的聯(lián)接。

      3.分析算法的執(zhí)行效率,促進(jìn)深度理解

      教師可以對算法執(zhí)行過程層層設(shè)疑,使教學(xué)目標(biāo)更為具體化,進(jìn)而為實現(xiàn)深度學(xué)習(xí)的目標(biāo)提供可能。教師先請學(xué)生思考在使用迭代法與遞歸法分別計算fib(7)時,fib(3)計算了幾次。學(xué)生觀察程序發(fā)現(xiàn)在用迭代法計算時,循環(huán)體內(nèi)執(zhí)行了5次賦值運算,運行時間只隨循環(huán)次數(shù)的增加而增加,每次循環(huán)結(jié)束后變量的值將直接被替換更新,不占用額外空間。而在用遞歸法計算時,學(xué)生借助遞歸函數(shù)調(diào)用思維導(dǎo)圖(如上頁圖1),可以看到每個遞歸調(diào)用都觸發(fā)另外兩個遞歸調(diào)用,fib(3)被調(diào)用計算了5次。當(dāng)n較大時就產(chǎn)生了大量的函數(shù)調(diào)用,而函數(shù)調(diào)用時參數(shù)壓到堆棧中,需為變量分配內(nèi)存空間,每深入一層都要占用一塊數(shù)據(jù)區(qū)域,產(chǎn)生許多額外的時間與空間消耗。最后,借助timeit模塊函數(shù)來統(tǒng)計程序運行所消耗的時間,隨著所求項數(shù)n的變化,兩種算法的時間消耗與空間占用對比如表2所示。

      通過上述比較與分析,教師再引導(dǎo)學(xué)生進(jìn)一步總結(jié)兩種算法的時間消耗與空間占用方面的特點,學(xué)會分析算法的執(zhí)行效率,層層深入,促進(jìn)對兩種算法原理的深度理解,從而在面對實際問題時能合理地選用算法,辯證地看待與使用迭代法和遞歸法解決問題。

      4.設(shè)置變構(gòu)應(yīng)用情境,鞏固深度學(xué)習(xí)的效果

      深度學(xué)習(xí)往往意味著高難度的學(xué)習(xí),根據(jù)認(rèn)知負(fù)荷理論,深度學(xué)習(xí)知識本身的難度會增加學(xué)習(xí)的內(nèi)在認(rèn)知負(fù)荷。[2]因此,教師可以通過針對性的鞏固練習(xí),設(shè)置變構(gòu)應(yīng)用情境,將解決同一問題的不同算法代碼實現(xiàn)進(jìn)行對比,同時對相同算法解決不同問題的代碼進(jìn)行對比,做到算法與應(yīng)用結(jié)合、代碼知識與應(yīng)用結(jié)合,加強學(xué)生對應(yīng)用這兩種算法編寫代碼解決實際問題的理解,從而突破難點。

      以“求階乘問題”的兩種算法實現(xiàn)及比較為例,求正整數(shù)n的階乘。依據(jù)數(shù)學(xué)中對階乘的定義(一個正整數(shù)的階乘是所有小于及等于該數(shù)的正整數(shù)的積,0的階乘為1),引導(dǎo)學(xué)生對問題進(jìn)行分解與構(gòu)造,寫出n的階乘的遞推關(guān)系式n!=n*(n-1)*…*1。在用迭代法實現(xiàn)時需確定初始值與終止條件,使用循環(huán)結(jié)構(gòu)進(jìn)行數(shù)據(jù)的更新替換;在用遞歸法實現(xiàn)時需確定遞歸出口與定義遞歸調(diào)用函數(shù)。進(jìn)一步設(shè)置進(jìn)階變構(gòu)應(yīng)用,以“爬臺階問題”的兩種算法實現(xiàn)及比較為例,假設(shè)爬臺階有兩種方式,一種是一步邁1級臺階,另一種是一步邁2級臺階,請問爬n級臺階一共有多少種方式。提示學(xué)生從問題的分解與構(gòu)造、形式化表達(dá)方面著手,分析問題的求解步驟。定義求解爬n級臺階的函數(shù)為num(n),如果第一步邁1級,那么剩下的n-1級臺階有num(n-1)種走法;如果第一步邁2級,那么剩下的n-2級臺階有num(n-2)種走法,提取算法的遞推關(guān)系式:num(n)=num(n-1)+num(n-2)。當(dāng)n=1時,num(1)=1,當(dāng)n=2時,有2種走法即num(2)=2,這兩個條件即為迭代法的初始值、遞歸法的邊界。這兩個問題的迭代法與遞歸法的Python實現(xiàn)代碼如上頁表3所示。

      對比以上問題的兩種算法實現(xiàn)代碼,學(xué)生會發(fā)現(xiàn)迭代法與遞歸法都需要重復(fù)執(zhí)行某些代碼。迭代是重復(fù)執(zhí)行的過程,目的是逼近所求結(jié)果,通常使用計數(shù)器結(jié)束循環(huán);遞歸是重復(fù)調(diào)用函數(shù)自身,當(dāng)遇到滿足終止條件的情況時逐層返回。

      再以必修1“4.3 非數(shù)值計算”中的拓展知識“漢諾塔游戲”為例,教師可以從數(shù)值計算過渡到非數(shù)值計算,發(fā)散學(xué)生思維。通過分析當(dāng)n大于1的時候,可以考慮先將上面n-1個圓盤看作一個整體通過A移動到B上,再將A上的最后一個圓盤移動到C上,最后將B上的n-1個圓盤通過A移動到C上,對n-1個圓盤進(jìn)行遞歸調(diào)用直到n=1時為遞歸出口,只需直接將A上的圓盤移動到C上即可。遞歸實現(xiàn)代碼如圖2所示,其中遞歸調(diào)用語句后還有非遞歸調(diào)用語句print(),如直接用迭代法解決將增加實現(xiàn)難度,導(dǎo)致代碼不易讀。

      所以說,當(dāng)一個問題相當(dāng)復(fù)雜,難以根據(jù)當(dāng)前所學(xué)知識應(yīng)用迭代法實現(xiàn)時,遞歸實現(xiàn)的簡潔性便可以彌補它所帶來的運行時的開銷。同時,教師要引導(dǎo)學(xué)生在解決實際問題時具體問題具體分析,對于規(guī)模小的問題,可根據(jù)自己的偏好來選擇算法,但對于大型問題或特殊問題就需要綜合考慮算法的執(zhí)行效率與可讀性。這樣,通過知識整合、橫向與縱向?qū)Ρ?,達(dá)到了提升批判性高階思維能力和解決復(fù)雜問題能力的教學(xué)目標(biāo),促進(jìn)了學(xué)生對迭代法與遞歸法的靈活遷移運用,鞏固了深度學(xué)習(xí)的效果,激發(fā)了學(xué)生進(jìn)一步探究與學(xué)習(xí)算法的興趣。

      結(jié)語

      通過對兩種算法執(zhí)行效率的比較,可以引導(dǎo)學(xué)生對程序執(zhí)行過程進(jìn)行反思,這是算法不斷優(yōu)化思想的體現(xiàn),并促使學(xué)生在反思與優(yōu)化中發(fā)現(xiàn)迭代法與遞歸法解決問題的特點,這樣既使學(xué)生全面掌握了知識,又發(fā)揮了學(xué)生的自主性,鍛煉了評價算法的能力。這些都是促進(jìn)學(xué)生深度學(xué)習(xí)的途徑,也是發(fā)展學(xué)生計算思維的要義所在。

      參考文獻(xiàn):

      [1]卜彩麗.深度學(xué)習(xí)視域下翻轉(zhuǎn)課堂教學(xué)理論與實踐研究[D].西安:陜西師范大學(xué),2018.

      [2]樂會進(jìn),蔡亮文.混合教學(xué)模式何以促進(jìn)深度學(xué)習(xí)——基于翻轉(zhuǎn)課堂的研究[J].中國信息技術(shù)教育,2018(08):143-147.

      本文系2019年度湖北省教育信息技術(shù)研究與教育科學(xué)規(guī)劃重點課題“基于MOOCAP的大學(xué)先修課程高中實踐研究——以程序設(shè)計先修課為例”(課題編號:2019ZA57)研究成果之一。

      猜你喜歡
      迭代法比較深度學(xué)習(xí)
      迭代法求解一類函數(shù)方程的再研究
      MOOC與翻轉(zhuǎn)課堂融合的深度學(xué)習(xí)場域建構(gòu)
      大數(shù)據(jù)技術(shù)在反恐怖主義中的應(yīng)用展望
      深度學(xué)習(xí)算法應(yīng)用于巖石圖像處理的可行性研究
      同曲異調(diào)共流芳
      人間(2016年26期)2016-11-03 16:47:14
      中日足球后備人才培養(yǎng)體系比較
      體育時空(2016年8期)2016-10-25 20:47:19
      基于深度卷積網(wǎng)絡(luò)的人臉年齡分析算法與實現(xiàn)
      軟件工程(2016年8期)2016-10-25 15:47:34
      張愛玲的《金鎖記》與居斯塔夫?福樓拜的《包法利夫人》比較研究
      托福聽力指南:如何搞定“比較”和“遞進(jìn)”結(jié)構(gòu)的講座題
      迭代法求解約束矩陣方程AXB+CYD=E
      新蔡县| 金乡县| 景泰县| 娱乐| 类乌齐县| 四会市| 阿拉尔市| 安陆市| 安龙县| 象山县| 龙州县| 资阳市| 平安县| 巴彦县| 余干县| 辰溪县| 宜良县| 乐安县| 屏东市| 江城| 安丘市| 新营市| 孝昌县| 延川县| 华安县| 阿鲁科尔沁旗| 招远市| 徐闻县| 兴安县| 阜阳市| 沧州市| 道孚县| 海林市| 务川| 信阳市| 集安市| 敦煌市| 大姚县| 涡阳县| 响水县| 剑川县|