倪凌云
計(jì)算機(jī)正深入到我們生活的方方面面,帶有編程功能的電飯煲、洗衣機(jī)、汽車等設(shè)備比比皆是,我們面臨的是一個(gè)越來越程序化的世界。美國總統(tǒng)奧巴馬專門錄制視頻,呼吁“編程關(guān)乎美國的未來,我們需要孩子們熟練地掌握這些技術(shù)”。2014年12月,美國白宮宣布,包含全美7個(gè)最大的學(xué)區(qū)將加入普及計(jì)算機(jī)程序課程的行列,超過60個(gè)學(xué)區(qū)承諾將提供計(jì)算機(jī)類課程,該專案將惠及全美1000多所國中的400多萬青少年學(xué)生。這些孩子們所用的編程軟件均為Scratch。而我國江蘇省早在2013年9月就把Scratch加入到蘇科版小學(xué)信息技術(shù)四年級(jí)教材中,今年已是全省推廣的第三年。以“想象·編程·分享”為設(shè)計(jì)宗旨的兒童編程軟件Scratch如何在小學(xué)開展?下面筆者結(jié)合自己的教學(xué)實(shí)踐談一些認(rèn)識(shí)。
一、自底向上,分步實(shí)現(xiàn)
自底向上是一種設(shè)計(jì)程序的過程和方法,就是先編寫出基礎(chǔ)程序段,然后再逐步擴(kuò)大規(guī)模、補(bǔ)充和升級(jí)某些功能,它實(shí)際上是一種自底向上構(gòu)造程序的過程。
根據(jù)小學(xué)生年齡特點(diǎn),其統(tǒng)籌規(guī)劃能力和邏輯思維能力還存在欠缺。為此,如果把復(fù)雜程序的各種要求一下子呈現(xiàn)給學(xué)生,他們很可能會(huì)產(chǎn)生畏難情緒。根據(jù)維果斯基的“最近發(fā)展區(qū)”理論,我們應(yīng)該創(chuàng)設(shè)“學(xué)生能跳一跳摘到果實(shí)”的任務(wù)。果子高度恰當(dāng),學(xué)生跳起來后能進(jìn)入“最近發(fā)展區(qū)”,一跳再跳,形成一個(gè)又一個(gè)“最近發(fā)展區(qū)”。這樣學(xué)生自主學(xué)習(xí)的積極性就能到得充分調(diào)動(dòng),從而使其對(duì)學(xué)習(xí)產(chǎn)生極大的興趣,進(jìn)而快樂、愉快地學(xué)習(xí)。所以,對(duì)于一些功能相對(duì)復(fù)雜的大程序的編寫,應(yīng)采用自底向上、分步實(shí)現(xiàn)的原則,將大程序的多個(gè)知識(shí)點(diǎn)拆分到不同的課時(shí)中,分階段、循序漸進(jìn)地完成各個(gè)部分的制作,最后總結(jié)回顧,梳理整個(gè)制作過程。
在《大魚吃小魚》程序制作中,筆者設(shè)計(jì)成如下三個(gè)課時(shí):
第一課時(shí):快樂的魚兒。
故事大綱:藍(lán)藍(lán)的海底中,美麗的魚兒在快樂地游動(dòng)。
制作要點(diǎn):隨機(jī)數(shù)的使用,使用隨機(jī)數(shù)實(shí)現(xiàn)魚兒隨機(jī)出現(xiàn)、旋轉(zhuǎn)角度隨機(jī)、移動(dòng)步數(shù)隨機(jī)、等待時(shí)間隨機(jī)的效果。
第二課時(shí):鯊魚來了。
故事大綱:在第一課時(shí)的基礎(chǔ)上增加如下內(nèi)容:“大鯊魚出現(xiàn)了,小魚遇到大鯊魚馬上被吃掉。不斷有小魚游過來,游過來的小魚又成為鯊魚的美食。”
制作要點(diǎn):鯊魚跟隨鼠標(biāo)移動(dòng);小魚遇到鯊魚后隱藏,等待一段時(shí)間后再次出現(xiàn)。
第三課時(shí):分?jǐn)?shù)和計(jì)時(shí)器的加入。
故事大綱:在第二課時(shí)的基礎(chǔ)上增加如下內(nèi)容:“鯊魚吃到無毒的小魚,分?jǐn)?shù)增加;吃到有毒的紅色小魚,分?jǐn)?shù)減少。游戲設(shè)定時(shí)間限制?!?/p>
制作要點(diǎn):?jiǎn)⒂糜?jì)時(shí)器,程序一開始把計(jì)時(shí)器歸零,重復(fù)判斷時(shí)間是否超過30秒,如果是就結(jié)束游戲;新增“分?jǐn)?shù)”變量,程序一開始把分?jǐn)?shù)歸零,鯊魚每吃到一條無毒小魚,分?jǐn)?shù)增加10分,每吃掉一條有毒的紅色小魚,分?jǐn)?shù)減少10分。
二、表達(dá)自己,展現(xiàn)創(chuàng)意
Scratch軟件能輕松幫助學(xué)生游走于創(chuàng)意與現(xiàn)實(shí)之間,Scratch項(xiàng)目的負(fù)責(zé)人凱倫·布雷南博士也曾說過:“我們的目的不是要?jiǎng)?chuàng)建計(jì)算機(jī)程序編寫大軍,而是幫助計(jì)算機(jī)使用者表達(dá)自己。”所以,Scratch軟件不僅是編程語言,還是創(chuàng)作工具、表達(dá)工具。國內(nèi)率先進(jìn)行Scratch教學(xué)嘗試的王繼華老師也提出“為創(chuàng)作而教”的理念。
在學(xué)習(xí)第16課《街舞男孩》后,有學(xué)生將主角由一人復(fù)制成一隊(duì),相同的表演方式,整齊劃一的動(dòng)作,增加了表演的氣勢(shì);有學(xué)生用顏色特效給舞臺(tái)增加了燈光效果,加上了麥克風(fēng)、鼓號(hào)等道具;有學(xué)生增加了演員陪同小丑一起進(jìn)行表演;還有學(xué)生增加了拿著熒光棒歡呼、雀躍的觀眾。
在學(xué)習(xí)第17課《穿越迷宮》時(shí)教師進(jìn)行了拓展,在通道上加上遇到就要回到起點(diǎn)的障礙物。
學(xué)生舉一反三,進(jìn)行了如下設(shè)置:
鯊魚和海星
故事大綱:鯊魚在蔚藍(lán)的海洋中游著,碰到海星游戲結(jié)束。鯊魚在行進(jìn)的途中若遇到帶箭頭的柵欄,行進(jìn)速度變慢,若遇到龍蝦,返回起點(diǎn)。
小鳥和蟲子
故事大綱:小鳥在通道中飛翔,吃到蟲子游戲結(jié)束。小鳥在行進(jìn)的途中若遇到在通道中移動(dòng)的巫婆返回起點(diǎn)。
小馬吃草
故事大綱:小馬在迷宮中奔馳,吃到青草游戲結(jié)束。小馬在行進(jìn)的途中若遇到翅膀不停開合的大蝴蝶返回起點(diǎn)(只有翅膀合上才能通過),掉入地洞(地洞口時(shí)而開啟、時(shí)而合上)游戲失敗。
拯救猴子
故事大綱:獅子要在迷宮中拯救自己的好朋友小猴子。獅子在行進(jìn)的途中若吃到幸運(yùn)餃子體形變小,若遇到紅色點(diǎn)則可以直接穿越到黃色點(diǎn),若遇到火龍(隔時(shí)碰火)須回到起點(diǎn)。
三、取長補(bǔ)短,作品分享
蕭伯納說過:“你有一個(gè)蘋果,我有一個(gè)蘋果,我們彼此交換,每人還是一個(gè)蘋果;你有一種思想,我有一種思想,我們彼此交換,每人可擁有兩種思想。”上課鈴響后幾分鐘的學(xué)生自我展示是筆者課堂不可缺少的環(huán)節(jié),學(xué)生可以通過自我推薦或教師推薦的方式上臺(tái)演示自己的作品。當(dāng)學(xué)生滿意自己的作品時(shí),他們便有尋求認(rèn)同的迫切欲望;當(dāng)學(xué)困生有了點(diǎn)滴進(jìn)步時(shí),教師便可推薦這一類學(xué)生上臺(tái)展示。這一環(huán)節(jié)很好地鼓勵(lì)了學(xué)生,讓他們感受到成功的喜悅,好的創(chuàng)意又啟發(fā)了其他學(xué)生,交流中碰撞出的思維火花極有可能激發(fā)新的創(chuàng)意。同時(shí),Scratch提供了方便的作品共享功能,學(xué)生可以將編好的程序上傳到官網(wǎng)(http://scratch.mit.edu)與全世界各地的小朋友分享,也可以從該網(wǎng)站下載他人的程序進(jìn)行分析。學(xué)生在相互借鑒中,取長補(bǔ)短,對(duì)自己的程序反復(fù)調(diào)整、修改、完善,最后形成相對(duì)滿意的作品。學(xué)生作品由簡(jiǎn)單到復(fù)雜、由幼稚到成熟的過程,也是學(xué)生提升編程技術(shù)、學(xué)會(huì)合作學(xué)習(xí)、磨練意志的過程。
四、教學(xué)建議
1.小學(xué)教材Logo、Scratch并存改為去除Logo保留Scratch
Logo語言與Scratch軟件均來自麻省理工學(xué)院,雖師出同門,但這兩款軟件有各自的側(cè)重之處。Logo語言的設(shè)計(jì)目的是“要?jiǎng)?chuàng)建一個(gè)數(shù)學(xué)園地,讓孩子們能夠使用通常的詞匯和句子作為計(jì)算機(jī)命令來玩數(shù)學(xué)”;Scratch軟件的設(shè)計(jì)宗旨是“創(chuàng)作和分享你自己的交互故事、游戲、音樂和藝術(shù)”。從兩個(gè)軟件的設(shè)計(jì)初衷也可以看出,Scratch對(duì)小學(xué)生的吸引力遠(yuǎn)大于Logo語言。我個(gè)人看法是有了Scratch后Logo語言完全可以舍棄,在Scratch教學(xué)中適當(dāng)補(bǔ)充與數(shù)學(xué)相關(guān)的知識(shí)即可。例如,教授完第15課《畫筆的“秘密”》后,增加利用畫筆繪制正多邊形、利用圖章進(jìn)行旋轉(zhuǎn)或平移重復(fù)構(gòu)圖形成有規(guī)律的復(fù)雜圖形,用于實(shí)現(xiàn)Logo語言中repeat命令繪制正多邊形和repeat嵌套的效果。
2.初中教材將把VB調(diào)整為Scratch游戲設(shè)計(jì)
VB是微軟在Basic語言基礎(chǔ)上發(fā)展起來的可視化高級(jí)編程語言,用戶可以將工具箱中的按鈕、文本框、圖片框等控件直接添加到窗體,所見即所得地搭建自己所要編制的程序界面。但VB學(xué)習(xí)仍需要一定的代碼記憶,特別是對(duì)于英文基礎(chǔ)不是很好的中學(xué)生來說,代碼記憶量就更大了。VB中對(duì)象、對(duì)象的屬性、方法和事件更是抽象難懂的概念。這些都是中學(xué)生VB學(xué)習(xí)的攔路虎。VB當(dāng)初設(shè)計(jì)時(shí)針對(duì)的就是成年人,而不是廣大中學(xué)生。
個(gè)人認(rèn)為學(xué)生在小學(xué)時(shí)就已經(jīng)有了Scratch基礎(chǔ),到了初中不必另起爐灶學(xué)習(xí)一種新的語言,完全可以繼續(xù)利用Scratch進(jìn)行較為復(fù)雜程序的編寫。首先可帶著學(xué)生學(xué)習(xí)軟件自帶的各種范例,接著再編寫類似彈球、打地鼠、接元寶、打飛機(jī)、植物大戰(zhàn)僵尸等程序。從前期設(shè)計(jì)時(shí)劇本的設(shè)計(jì),到中期制作時(shí)舞臺(tái)的搭建、角色的分配、腳本的書寫,到后期反復(fù)調(diào)整與修改,復(fù)雜程序的設(shè)計(jì)經(jīng)歷將使我們的學(xué)生成為一個(gè)邏輯清晰、思維縝密、善于利用計(jì)算機(jī)表達(dá)自己的創(chuàng)意與想法的人。
雖說貓爪叩響了小學(xué)編程教學(xué)的新紀(jì)元,但Scratch教學(xué)在中小學(xué)還是一個(gè)新事物,還需要老師們不斷的探究和嘗試,衷心希望有一天學(xué)生們能真正愛上程序設(shè)計(jì)課堂。