俞曉波





摘要:本文基于問題探究教學模式,以“理科生的浪漫——利用Python自定義函數體驗數學之美、程序之美”為主題,設計了相應的問題情境,分析分解問題,引領探究問題,為如何落實信息技術學科核心素養提供了參考案例。
關鍵詞:學科核心素養;問題探究;Python程序設計;自定義函數
中圖分類號:G434? 文獻標識碼:A? 論文編號:1674-2117(2024)02-0041-03
當前,高中信息技術課程教學重心逐步從以往應用軟件教學轉向“數據與計算”,編程教育越來越被重視。但在日常編程教學中,以下兩個問題日漸突出:一是過分強調編程的知識和技巧,學生只是機械地掌握程序的基本語法和結構,不善于通過理解算法來探求相應的程序代碼,遇到問題往往束手無策。二是缺乏情境化教學,缺乏對方法和規律的總結提煉,不善于運用算法思維靈活解決不同情境中的問題。面對這些問題,筆者以“理科生的浪漫——利用Python自定義函數體驗數學之美、程序之美”為例進行了問題探究式教學實踐,下面,從四個階段來具體闡述。
第一階段:發現問題,提出問題,創設主題情境
1.研究教學內容,確定教學流程
本課是自定義函數的復習課,傳統教學形式是逐一分析自定義函數的考點,再結合考試練習系統中的一些“真題”進行程序填充練習,但最終學生只是機械地記住了一些零散的方法和格式,各知識點之間缺少有效銜接,沒有建立起編程的思維邏輯。基于此,筆者整合自定義函數的相關考點,并結合自身教學經驗,采用問題探究式教學模式進行了教學實踐,教學流程如圖1所示。
2.發現問題,落實核心素養
自定義函數的本質是方便實現代碼的重復使用,用來求解階乘的累加之和,此類問題比較典型。這類問題思維邏輯性強,學生常常云里霧里,無法抓住問題的本質。由此,筆者想到了調用turtle繪圖庫中的內置函數來繪制愛心圖案,再將相應代碼段,修改成自定義函數,重復調用函數,得到愛心組合圖案。這種方法生動形象,一目了然地呈現了自定義函數方便復用的本質,還涉及第三方模塊的導入。同時,從turtle愛心得到啟發,想到笛卡爾愛心曲線,曲線對應的r=a(1-sinθ)被稱為最浪漫的方程。“數學之美”和“程序之美”相得益彰,程序設計課被賦予了故事和內涵。
3.提出問題,優化課題名稱
通過上述分析,本課要解決的問題呼之欲出,即如何利用Python的自定義函數,探索體驗“數學之美”“程序之美”。因此,筆者修改了課例名稱,把原來的“自定義函數復習”改成“理科生的浪漫——利用Python自定義函數體驗‘數學之美、程序之美’”。
4.創設情境,導入課題
課前,筆者整理關于“理科生的浪漫”的素材,包含數學家笛卡爾的生平以及他的浪漫方程和心形曲線、自定義函數的知識要點,將其作為背景資料發給學生供課前閱讀。課中,創設情境,利用視頻導入,引出主題——理科生的浪漫。
第二階段:分析分解問題,明確任務
問題一:如何利用自定義函數繪制笛卡爾愛心曲線的多種組合?
教師可引導學生復習回顧自定義函數的基本知識,然后按照以下步驟推進:①給出利用Matplotlib庫繪制笛卡爾曲線的代碼(如圖2),運行程序,展示愛心曲線(如圖3)。②引領學生分析問題,找出其中需要復用的代碼。③將需要復用的代碼定義成含一個參數的函數。④調用函數,嘗試畫出不同大小的多條愛心曲線。⑤引導學生定義和調用含兩個參數的函數,畫出一組大小不同、色彩各異的愛心曲線。
問題二:如何將turtle愛心圖案修改成“花的形狀”?
這個問題由學生自主探究完成,自主探究過程如下:①打開下發的愛心圖案代碼(如圖4),運行后得到一個turtle函數庫繪制的愛心圖案(如圖5)。②查看代碼,模仿第一個活動,自行探究,繪制出“花形”圖案,也可以是其他圖案。
問題三:如何寫一封理科生的“情書”?
前面兩個問題都是繪圖,能非常直觀地幫助學生理解自定義函數可以復用的優勢,函數的定義和調用更簡潔易懂,能有效達成教學目標。但其函數體中可以復用的代碼學生不是很熟悉,其功能是通過解釋語句或運行程序得到圖像后才明確的。
問題三所用程序代碼的設計則是要彌補這個小瑕疵,采用的函數體最好是學生熟悉的代碼,且程序運行的結果最好能呼應課堂的主題。筆者由“理科生的浪漫”主題想到,數學家笛卡爾的一個方程即是一封情書,簡潔又含蓄。那么學編程的是否也可以寫一封含蓄的“情書”?因此有了如下設計:源程序只有數字和其他代碼,運行程序后輸出漢字。只是,在課堂上輸出的不是情書,而是“數學之美、程序之美”,呼應主題。再在練習的難度和形式上做一些細節處理,用注釋語句給出ord()函數的用法,溫習舊知。同時,根據學業水平測試的難度,以程序填充的方式將問題三作為課堂練習(如圖6)讓學生自主完成。
第三階段:設計評價方案,相互交流分享
在問題探究式教學的第三個階段,教師可選擇點評、自評、互評等方式進行作品的交流與分享,并適時點撥,及時引導,適當點評,鼓勵協助創新,滲透信息社會的責任意識。
本課的分享與交流環節,主要采用以下方法進行:①分享優秀學生作品,引導學生探索改進;②教師適時給予學生幫助,進行個別輔導和點評,并關注學生解決問題的進度;③鼓勵學生相互討論、相互協助、勇于創新;④要求學生將自己的成果文件傳輸到網絡教學平臺,教師進行分享和點評。需要重點關注的是,是否有學生利用Python的計數循環語句來調用自定義函數,用這種方法調用函數能繪制出令人驚喜的圖像,這部分學生的融會貫通能力較強,要加以肯定,發揮其榜樣的作用。
第四階段:解決問題,實現知識的概括與遷移
在問題探究式教學的第四個階段,教師要引導學生對自己解決問題的過程進行梳理,總結問題解決方案中的核心知識的應用,形成解決類似問題的普適思路。在這個過程中,學生的概括能力、思維能力能得到很好的發展。學生切身體會了“代碼復用”的意義,簡單來說,就是可以幫人“偷懶”。一條愛心曲線經過重復調用,能形成各種美麗的圖案(如圖7),收到意想不到的效果。知識的遷移與運用不局限于此類情境,更重要的是要讓學生學會從學科邏輯遷移到生活邏輯,落實信息技術的核心素養。
結語
教師應以問題為導向,力求每節課都全身心投入對信息技術核心素養的探索,超越程序語言觀或技術工具觀,精選學生需要掌握的基本知識與技能,引導學生發展計算思維,使其能更好地在信息社會中生存、發展和創新。
參考文獻:
王園一.高中信息技術問題探究式教學模式的構建與實踐[J].中國信息技術教育,2022(21)):51-53.
本文系無錫市教育科學“十四五”規劃2021年度重點立項課題“指向學科核心素養的高中信息技術問題探究式教學研究”(立項編號:F/B/2021/01)的階段性成果。