尤作林
本文探討了小學(xué)圖形化編程的教學(xué)目標(biāo),提出教學(xué)安排,以游戲化項(xiàng)目式教學(xué)方法實(shí)現(xiàn) Python編程的圖形化編程教學(xué),探索從 scratch 到 Python的過(guò)渡方法,對(duì)培養(yǎng)學(xué)生的思維能力及學(xué)習(xí) Python的興趣具有積極作用。
Python當(dāng)前在很多領(lǐng)域都應(yīng)用廣泛,基于 scratch 的圖形化編程是當(dāng)前中小學(xué)學(xué)習(xí) Python的重要方法,為了讓學(xué)生早期接觸 Python,培養(yǎng)計(jì)算機(jī)思維,可以采用 Python圖形化編程的方法,將編程細(xì)化為簡(jiǎn)單、有趣的項(xiàng)目來(lái)學(xué)習(xí)。
教學(xué)目標(biāo)
教學(xué)目標(biāo)在于讓學(xué)生掌握使用 scratch 進(jìn)行圖形化編程的能力,形成對(duì) Python語(yǔ)法的認(rèn)識(shí),可以通過(guò) Python進(jìn)行簡(jiǎn)單編程。就過(guò)程與方法上,通過(guò)教師講解先導(dǎo)知識(shí),學(xué)生通過(guò)協(xié)助學(xué)習(xí)及自主探究的方式,形成對(duì) Python的認(rèn)識(shí)。在圖形化編程的過(guò)程中,增強(qiáng)對(duì)學(xué)習(xí) Python的興趣。
教學(xué)安排
學(xué)習(xí)階段,需要掌握 scratch 圖形化編程軟件的操作方法,基于相關(guān)模塊來(lái)學(xué)習(xí)條件、循環(huán)等編程命令的使用。項(xiàng)目應(yīng)用階段為學(xué)生創(chuàng)作,目的在于提高解決實(shí)際問(wèn)題的能力,如制作門(mén)鈴、樓道感應(yīng)燈和音樂(lè)盒等作品。
這幾個(gè)階段的難度逐漸增加、逐漸復(fù)雜,學(xué)習(xí)過(guò)程中隨著難度的增加及語(yǔ)句的復(fù)雜性不斷提高,學(xué)生可能會(huì)喪失對(duì)學(xué)習(xí) Python的興趣,為了讓學(xué)生始終保持興趣,形成對(duì)Python編程的熱愛(ài),需要教師采用游戲教學(xué)的方法來(lái)提高學(xué)生的學(xué)習(xí)積極性,通過(guò)學(xué)生動(dòng)手操作及運(yùn)行程序來(lái)得到成就感、滿足感。在教學(xué)內(nèi)容安排上,基于學(xué)生不同的年齡段安排符合其年齡、認(rèn)知特點(diǎn)的內(nèi)容,隨著其年齡的增加,抽象程度也逐漸增高。
教學(xué)過(guò)程及設(shè)計(jì)
采用游戲化的項(xiàng)目式教學(xué)。設(shè)計(jì)教學(xué)情節(jié),例如小女孩為小朋友介紹前往 Python王國(guó)的方法(安裝 Python軟件);小蟒蛇帶領(lǐng)小朋友尋找新朋友,介紹使用 Python語(yǔ)言來(lái)通過(guò)電腦來(lái)進(jìn)行交流;采用 Python程序計(jì)算水果總價(jià);幫小動(dòng)物畫(huà)五角星等。
借鑒學(xué)生以往采用 scratch 編程的經(jīng)歷,教師首先為學(xué)生提供成品 Python代碼,用模塊化、圖形化的方法來(lái)讓學(xué)生研究與討論,來(lái)了解代碼的作用與結(jié)構(gòu),弄明白代碼片段的意思,從提供的代碼中選擇片段進(jìn)行拼接及調(diào)試,從而讓代碼正常運(yùn)行。提前為學(xué)生講解程序的結(jié)構(gòu),說(shuō)明核心代碼的作用,從而方便學(xué)生的學(xué)習(xí)。由于學(xué)生都已經(jīng)使用 scratch 進(jìn)行過(guò)模塊化編程,因此這一方法學(xué)生容易理解,可以在短時(shí)間內(nèi)上手。
學(xué)習(xí) Python時(shí),引導(dǎo)學(xué)生在實(shí)際體驗(yàn)、探索的過(guò)程中來(lái)學(xué)習(xí)。例如教師編寫(xiě)“抽獎(jiǎng)”小游戲的 Python代碼,讓學(xué)生先抽獎(jiǎng),在實(shí)踐過(guò)程中了解代碼的作用、程序的結(jié)構(gòu)。為學(xué)生提供編寫(xiě)好的代碼,讓學(xué)生將整個(gè)代碼視作圖形來(lái)分析程序的結(jié)構(gòu),通過(guò)拼接來(lái)探索邏輯運(yùn)算符的作用,幫助學(xué)生認(rèn)識(shí)抽獎(jiǎng)游戲的實(shí)質(zhì)。通過(guò)程序來(lái)模擬游戲化情境,為學(xué)生說(shuō)明游戲的方法,比一比誰(shuí)贏得最多,從而提高學(xué)生參與學(xué)習(xí)的熱情。對(duì) scratch 案例進(jìn)行分析,讓學(xué)生以自己熟悉的形式來(lái)認(rèn)識(shí)抽獎(jiǎng)程序的算法結(jié)構(gòu),從而自然地轉(zhuǎn)到 Python的學(xué)習(xí)。學(xué)習(xí)時(shí)復(fù)習(xí)隨機(jī)數(shù)的生成,為學(xué)生提供能從 1~9 中隨機(jī)生成整數(shù)的代碼,學(xué)生自行嘗試將代碼修改為從 1~3 中隨機(jī)生成整數(shù)的代碼。學(xué)生成功完成操作后,教師再次為學(xué)生展示代碼,講解抽獎(jiǎng)活動(dòng)的邏輯是生成隨機(jī)數(shù)并進(jìn)行比較,從而判斷是否中獎(jiǎng)及獎(jiǎng)項(xiàng),之后讓學(xué)生嘗試編寫(xiě)該程序,如圖 1 所示。完成后教師提出具體要求“玩家有 100 枚硬幣,每次抽獎(jiǎng)費(fèi)用10 枚硬幣,當(dāng)抽到一等獎(jiǎng)、二等獎(jiǎng)、三等獎(jiǎng)時(shí)分別獎(jiǎng)勵(lì) 30枚、20 枚、10 枚硬幣,繼續(xù)提供代碼,讓學(xué)生對(duì)代碼進(jìn)行拼接,探索玩家中獎(jiǎng)的概率。之后從商家角度來(lái)探討該如何優(yōu)化游戲才能提高自己的效益,如降低二等獎(jiǎng)中獎(jiǎng)概率、減少獎(jiǎng)勵(lì)硬幣數(shù)量、增加抽獎(jiǎng)所需硬幣數(shù)量等,從而讓學(xué)生認(rèn)識(shí)到算法的重要性。學(xué)生成功嘗試后,教師可以為學(xué)生展示基于 Python 的智能算法并發(fā)放給學(xué)生,讓學(xué)生通過(guò)游戲認(rèn)識(shí)到該算法如何讓玩家早期獲利,后期越玩越虧。
教學(xué)評(píng)價(jià)
教學(xué)評(píng)價(jià)包括了總結(jié)性評(píng)價(jià)及過(guò)程性評(píng)價(jià)。總結(jié)性評(píng)價(jià)發(fā)生于課堂結(jié)課時(shí),學(xué)生完成綜合性作品或項(xiàng)目,教師對(duì)完成情況進(jìn)行評(píng)價(jià)。過(guò)程性評(píng)價(jià)發(fā)生于學(xué)習(xí)過(guò)程中,由家長(zhǎng)、同學(xué)、教師共同參與評(píng)價(jià)。
Scratch 軟件可以為小學(xué)生學(xué)習(xí) Python帶來(lái)很大助力,通過(guò)圖形化編程來(lái)培養(yǎng)計(jì)算機(jī)思維,是一種行之有效的方式?;?STEAM 理念的指導(dǎo),采用游戲化的教學(xué)方法來(lái)讓Python課程的學(xué)習(xí)變得更加有趣,提高學(xué)生對(duì)編程的興趣。