張亞光


● 學科核心素養
(1)掌握一種程序設計語言的基本知識,使用程序設計語言實現簡單算法,通過解決實際問題,體驗程序設計的基本流程,感受算法的效率,掌握程序調試與運行的方法。(計算思維)
(2)針對具體學習任務,體驗數字化學習過程,感受利用數字化工具和資源的優勢。(數字化學習與創新)
● 學習內容分析
本節課的教學內容來自新課程必修模塊1:數據與計算。本節課是運用turtle畫圖工具來繪制國旗,教學內容不僅涉及信息技術,還需要將國旗繪制的相關知識、數學函數的運用融合在一起才能實現,是一節綜合課。選擇使用Python編程語言來教學,符合課標要求,也是新課程發展的必然。在紀念祖國成立70周年的日子里,“我和國旗合個影”“給我一面國旗”這樣的網絡活動深受廣大網友的歡迎,但大部分人對國旗基本知識的了解并不全面,選擇這一主題在課堂上呈現,具有一定的現實意義。
● 學習者分析
本節課的學習者是高一年級的學生,他們有較強的學習能力,喜歡交流和分享,在觀察、分析、思考能力上都有非常好的表現。在本節課之前,他們已經上過三節Python語言課,掌握了輸入語句、輸出語句、if語句、for語句以及turtle模塊中一些畫圖函數的基本用法,但并沒有用這些知識來解決過實際問題。本節課,畫出規范的國旗對他們來說是一個挑戰。
● 學習目標
(1)分析問題,設計解決問題的基本方案,培養分析問題的能力。
(2)通過探究活動,了解國旗的繪制標準和使用規范,樹立規范意識,激發愛國熱情。
(3)分析文本,獲取關鍵信息,建立數學模型,實現將數學表達向計算機語言表達的轉化,學會運用數字化工具表達思想、建構知識。
(4)進一步體會程序設計的基本步驟,編寫程序解決問題,促進學生計算思維的發展。
● 教學過程
1.播放視頻,展示相關內容,明確本節課項目任務
師:(播放學校慶祝祖國成立70周年視頻片段)剛剛播放的視頻中,同學們都是親歷者,這是我們對祖國70歲生日的獻禮。每次老師看到這段視頻都會很激動,特別是看到同學們揮動著五星紅旗的畫面,我的心里都會覺得很溫暖,覺得很震撼。國旗作為國家的象征和標志,彰顯著國家的尊嚴,國家的每一個重大時刻,都會升起國旗,國旗也見證著我們的成長。今天,就讓我們帶著這樣的情感,用所學的Python語言中的turtle繪圖知識,繪制一面我們心中的國旗,把它送給祖國母親。
設計意圖:通過創設情境,以學生的親身經歷以及網絡上的相關熱點活動導入,引起學生情感上的共鳴,激發學生的學習興趣,提高學生的課堂參與度。
活動1:研讀文本資料。
師:在繪制之前,我們要明白一點,不是隨手畫出的五星紅旗就是國旗。在我國,制作國旗是有國家標準的。
教師引導學生閱讀文本材料,完成以下任務:①根據從閱讀材料中獲取的信息,確定要繪制的國旗的長和寬;②選擇一種獲取旗面上大小五角星位置數據的方法(提供直尺、量角器、鉛筆等工具);③根據文本信息,思考還需要獲取哪些數據才能順利完成任務。
學生閱讀資料,填寫繪制方案中的問題一。
設計意圖:讓學生研讀“國旗制法說明”“標準國旗尺寸”“標準國旗尺寸和允許誤差”等內容,明確繪制和制作國旗要遵守國家標準。
2.分析問題,形成初步繪制方案,探究獲取關鍵數據
(1)簡單梳理繪制思路,回顧已知應會內容。
師:請同學們快速梳理一下閱讀的內容,回答畫國旗的基本步驟。
生:第一步,先確定旗面的大小;第二步,根據國旗制作標準,確定旗面大五角星的位置、4顆小五角星的位置、4顆小五角星與大五角星的位置關系。
師:矩形和五角星這兩個元素的繪制程序,前面的課我們已經學過。現在老師和大家一起來復習這兩個程序。
①繪制矩形。(具體程序代碼省略)
師:請同學們思考,在繪制矩形表示旗面時,需要注意什么?為什么要記下旗面在畫布起點的位置坐標?
生:繪制矩形代表的旗面,旗面的長、高比例要滿足3∶2的關系。旗面在畫布的起點位置坐標,將決定旗面上各五角星的外接圓圓心的坐標。
②繪制五角星。(具體程序代碼省略)
師:我們在旗面上繪制五角星時,需要注意更改程序中哪些關鍵的量?
生:起始角度angle變量的初值,因為它決定五角星的偏轉角度;使用turtle.seth()函數時,需要明確填寫的角度是按順時針方向還是逆時針方向,順時針方向角度符號為“-”,逆時針方向角度符號為“+”;要改變星斜長度length。
(2)探究獲取關鍵數據。
師:請同學們再次深入研讀“國旗法說明”“標準國旗尺寸圖示”完成以下任務:①根據你選擇的旗面長、高,依照選擇的測量方法,按比例計算大五角星、4顆小五角星的外接圓圓心坐標、外接圓半徑、星斜長度,將具體數值或者用到的數學式子填寫到數據表的基礎數據中;②思考以上獲取的基礎數據,哪些為關鍵數據,在使用turtle畫圖時,需要怎樣處理,才能為程序所用,命名代表其意義的變量;③繪制五角星時,起點位置和偏轉角度數據將怎樣獲取?選擇哪個位置作為繪制的起點在技術上更容易解決、更省力氣?
活動2:獲取關鍵數據,填寫繪制方案表格。
學生迅速進入思考、討論、測量獲取數據的狀態,教師在巡視中回答學生的各種疑難問題,總結學生在獲取數據時所遇到的共性問題。
疑難解析:教師在巡視、指導過程中發現,大部分學生對星斜長度、繪制五角星時的起點位置、繪制時的偏轉角度三個關鍵數據如何獲取存在著一定的困難,因此,教師結合自己的繪制經歷,給學生提供以下兩點提示,供學生參考。
①計算星斜長度。
計算星斜長度,教師用的是數學中的三角函數知識。在直角三角形中,已知斜邊和一個銳角,求一條直角邊(如下頁圖1)。請學生結合國旗制法圖示(如下頁圖2),仔細觀察大五角星的星斜長度如何計算,小五角星的星斜長度如何計算。
②繪制五角星時選取的起始位置及偏轉角度的計算。
教師繪制五角星分兩步來完成,請學生觀察國旗制法圖示。第一步,繪制起點選取的是外接圓的圓心,繪制的長度是外接圓半徑,目的是要走到五角星的一個角尖。以大五角星為例,首先用goto()函數將海龜箭頭移動到外接圓圓心位置上,這時海龜箭頭初始角度為0度,即與x軸正方向一致,然后使用seth()函數按順時針方向將海龜箭頭偏轉270度,再用forward()函數向前走外接圓半徑的長度,即到達最頂端的角尖位置。第二步,把海龜在原地按順時針轉(180-18)=162度,順時針偏轉162度就是大五角星的初始偏轉角度,然后使用學過的畫五角星的程序段,完成對大五角星的繪制。
對于4個小五角星,也是從外接圓圓心出發,那么,要定位到哪個角尖呢?教師選取的是在大五角星與小五角星外接圓中心連線上的角尖,這就需要先計算出要走到這個位置,海龜箭頭偏轉的角度是多少。通過觀察標準國旗尺寸圖示可知,大五角星與小五角星外接圓圓心連線與從小五角星外接圓圓心垂直方向、從大五角星外接圓圓心水平方向三條直線相交,構成了一個直角三角形,可以利用直角三角形內的三角函數關系,即反正切函數就可得到垂直方向的偏轉度數,再加上海龜箭頭與x軸正方向的偏轉角度,就可以求出大五角星與小五角星外接圓圓心連線與x軸正方向的偏轉角度了。在計算過程中所有的角度旋轉方向都一致,選擇的都是順時針方向,所以在角度前加上了“-”號;當海龜箭頭從外接圓圓心走到指定的角尖位置后,與繪制大五角星一樣,海龜箭頭的角度再順時針偏轉(180-18)=162度,這樣就規范地畫出了各個五角星。
設計意圖:為學生提供繪制方案基本框架,引導學生探究學習的方向,鼓勵學生自主探究。在探究過程中,教師引導學生找到所有相關數據,并分析出哪些數據為關鍵數據,思考如何求得這些數據,思考如何將這些關鍵數據轉化為turtle函數能利用的參數。遇到共性問題時,教師給出難點解析,這個解析僅代表教師的一種繪制方法,為學生提供一個解決問題的思路,鼓勵學生運用自己想出的辦法解決問題。教師在與學生的交流中也會了解學生個性化的繪制方法,實現教學相長。
3.設計基本算法,編寫程序、調試修改
在取得全部關鍵數據后,在編程之前,先思考編程的基本邏輯,也就是基本的算法,并用自然語言來描述算法,填寫在繪制方案中。
①師生總結繪制國旗的基本算法:第一步,設置畫布的位置和大小;第二步,在畫布上確定旗面的位置和大小,旗面為長、高比為3∶2的紅色矩形;第三步,根據國旗制作標準,在旗面上畫大五角星;第四步,從本步開始,依次畫4顆小五角星,每顆小五角星內接圓圓心位置、偏轉角度不同。
②編寫程序、調試修改。
師:根據我們剛才梳理的算法框架以及剛剛獲取的關鍵數據,結合上幾節課所學的設置畫布、繪制矩形、繪制五角星等知識,現在動起手來編寫繪制國旗的程序吧。
活動3:自主實踐,編寫、調試程序。
學生結合教師給出的自助學案,自主實踐,學生快速進入編寫、調試程序的狀態。教師在巡視過程中給予學生指導,特別是針對學生的疑難問題,在學生充分思考仍不能解決時,提供必要的程序片段,供學生參考。
設計意圖:通過設計算法、編寫和調試程序,引導學生思考如何分步驟地完成任務。在編程之前要理清解決問題的思路,梳理編程的基本邏輯,明確繪制國旗的算法,將建構的數學模型準確地轉化為計算機程序來表達。教師幫助學生學會運用數字化工具表達思想、建構知識,初步達到促進學生計算思維發展、培養學生計算思維的目的。
4.學生成果展示、交流、分享
學生展示成果,分享采用不同方案繪制完成的規范“國旗”,交流數據是如何獲取的、程序編寫時遇到了哪些困難、是如何解決的、編程過程中最大的收獲是什么。
設計意圖:營造開放、交流的學習氛圍,分享在學習歷程中遇到的問題、解決問題的方法,引導學生互相學習,提升學生思維品質。
5.歸納總結,提出進一步優化程序的任務
師:在編程繪制規范的“國旗”的過程中,設置畫布、繪制矩形和五角星等程序段我們之前都學過。如果自由繪制,沒有要求,同學們都能比較好地完成,但在繪制國旗時有了國旗制作標準的限定,同學們就感覺有困難了,這時候就要深入分析文本,獲取關鍵數據,建立數學模型,找到突破點,然后再確立算法、編寫和調試程序,最后才能解決問題。這是一個綜合運用知識的過程,需要同學們耐心、細致、有步驟、分階段地去完成。
師:現在,請同學們仔細觀察剛剛編寫的程序,沒有編完的同學,閱讀老師給的范例,大家是不是發現,畫5個五角星,除了初始的偏轉角度和外接圓半徑不同之外,其他的主體部分都相同?這種重復的程序段,我們能不能再優化呢?下一節課,我們將優化這個程序。
設計意圖:總結、梳理,激發學生繼續深入學習的內驅力。
● 教學反思
本節課學生通過完成繪制規范的國旗,體驗了分析問題—獲取數據—設計算法—編寫、調試程序的完整過程。
首先,教師為學生創設了一個真實的情境,“我和國旗合個影”“給我一面國旗”這樣的網絡活動,來源于真實生活,容易引起學生的共鳴,激發學生的學習興趣,具有實際意義。新課標強調,要以立德樹人作為課程設計的指導思想,要挖掘學科教學中的育人因素。在課堂教學中,引導學生樹立正確的價值觀,將愛國主義滲透到學科教學中去,也是信息技術課程應當承擔的責任,本節課選擇的這個主題是一個積極的探索。
其次,教學過程以教師引導學生探究、解析疑難點為課堂運行主線,在教師分步驟地引導下,學生完成對“繪制方案”的填寫。“繪制方案”可以幫助學生快速建立一個知識支架,學生填寫“繪制方案”的過程,就是對問題由淺入深地思考、探究、解析的過程,為知識、技能的遷移做鋪墊。整節課材料準備充分,不僅包括turtle模塊中各函數的基本用法,還包括設置畫布、繪制矩形、繪制五角星等程序塊,學生在編寫程序時可以直接使用,降低了編程的難度,節約了編程時間。在教師巡視過程中,師生互動效果好,有助于解決學生個性化的問題。
最后,從教學效果來看,學生在獲取數據的過程中體會到分析文本材料的重要性;在填寫數據表、轉化到運用turtle函數解決問題的過程中體會到程序設計與數學建模的關系,提高了知識遷移、知識運用的能力;在設計算法、編寫和調試程序的過程中體會到問題的解決需要逐步分解,先將大問題分解為幾個小問題,再逐一細化,最后落實到每一條語句上去解決每個小問題,體會“自頂向下、逐步求精”的思想方法。
不足之處是,本節課的課堂容量比較大,平時常規課都是兩節連上,共90分鐘,本次公開課用45分鐘時間難以達成最終的教學目標。因此,在教學設計中應該根據學生、課堂時間等實際情況,分解任務,設置任務層次,使學生能夠有足夠的時間去理解、轉化、移遷知識。
點? 評
本節課從本質上來說,是一個很好的項目教學。本課以繪制標準國旗為主題,結合國旗制作標準、Python編程語言、數學三角函數等內容,具有很強的綜合性。課程的導入以剛剛發生在網絡空間的“給我一面國旗”引入,貼近生活,主題能引起學生的興趣。國旗是國家的象征,制作和使用國旗都要遵守國旗法,網絡空間也不例外,將國旗相關知識引入課堂也是對學生進行公民教育。我經常在思考,信息技術課程如何與愛國主義結合起來,今天這節課就是一個很好的示范。
本課選擇Python語言編寫程序,對任課教師本人是一個挑戰。在吉林省還沒有進入新課程、沒有新教材的情況下,教師能從課標出發,自我組織材料,梳理教學內容,課堂上以制訂“繪制方案”作為腳手架,逐步引導學生分解問題,并且提供了大量的教學資料,實屬難得,從提供的文本材料來看,也體現了教師嚴謹的教學作風。在教學過程中,引導學生自主學習、探究,對共性問題予以重點分析、解答,幫助學生克服困難,教師起到了很好的主導作用。學生在編寫程序的過程中,探究順序結構、循環結構,體會程序設計分析問題—算法設計—編寫代碼—測試—排錯的基本流程,加深了學生對程序設計思想的理解,培育了學生的計算思維。這樣的課堂實踐才能使學科核心素養真正落地。
面對信息技術新課程的到來,我們都是新教師,我們也都是探索者,我們也一樣需要補充新知識。信息技術教師,只有深度學習相關專業知識,學習相關教學方法,為新課程的開展做必要的準備,才能在進入新課程之后勝任教學,才能使學科核心素養落地生根、開花結果。