浙江省杭州市丁荷小學(xué) 艾靖雯
隨著信息技術(shù)的快速發(fā)展,教育發(fā)生了翻天覆地的變化。2017年7月,國務(wù)院印發(fā)了《新一代人工智能發(fā)展規(guī)劃》,要求在中小學(xué)階段設(shè)置人工智能相關(guān)課程并逐步推廣編程教育。顯然,編程教育逐步變成信息技術(shù)學(xué)科必不可少的一個重大板塊,而培養(yǎng)學(xué)生的計算思維是學(xué)科的核心素養(yǎng)。因此,編程教育應(yīng)當(dāng)普及化,學(xué)生必須掌握一種適應(yīng)時代的編程語言,將想法通過計算機編程來實現(xiàn)。該語言以簡單、優(yōu)雅、速度快的特點深受大眾的歡迎。它可以通過調(diào)用庫函數(shù)完成諸多任務(wù),幫助解決開發(fā)、大數(shù)據(jù)挖掘、人工智能等各行各業(yè)的問題。
Python是完全面向?qū)ο蟮恼Z言,具有優(yōu)異的擴展性。它可以通過調(diào)用函數(shù)、模塊、對象來擴充。學(xué)生輸入一系列的代碼,借助指令與計算機實現(xiàn)對話,從而更多地關(guān)注到計算思維與邏輯結(jié)構(gòu),以簡單的英語表達句的形式讓代碼易讀、簡單、清晰。該語言具有以下特點:語法簡潔,結(jié)構(gòu)清晰、通用靈活。當(dāng)你理解一個Python程序時,就好比閱讀英語句子。小學(xué)生在整個編程過程中不再過多在意語法問題以及計算機基礎(chǔ)內(nèi)容,把關(guān)注點集中在巧妙運用計算機處理任務(wù)和問題的方法上。這對于小學(xué)生來說,不僅降低了學(xué)習(xí)新的編程語言的門檻,也給他們帶來了很好的學(xué)習(xí)體驗。Python語言教學(xué)能更好地發(fā)展學(xué)生的核心素養(yǎng)。學(xué)生在編程的過程當(dāng)中,會出現(xiàn)一系列的問題,那么要如何處理這些問題?學(xué)生要學(xué)會自主學(xué)習(xí)、查閱資料、尋找同伴的幫助,并找出命令當(dāng)中存在的bug來修改、完善。學(xué)生在修改的同時,不是簡單地學(xué)習(xí)了幾句代碼,而是在整個處理問題的過程當(dāng)中,提高了自己英語閱讀、數(shù)學(xué)邏輯、計算思維的能力。
在小學(xué)高段編程教學(xué)當(dāng)中,通過Python教學(xué)可以讓學(xué)生圍繞問題進行分析—理解—編寫—調(diào)試,也極大地提高了學(xué)生的計算思維能力和實際解決問題的能力。與此同時,將真實情景下的問題作為出發(fā)點,學(xué)生可以將問題與進階編程教學(xué)中的邏輯思維聯(lián)系起來,能夠更好地去理解生活當(dāng)中的設(shè)備的工作原理。
2017年教育部公布的《普通高中課程方案和20科課程標準》中指出:信息技術(shù)學(xué)科幫助學(xué)生掌握信息技術(shù)基礎(chǔ)知識與技能、增強信息意識、發(fā)展計算思維。在“算法與程序設(shè)計入門”模塊中,積極引導(dǎo)學(xué)生學(xué)編程。
目前,小學(xué)階段的編程教學(xué)以圖形化編程為主,它是樂高式的玩具語言。在實際的教學(xué)當(dāng)中,我們可以發(fā)現(xiàn),高段學(xué)生的數(shù)理邏輯能力已經(jīng)逐步形成,圖形化編程教學(xué)的實施會存在以下幾個問題:第一,圖形化編程的模塊擴展有限,它只能實現(xiàn)部分交互性的程序,一些邏輯性強的問題不能解決。第二,圖形化編程不利于學(xué)生思維的發(fā)散,而在進階編程語言教學(xué)中,將計算思維與理論實踐相結(jié)合。在課堂教學(xué)中,從實際問題出發(fā),對問題分解剖析,思考解決該類問題的算法過程,這也極大程度地提高了學(xué)生的計算思維能力。第三,圖形化編程的腳本較為冗長煩瑣,給編程員的視覺閱讀效果不佳,這個時候Python編程語言的優(yōu)勢就凸顯出來了。
因此,針對上述問題,我們在小學(xué)高段信息技術(shù)教學(xué)中加入了Python編程語言。Python自帶的基礎(chǔ)繪圖庫,主要是作為程序設(shè)計入門,可以借助Turtle來創(chuàng)作出各式各樣的圖形,我們可以想象一只海龜,位于坐標為0的中心上,通過計算機命令,使海龜能夠運動起來,最終形成了我們想要繪制的圖形。在設(shè)計的過程當(dāng)中,讓學(xué)生掌握了基本的程序結(jié)構(gòu),例如常見的順序、選擇、循環(huán)結(jié)構(gòu)等。結(jié)合小學(xué)高段學(xué)生的認知能力,我們設(shè)置了11課時的繪圖主題課程,如圖1所示,每個章節(jié)以項目化學(xué)習(xí)的方式落實知識點的滲透,通過小任務(wù)促進學(xué)生自主探究、合作學(xué)習(xí)。與此同時,還實現(xiàn)了信息、數(shù)學(xué)、科學(xué)、藝術(shù)、英語、美術(shù)學(xué)科的融合,例如項目中提到的有關(guān)數(shù)學(xué)知識點的物體坐標、畫圓、畫直線等。教師改變了原有編程課的枯燥模式,把課堂還給學(xué)生。
圖1
Python的強大之處在于自身帶有許多的庫,而Turtle就是其中之一,它的定義為“海龜”,我們通過“海龜繪圖”一課帶領(lǐng)學(xué)生走進編程的世界。設(shè)計思路:本節(jié)課以創(chuàng)設(shè)海龜繪制圖形的情境來激發(fā)學(xué)生學(xué)習(xí)的興趣,教師進行講解引入新知,結(jié)合教學(xué)案例,組織學(xué)生自主學(xué)習(xí),學(xué)生在案例學(xué)習(xí)中來認識Turtle庫中的基本命令,并通過任務(wù)驅(qū)動法讓學(xué)生運用新知、模仿練習(xí)、創(chuàng)新作品、交流展示。
出示各式各樣的多邊形,讓學(xué)生猜一猜這些圖形是如何繪制出來的。播放海龜繪制圖形的視頻,揭曉答案。興趣是學(xué)生學(xué)習(xí)最好的出發(fā)點,激發(fā)學(xué)生學(xué)習(xí)興趣,才能讓學(xué)生產(chǎn)生求知的欲望,帶領(lǐng)學(xué)生學(xué)習(xí),為后續(xù)課程講解做好鋪墊。
教師結(jié)合繪制正方形案例講解該庫中的基本命令,如圖2所示,教師可以將基本命令表發(fā)送給學(xué)生便于參考。在編輯器中輸入對應(yīng)代碼,這個命令是導(dǎo)入一只叫t的“筆”,接著是讓海龜前進100的距離,并向右轉(zhuǎn)向的角度為90度,最后是讓代碼重復(fù)了四次,最后你會看到繪制出的是一個正方形。學(xué)生通過案例練習(xí)后,理解腳本原理,教師可以基于正方形的任務(wù)延伸出多邊形的任務(wù),由此來拓展學(xué)生的思維。例如:“三角形需要轉(zhuǎn)向的角度是多少?”引導(dǎo)學(xué)生運用橡皮當(dāng)作畫筆t來試一試。通過以上案例,我們可以發(fā)現(xiàn)該進階編程語言通俗易懂,學(xué)生只需要根據(jù)問題將基礎(chǔ)命令進行組合,就可以進行交互式繪畫。在課堂中可以看出學(xué)生在完成任務(wù)時的喜悅感,也為后續(xù)的學(xué)習(xí)增強了信心。
圖2
通過基本命令的學(xué)習(xí),引導(dǎo)學(xué)生發(fā)揮想象力,在任務(wù)單上繪制出想畫的圖形,可以參考右表中的命令在編輯器中自主創(chuàng)作,編寫代碼。例如讓畫筆在某個位置進行繪制,還可以同時設(shè)置畫筆和圖形的填充色。在本環(huán)節(jié)當(dāng)中,可以采取分層教學(xué),讓每位學(xué)生的能力和個性差異得到充分的體現(xiàn),從而實現(xiàn)知識的遷移。學(xué)生創(chuàng)作過程當(dāng)中,積極引導(dǎo)他們歸納總結(jié),不能簡單地停留在完成的作品上,而是對原有作品進行延伸。
根據(jù)課堂預(yù)留時間,教師挑選代表性作品進行展示交流。在分享環(huán)節(jié)當(dāng)中,教師積極鼓勵學(xué)生上臺交流,呈現(xiàn)作品以及針對作品講解思路。在整個交流環(huán)節(jié)中,學(xué)生活躍的發(fā)言帶動課堂氛圍。通過生生評價、師生評價,學(xué)生在交流中發(fā)現(xiàn)了在編程過程中遇到的難題,鞏固了本節(jié)課的知識點,并在自我反思中提出對作品進行改進的建議與拓展的思路。與此同時,教師針對學(xué)生在編程中存在的問題進行整理和知識點歸納、講解。部分學(xué)生還能提前將其他命令加入本節(jié)課的制作中,如循環(huán)、顏色等,為下節(jié)課的開展做了鋪墊準備。
根據(jù)課堂教學(xué)實踐反饋,我們可以看出,小學(xué)高段學(xué)生的認知以及數(shù)學(xué)邏輯思維已經(jīng)形成,他們有能力學(xué)習(xí)和吸收進階編程課程的內(nèi)容。與此同時,讓學(xué)生提前認識、學(xué)習(xí)Python也為后續(xù)接觸人工智能領(lǐng)域打下堅實的基礎(chǔ)。需要明確的是,編程教育不僅僅是學(xué)習(xí)編程語言的技巧,而是幫助學(xué)生架構(gòu)新的計算思維模式。通過認識、理解、感受編程語言的算法、邏輯,引導(dǎo)他們在解決實際生活問題當(dāng)中形成知識技能,而這恰恰是編程教育的目的所在。