浙江省杭州市丁荷小學 艾靖雯
隨著信息技術的快速發展,教育發生了翻天覆地的變化。2017年7月,國務院印發了《新一代人工智能發展規劃》,要求在中小學階段設置人工智能相關課程并逐步推廣編程教育。顯然,編程教育逐步變成信息技術學科必不可少的一個重大板塊,而培養學生的計算思維是學科的核心素養。因此,編程教育應當普及化,學生必須掌握一種適應時代的編程語言,將想法通過計算機編程來實現。該語言以簡單、優雅、速度快的特點深受大眾的歡迎。它可以通過調用庫函數完成諸多任務,幫助解決開發、大數據挖掘、人工智能等各行各業的問題。
Python是完全面向對象的語言,具有優異的擴展性。它可以通過調用函數、模塊、對象來擴充。學生輸入一系列的代碼,借助指令與計算機實現對話,從而更多地關注到計算思維與邏輯結構,以簡單的英語表達句的形式讓代碼易讀、簡單、清晰。該語言具有以下特點:語法簡潔,結構清晰、通用靈活。當你理解一個Python程序時,就好比閱讀英語句子。小學生在整個編程過程中不再過多在意語法問題以及計算機基礎內容,把關注點集中在巧妙運用計算機處理任務和問題的方法上。這對于小學生來說,不僅降低了學習新的編程語言的門檻,也給他們帶來了很好的學習體驗。Python語言教學能更好地發展學生的核心素養。學生在編程的過程當中,會出現一系列的問題,那么要如何處理這些問題?學生要學會自主學習、查閱資料、尋找同伴的幫助,并找出命令當中存在的bug來修改、完善。學生在修改的同時,不是簡單地學習了幾句代碼,而是在整個處理問題的過程當中,提高了自己英語閱讀、數學邏輯、計算思維的能力。
在小學高段編程教學當中,通過Python教學可以讓學生圍繞問題進行分析—理解—編寫—調試,也極大地提高了學生的計算思維能力和實際解決問題的能力。與此同時,將真實情景下的問題作為出發點,學生可以將問題與進階編程教學中的邏輯思維聯系起來,能夠更好地去理解生活當中的設備的工作原理。
2017年教育部公布的《普通高中課程方案和20科課程標準》中指出:信息技術學科幫助學生掌握信息技術基礎知識與技能、增強信息意識、發展計算思維。在“算法與程序設計入門”模塊中,積極引導學生學編程。
目前,小學階段的編程教學以圖形化編程為主,它是樂高式的玩具語言。在實際的教學當中,我們可以發現,高段學生的數理邏輯能力已經逐步形成,圖形化編程教學的實施會存在以下幾個問題:第一,圖形化編程的模塊擴展有限,它只能實現部分交互性的程序,一些邏輯性強的問題不能解決。第二,圖形化編程不利于學生思維的發散,而在進階編程語言教學中,將計算思維與理論實踐相結合。在課堂教學中,從實際問題出發,對問題分解剖析,思考解決該類問題的算法過程,這也極大程度地提高了學生的計算思維能力。第三,圖形化編程的腳本較為冗長煩瑣,給編程員的視覺閱讀效果不佳,這個時候Python編程語言的優勢就凸顯出來了。
因此,針對上述問題,我們在小學高段信息技術教學中加入了Python編程語言。Python自帶的基礎繪圖庫,主要是作為程序設計入門,可以借助Turtle來創作出各式各樣的圖形,我們可以想象一只海龜,位于坐標為0的中心上,通過計算機命令,使海龜能夠運動起來,最終形成了我們想要繪制的圖形。在設計的過程當中,讓學生掌握了基本的程序結構,例如常見的順序、選擇、循環結構等。結合小學高段學生的認知能力,我們設置了11課時的繪圖主題課程,如圖1所示,每個章節以項目化學習的方式落實知識點的滲透,通過小任務促進學生自主探究、合作學習。與此同時,還實現了信息、數學、科學、藝術、英語、美術學科的融合,例如項目中提到的有關數學知識點的物體坐標、畫圓、畫直線等。教師改變了原有編程課的枯燥模式,把課堂還給學生。

圖1
Python的強大之處在于自身帶有許多的庫,而Turtle就是其中之一,它的定義為“海龜”,我們通過“海龜繪圖”一課帶領學生走進編程的世界。設計思路:本節課以創設海龜繪制圖形的情境來激發學生學習的興趣,教師進行講解引入新知,結合教學案例,組織學生自主學習,學生在案例學習中來認識Turtle庫中的基本命令,并通過任務驅動法讓學生運用新知、模仿練習、創新作品、交流展示。
出示各式各樣的多邊形,讓學生猜一猜這些圖形是如何繪制出來的。播放海龜繪制圖形的視頻,揭曉答案。興趣是學生學習最好的出發點,激發學生學習興趣,才能讓學生產生求知的欲望,帶領學生學習,為后續課程講解做好鋪墊。
教師結合繪制正方形案例講解該庫中的基本命令,如圖2所示,教師可以將基本命令表發送給學生便于參考。在編輯器中輸入對應代碼,這個命令是導入一只叫t的“筆”,接著是讓海龜前進100的距離,并向右轉向的角度為90度,最后是讓代碼重復了四次,最后你會看到繪制出的是一個正方形。學生通過案例練習后,理解腳本原理,教師可以基于正方形的任務延伸出多邊形的任務,由此來拓展學生的思維。例如:“三角形需要轉向的角度是多少?”引導學生運用橡皮當作畫筆t來試一試。通過以上案例,我們可以發現該進階編程語言通俗易懂,學生只需要根據問題將基礎命令進行組合,就可以進行交互式繪畫。在課堂中可以看出學生在完成任務時的喜悅感,也為后續的學習增強了信心。

圖2
通過基本命令的學習,引導學生發揮想象力,在任務單上繪制出想畫的圖形,可以參考右表中的命令在編輯器中自主創作,編寫代碼。例如讓畫筆在某個位置進行繪制,還可以同時設置畫筆和圖形的填充色。在本環節當中,可以采取分層教學,讓每位學生的能力和個性差異得到充分的體現,從而實現知識的遷移。學生創作過程當中,積極引導他們歸納總結,不能簡單地停留在完成的作品上,而是對原有作品進行延伸。
根據課堂預留時間,教師挑選代表性作品進行展示交流。在分享環節當中,教師積極鼓勵學生上臺交流,呈現作品以及針對作品講解思路。在整個交流環節中,學生活躍的發言帶動課堂氛圍。通過生生評價、師生評價,學生在交流中發現了在編程過程中遇到的難題,鞏固了本節課的知識點,并在自我反思中提出對作品進行改進的建議與拓展的思路。與此同時,教師針對學生在編程中存在的問題進行整理和知識點歸納、講解。部分學生還能提前將其他命令加入本節課的制作中,如循環、顏色等,為下節課的開展做了鋪墊準備。
根據課堂教學實踐反饋,我們可以看出,小學高段學生的認知以及數學邏輯思維已經形成,他們有能力學習和吸收進階編程課程的內容。與此同時,讓學生提前認識、學習Python也為后續接觸人工智能領域打下堅實的基礎。需要明確的是,編程教育不僅僅是學習編程語言的技巧,而是幫助學生架構新的計算思維模式。通過認識、理解、感受編程語言的算法、邏輯,引導他們在解決實際生活問題當中形成知識技能,而這恰恰是編程教育的目的所在。