摘 要:Scratch是一款積木式的兒童編程軟件,學(xué)生可以把自己的所思所想以作品的形式進(jìn)行呈現(xiàn)。在創(chuàng)作的過程中他們也會遇到各種問題和困難,通過創(chuàng)角色表、問題分解、策略變換、遷移應(yīng)用、善于查錯等解決問題的策略指導(dǎo),讓他們體會到學(xué)習(xí)的樂趣,提高解決問題的能力。
關(guān)鍵詞:Scratch;小學(xué)生;解決問題;策略
Scratch是一款面向少年兒童的可視化編程軟件,通過積木組合的形式讓兒童創(chuàng)造出個性化的故事、動畫、游戲、音樂、藝術(shù)。小學(xué)信息技術(shù)課堂教學(xué)引入Scratch,給學(xué)生的想象力和創(chuàng)新思維提供了施展的舞臺,讓創(chuàng)作變得如此輕松和快樂。在創(chuàng)作過程中遇到的各種問題,通過教師進(jìn)行有效地解決策略指導(dǎo),使學(xué)生獲得創(chuàng)造性思考、邏輯推理和協(xié)調(diào)工作的機(jī)會以及利用算法思維方式去解決實際問題的能力。
一、 創(chuàng)角色表——理清關(guān)系,描述指令
一個完整的Scratch作品,必定包含著多個角色,它們都有自己所要實現(xiàn)的功能,并且存在著相互間的各種聯(lián)系。利用角色分析表,幫助學(xué)生清楚直觀地描述角色,理解它們間的相互關(guān)系。以創(chuàng)作《天亮了》動畫為例,先讓學(xué)生觀察范例,了解動畫的基本內(nèi)容:太陽從左下角慢慢升到了天空,草地漸漸清晰起來,母雞媽媽領(lǐng)著一群小雞來覓食啦。在此基礎(chǔ)上指導(dǎo)學(xué)生完成角色分析表:
學(xué)生剛接觸角色分析表時可以使用填空的方式,如上述表格中的動作描述填空,旨在幫助學(xué)生理解每個角色出現(xiàn)的時機(jī),相應(yīng)的動作等要素。再逐步指導(dǎo)學(xué)生自己獨立完成相應(yīng)作品中的角色分析。
二、 問題分解——化整為零,各個擊破
小學(xué)生在Scratch作品的開發(fā)過程中,最大的障礙不在于技術(shù)儲備的不足,而在于不能正確分析和分解問題,沒法將一個看似復(fù)雜的未知問題分解成已知的,簡單的問題。造成學(xué)生學(xué)習(xí)自信心下降,作品完成度不盡如人意。教師要幫助學(xué)生學(xué)會把作品進(jìn)行合理的分解,把復(fù)雜的、籠統(tǒng)的問題拆解成一個個小的、可執(zhí)行開展的問題,找到合適的切入口,通過擊破一個個“點”來完成最終的“面”。在設(shè)計“吃豆人”游戲時,通過角色分析表的幫助,學(xué)生理清了豆子、吃豆人、怪物、迷宮等角色間的關(guān)系,這時就著重引導(dǎo)學(xué)生對每個角色所要實現(xiàn)的功能逐一分解解決。如在實現(xiàn)“吃豆人”角色的功能時,先解決如何實現(xiàn)“上下左右移動”,再解決“遇到墻壁怎么辦?”、如何吃掉豆子?遇到怪物如何處理等問題。
再比如:用Scratch繪制如下圖形時,指導(dǎo)學(xué)生觀察出基本圖形是正方形,逐步實現(xiàn)一個正方形、橫向一排、向上疊加的繪制方法,最終實現(xiàn)效果圖的繪制。
把問題逐步分解的策略,在學(xué)生的學(xué)習(xí)和生活中應(yīng)用廣泛,通過這種能力的培養(yǎng)可以幫助他們解決許多看似復(fù)雜的問題,從而更好地適應(yīng)社會和生活。
三、 變換思路——改變想法,優(yōu)化腳本
在解決相似問題的過程中,學(xué)生往往容易造成一定的思維定勢,會形成公式化地解決方法。一旦問題稍有變化,會出現(xiàn)用習(xí)慣性的方法行不通的情況。如在設(shè)計小鳥邊飛邊說話的作品中,學(xué)生習(xí)慣思維是把說話指令放在小鳥角色里,但這樣會出現(xiàn)小鳥飛行不流暢,畫面出現(xiàn)閃爍現(xiàn)象,通過反復(fù)修改腳本仍無法達(dá)到滿意的效果。通過分析發(fā)現(xiàn)這是因為造型切換的過程中,不同造型的中心位置發(fā)生了改變,沒辦法統(tǒng)一中心位置。這時就要幫助學(xué)生嘗試變換思路,另辟蹊徑:新建一個新角色,可以是一個小點,把它放置在小鳥角色身邊,不要讓人發(fā)現(xiàn)它,讓這個小點角色來說話,這樣我們看到的效果就如同小鳥在說,并且也不會再閃爍了。
同一個作品,因為每人的思路不同,看問題的角度不同,解決問題的方法也截然不同。在此情況下,引導(dǎo)學(xué)生對作品、腳本的對比,優(yōu)化解決問題的思路,并能根據(jù)不同的應(yīng)用場景選擇相對優(yōu)化的方法來解決。如:在作品的創(chuàng)作中學(xué)生經(jīng)常會涉及如何控制角色的運動的問題,用鍵盤方式可以使用“事件”中的“當(dāng)按下…鍵”,也可以使用“偵測”中的“按鍵…是否按下?”。用鼠標(biāo)方式可以使用“移動鼠標(biāo)指針”或是“面向鼠標(biāo)指針\\移動..步”等指令。采用的方式不同,相應(yīng)的腳本程序也不一樣,效果也有所不同。這就需要指導(dǎo)學(xué)生根據(jù)作品的要求來選擇合理的解決方法,使腳本更優(yōu)化,作品效果更好。
四、 遷移應(yīng)用——舉一反三,融會貫通
孔子說過:“舉一隅,不以三隅反,則不復(fù)也?!边w移是學(xué)生掌握學(xué)習(xí)方法的最優(yōu)途徑之一。培養(yǎng)學(xué)生遷移能力,是實現(xiàn)“教”且為了最終“不教”的關(guān)鍵,是提高學(xué)生解決問題能力的有效途徑。教師要幫助學(xué)生整理同一類問題的基本解決方法,并把它們遷移到新作品的創(chuàng)作中。如:學(xué)生解決了畫樓梯的問題,可以嘗試改變基本形狀、改變疊放方法等,創(chuàng)作出不同的圖形。
掌握了使角色能夠隨機(jī)位置出現(xiàn)的方法,就可以應(yīng)用到“接紅包”“打飛機(jī)”等作品中,使角色出現(xiàn)的位置不固定,增強(qiáng)了作品的可玩性。同時也要引導(dǎo)學(xué)生善于把其他學(xué)科知識遷移到Scatch作品中。如:要用腳本程序來解決“雞兔同籠”問題,就可以借鑒數(shù)學(xué)學(xué)科中“解決問題的策略”的相關(guān)方法。
五、 善于查錯——正視錯誤,積極改進(jìn)
Scratch本質(zhì)是一種編程語言,在用它來創(chuàng)作時難免會出現(xiàn)各種各樣的錯誤(bug)。許多學(xué)生在遇到錯誤時不善于按照一定的流程或方法去檢查問題,經(jīng)常會發(fā)生草草了事和輕易放棄創(chuàng)作的情況,使得作品達(dá)不到預(yù)期的效果。在實際教學(xué)過程中,師生可以一起收集和整理常見錯誤,形成幫助手冊,創(chuàng)作中遇到問題時嘗試先從常見錯誤中尋找答案。如:使用“如果……”指令時,不把它嵌套在“重復(fù)執(zhí)行”腳本里經(jīng)常會得不到所設(shè)想的效果,而這恰恰又是初學(xué)者最容易犯的錯誤。還要教給學(xué)生一些查錯的技巧,對于一些隱藏很深,一時無法查找的問題,使用“說……2秒”積木是一個不錯的方法。把它嵌入到懷疑的腳本處,通過觀察相應(yīng)的數(shù)據(jù),可以較快地判斷出程序的執(zhí)行情況。
作者簡介:
王惠強(qiáng),江蘇省太倉市,江蘇省太倉市金倉湖小學(xué)。