張孟娟
● 學習內容分析
本課節選自2019年教科版《必修1 數據與計算》4.2《數值計算》,主要內容為“繪制數學函數曲線”和“求解斐波那契數列”兩個任務。本課的主要意圖旨在幫助學生掌握數值類問題求解常用的算法思想,針對問題來選擇合理的算法以解決實際問題。考慮到兩個任務屬于并列關系,且任務之間關聯度不高,沒有緊密聯系實際問題的求解,只停留于數值計算的知識層面,所以本課通過求解折紙折痕數量的兩種方法來串聯兩個任務包含的主要知識點,讓學生通過自主探究、小組合作等活動,更深入地理解算法、學習算法,引導學生體驗運用程序解決問題的過程。
● 學習者分析
本課的學習對象為高一年級的學生,他們已經具備較高的抽象邏輯思維、分析能力與辯證思維。在知識層面上,他們已經初步掌握了Python的變量賦值、選擇、循環等基本結構,學會了利用自然語言和流程圖描述解決問題的算法,具備了一定的編程能力,并且好奇心較強,喜歡通過實踐探究來解決問題。在發展需求層面,他們雖然已經學習了Python編程中的基本概念與結構,但囿于實踐經驗匱乏,在程序的整體編寫方面還存在困難,程序設計思想的基礎比較薄弱。學生通過本課的學習,可以進一步增強自身利用編程解決問題的意識,提高發現、分析、解決問題的能力。
● 學習目標
信息意識:針對折痕數量計算這一問題,進行需求分析,綜合判斷信息,選擇合適的方法解決問題。
計算思維:①通過繪制指數函數圖像,能夠明確Python利用numpy和matplotlib兩個模塊繪制圖像的基本方法,感受數據的圖形化表示;②通過求解折紙折痕數量,掌握數值類算法在實際問題解決過程中的應用及常用方法,能夠使用解析式或迭代方程,進行數值計算、解決實際問題,并能夠遷移到其他問題的解決過程中。
數字化學習與創新:能夠利用Python工具設計與完善程序,養成數字化學習與創新的習慣。
● 教學重難點
重點:①numpy和matplotlib兩個模塊繪制函數圖像的方法;②數值類算法在實際問題解決過程中的常用方法,如迭代法。
難點:迭代算法解決問題的關鍵步驟,利用迭代法求解折痕數量。
● 教學過程
1.創設情境,提出問題
呈現問題情境:折紙中包含許多數學問題,如折紙厚度計算問題、折痕數量問題等,今天我們將一起探究有關折紙折痕數量的問題。一張A4紙,如果對折一次,會得到一條折痕;如果繼續沿著一個方向對折,讓每次折痕都與上次折痕保持平行,會得到3條折痕;如果再對折,折痕數量也隨之增大。對折n次后,紙上會有幾條折痕?
設計意圖:以求解折紙折痕數量的趣味數學問題作為導入,激發學生的探究興趣。
2.循序漸進,分析問題
活動一:兩人一組,討論折痕數量與對折次數之間的規律,思考第n次對折對應的折痕數量是多少?
講解:①總結規律為2n-1,引出兩者之間的關系式是指數函數;②指出用圖像表示數學函數的意義。
提問:生活中繪制圖像的軟件有很多,你們可以想到哪些?
講解:①總結學生的回答內容,展示使用Excel繪制y=2x-1函數圖像所出現的問題——關鍵點不足,精度不夠;②指出利用程序描點,可以達到速度快且精確度高的效果,引出使用Python繪制函數圖像。
設計意圖:引導學生通過比較分析,明白解決問題的需求,為后面選擇解決問題的合適算法打下基礎。
3.學練結合,解決問題
講解:①numpy模塊常用函數及相關語句用法——arange()可以創建等差數列,是繪制更多點對,使圖像更加光滑的關鍵;numpy模塊加載以及arange()函數語句的編寫。②matplotlib模塊常用函數及相關語句用法。③總結Python模塊調用的一般步驟:安裝相關模塊—加載模塊—調用語句—完善及運行程序。
活動二:根據部分參考代碼(如圖1)和示例圖(如圖2),用Python繪制指數函數y=2x-1,1≤x≤10的圖像。
活動2參考答案:①y=(2**x)-1;②plt.title(‘y=(2**x )-1’);③plt.xlabel('X');④plt.ylabel('Y')。
設計意圖:讓學生在動手實踐的過程中加深對所學知識的理解,感受程序創作的魅力及數字化工具的優勢。
4.深入思考,分析問題
提問:除了用2n-1(n>=1)表示折痕數量,想一想還可以怎么表示?
講解:①總結折痕數量與對折次數之間的另一種關系表達式:f(n)=2f(n-1)+1(n>=2);②結合上述關系式講解迭代過程。
設計意圖:針對同一個問題,鼓勵學生思考解決問題的不同方法,培養學生的邏輯思維和發散思維。
5.層層深入,解決問題
活動三:補全導學案中的流程圖(如圖3),并嘗試利用迭代思想,編寫Python程序。(功能要求:輸入第n次對折,計算對應的折痕數量)
講解:①依據流程圖梳理算法設計的過程;②函數調用的相關語句。
小結:迭代算法的三個關鍵步驟:確定迭代變量——建立迭代關系式——對迭代過程進行控制。
設計意圖:從補全流程圖到代碼編寫,幫助學生明確算法設計的流程,奠定學生編寫程序的基礎。活動從易到難,層層深入,能夠幫助學生消除畏難情緒,更好地理解迭代算法解決問題的關鍵步驟。
6.拓展練習,鞏固知識
活動四:補充代碼,完成程序(如圖4)。將答案上傳至UMU學習平臺。
參考答案:第1題:①-50;②51;③x*x-2*x+1;④plt.plot(x,y)。第2題:①n+1;②f1,f2=f2,f1+f2;③f2。
設計意圖:通過拓展練習,促進知識遷移;同時借助UMU平臺,實時查看學生的作答情況,針對性講解學生的疑惑問題。
7.梳理知識,形成評價
進行課堂小結,組織學生根據UMU學習平臺上的評價問卷,進行自我評價,并填寫本節課的收獲與疑問。
設計意圖:通過課堂小結及自我評價,幫助學生回顧知識、總結收獲,引導學生在生活中積極利用計算機解決實際問題。
● 教學反思
本節課采用“提出問題—分析問題—講解新知—解決問題—鞏固總結”的教學過程,以問題串聯的方式層層遞進、由淺入深地促使學生通過討論、比較等方式逐步構建新知識、新技能,注重培養學生的學科核心素養。
從單元設置的意圖來看,本單元注重探究“計算”,更多關注的是問題解決的過程,即描述和變換信息的過程。因此在教學過程中,本節課以“折紙中的趣味數學問題”作為活動主線,注重培養學生界定問題、抽象特征、形成與遷移問題解決方案的思維能力。首先,通過折紙中的折痕數量問題引入新課,激發學生探究興趣,培養學生的信息意識;其次,通過求解折痕數量的兩種不同方法,串聯了函數圖像繪制和迭代算法兩節內容,在學生通過編程實現兩種不同算法的過程中,注重借助自然語言和流程圖幫助學生理解知識,發展學生的計算思維;最后通過拓展練習以及總結評價,促進學生知識遷移、融會貫通,引導學生在生活中進行積極思考,養成利用數字化工具解決問題的習慣。由于教材設置的兩個任務屬于并列關系,所含內容較多,本節課雖有意識地串聯兩個任務所含知識,但受課時限制,在實際教學中,節奏相對較快,對于一些知識的歸納總結有所欠缺,如圖像化表達的意義、用計算機解決問題的一般過程等。