朱鳳惠 王蘇明 鐘柏昌
在中小學(xué)程序設(shè)計教學(xué)中,教師應(yīng)明確,就基礎(chǔ)教育而言,程序設(shè)計教學(xué)重要的并不是教給學(xué)生語言和語法,而是教給其程序設(shè)計的思想和思維方法,讓學(xué)生能夠用編程來表達(dá)自己的創(chuàng)意和想法,培養(yǎng)其創(chuàng)新能力以及分析問題、解決問題的能力。據(jù)此,筆者在本課選取極具啟發(fā)性和趣味性的“吃豆子”任務(wù),以當(dāng)前基礎(chǔ)教育改革中的“核心素養(yǎng)”理念為目標(biāo)展開教學(xué)。
教材與學(xué)生情況分析
本節(jié)內(nèi)容選自冀教版《Scratch程序設(shè)計》中的第7課,主要涉及隨機數(shù)與動作功能模塊結(jié)合的運用、偵測模塊“碰到‘顏色’”的使用、分支語句的使用、變量的使用,并進(jìn)一步鞏固已學(xué)過的鼠標(biāo)交互、廣播和接收控件的使用,從而完成大嘴巴吃豆子并實現(xiàn)自動計數(shù)的功能。
本節(jié)課的教學(xué)對象是五年級學(xué)生。經(jīng)過前幾節(jié)課的學(xué)習(xí),學(xué)生已經(jīng)熟悉了Scratch的編程界面和各個功能模塊,掌握了其編程方法,他們也對使用Scratch創(chuàng)作有趣的動畫產(chǎn)生了濃厚的興趣,基于積木式的編程能力也有了顯著提升,并且腦海中產(chǎn)生了很多需要通過Scratch來實現(xiàn)的想法。
教學(xué)目標(biāo)
基礎(chǔ)知識與基本技能層(雙基層)目標(biāo):掌握條件語句的使用;掌握顏色偵測控件的用法;掌握變量的使用方法。
問題解決層目標(biāo):能夠利用角色的顯示與隱藏設(shè)計游戲情節(jié);能夠利用變量及循環(huán)結(jié)構(gòu)實現(xiàn)自動計數(shù)功能。
學(xué)科思維層目標(biāo):在游戲制作的過程中,體驗抽象與建模的思想;經(jīng)過對程序的修改,體驗迭代與復(fù)用的思想;了解Scratch功能模塊中積件組合的規(guī)律,體會Scratch自避免語法錯誤的優(yōu)勢,體驗標(biāo)準(zhǔn)化思想。
游戲設(shè)計與實現(xiàn)
1.任務(wù)設(shè)計
基于上述教材和學(xué)情分析,筆者分別預(yù)設(shè)了兩個由易到難、逐步遞進(jìn)的游戲開發(fā)任務(wù)(如表1)。從核心素養(yǎng)的角度來看,任務(wù)一注重雙基層和問題解決層,主要使學(xué)生掌握各個控件的使用方法,能利用所學(xué)知識解決簡單的問題,搭建簡單的游戲腳本。任務(wù)二是任務(wù)一的進(jìn)階版,主要在任務(wù)一的基礎(chǔ)上進(jìn)行修改,強調(diào)學(xué)生對已有作品的再利用和再創(chuàng)造,更注重核心素養(yǎng)中的問題解決層和學(xué)科素養(yǎng),讓學(xué)生在不斷修改與測試的基礎(chǔ)上,體驗迭代與復(fù)用的思想。
2.程序?qū)崿F(xiàn)
“吃豆子1.0”應(yīng)用程序主要由以下四個部分組成:一是多個“豆子”角色隨機運動,可以借助隨機數(shù)控件設(shè)置豆子在屏幕中隨機位置的實現(xiàn)(如圖1);二是當(dāng)豆子碰到大嘴巴時,發(fā)出廣播信號,并消失;三是借助“面向鼠標(biāo)移動”控件,使大嘴巴跟隨鼠標(biāo)運動;四是當(dāng)大嘴巴吃到豆子后,即接收到廣播信號后,嘴巴閉合,并快速切換兩次造型,模擬吃到豆子的效果。
“吃豆子2.0”應(yīng)用程序主要是在上述程序的基礎(chǔ)上添加自動計數(shù)功能?!按笞彀汀焙汀岸棺印苯巧膮⒖寄_本分別如圖2和圖3所示。
需要注意的是,本課中出現(xiàn)了一個新的概念——變量,對此概念的講解主要有兩種教學(xué)思路。一是通過與“常量”進(jìn)行對比,直接講解“變量”的概念;二是不向?qū)W生介紹完整的“變量”概念,而是將變量比喻為一個容器來幫助學(xué)生理解,在“變量”這個容器中可以存儲數(shù)值,并且數(shù)值是可以變化的。在Scratch中創(chuàng)建的變量將在滿足一定條件時自動增加設(shè)定的數(shù)值,從而實現(xiàn)自動計數(shù)。鑒于本節(jié)課的教學(xué)對象是五年級的學(xué)生,常量和變量的概念都未接觸過,即使是從常量的概念出發(fā)來引導(dǎo)學(xué)生理解其含義仍有一定難度,因此在實際教學(xué)中,筆者選擇了第二種方案。
教學(xué)實踐
在本節(jié)課中,筆者主要通過以下四個環(huán)節(jié)來實施教學(xué)。
1.興趣導(dǎo)入
教師向?qū)W生演示游戲“大嘴巴吃豆子1.0”(游戲中的豆子在廚房中隨機運動,大嘴巴在鼠標(biāo)的指引下去追逐豆子,吃到豆子后豆子消失,大嘴巴閉合,并快速切換兩次造型,然后繼續(xù)去追逐其他豆子)。教師提示學(xué)生在觀看游戲的過程中思考該游戲涉及哪些角色,并嘗試分析各角色有哪些行為,這些行為可以用Scratch中的哪些功能模塊來實現(xiàn)。
2.任務(wù)分析
對任務(wù)的分析是培養(yǎng)學(xué)生分析問題和解決問題能力的基礎(chǔ)。因此在開始制作之前,教師先讓學(xué)生欣賞游戲,再說一說該任務(wù)中的角色和各個角色所具有的行為,以及可能用到的相應(yīng)控件,這是培養(yǎng)學(xué)生分析問題的能力的過程,最后要求學(xué)生完成表2和表3中的任務(wù)分析。
3.任務(wù)挑戰(zhàn)
在腳本搭建之前,筆者先拋出問題:如何判斷豆子遇到大嘴巴?遇到大嘴巴之后,豆子是通過什么交互模塊發(fā)出信號的?對于第二個問題,很快就會有學(xué)生聯(lián)想到以前學(xué)習(xí)過的廣播與接收控件。但是對于第一個問題,大部分學(xué)生都存在困惑,此時,筆者帶領(lǐng)學(xué)生一起認(rèn)識“顏色偵測”控件、“隱藏”控件以及“面向鼠標(biāo)指針”移動控件,由于大嘴巴和豆子的顏色不同,因此可以用“碰到‘顏色’”的方法來判斷大嘴巴是否吃到豆子,“隱藏”控件可以用來模擬豆子被吃到即消失的效果,“面向鼠標(biāo)指針”移動控件則可以用來模擬大嘴巴跟隨鼠標(biāo)移動的效果。最后筆者提出任務(wù)一:完成大嘴巴在鼠標(biāo)指引下吃豆子的程序。學(xué)生自主探究,在不斷地測試和調(diào)試下完成該任務(wù)的腳本搭建。
接著,筆者提出任務(wù)二:對大嘴巴吃到的豆子進(jìn)行計數(shù)。首先,讓學(xué)生人工計數(shù)被吃掉的豆子的數(shù)量。學(xué)生經(jīng)體驗發(fā)現(xiàn),在數(shù)量較少時人工計數(shù)尚可,但數(shù)量足夠大時,人工計數(shù)就比較費時費力。此時,筆者引入“變量”,在Scratch中創(chuàng)建一個新的變量,在滿足一定條件時自動增加設(shè)定的數(shù)值,從而實現(xiàn)自動計數(shù)。其次,筆者拋出問題:用來計數(shù)的“變量”在什么情況下會自動增加?學(xué)生很快就會想到是對被吃掉的豆子的數(shù)量進(jìn)行計數(shù),所以豆子被吃掉以后“變量”自動增加。這樣,本課中最大的難點就解決了。然后,筆者給學(xué)生充足的探究時間,讓學(xué)生自主探究或者以小組合作的形式完成任務(wù)二,在不斷測試和調(diào)試過程中發(fā)現(xiàn)問題并解決問題。如果學(xué)生仍未解決問題,引導(dǎo)學(xué)生回顧該課的重點知識:“顏色偵測”控件的兩種顏色是否選擇正確、廣播控件的使用是否得當(dāng)、“變量”的使用是否正確等。最后,筆者與學(xué)生一起分享優(yōu)秀作品并點評。
4.課堂總結(jié)
筆者對本節(jié)課進(jìn)行了總結(jié),并告訴學(xué)生利用Scratch可以制作很多有趣的小游戲,游戲制作最重要的就是創(chuàng)意,要養(yǎng)成勤動腦、多動手的好習(xí)慣?!扒趧幽X”就是要善于思考,并養(yǎng)成隨時記錄的好習(xí)慣,因為有些創(chuàng)意在腦海中會稍縱即逝;“多動手”就是要善于將自己的創(chuàng)意付諸實踐,用程序?qū)ⅰ翱障搿弊兂涩F(xiàn)實,爭取做行動上和思想上的雙重巨人。
教學(xué)反思
本課的教學(xué)重點是“顏色偵測”控件的使用方法、利用變量實現(xiàn)自動計數(shù)、抽象和模塊化、測試和調(diào)試程序。從任務(wù)完成情況來看,所有學(xué)生都完成了任務(wù),但由于課堂時間有限,為了照顧大多數(shù)學(xué)生的學(xué)習(xí)進(jìn)度,本課并未設(shè)置拓展任務(wù)。因此,本課還需改進(jìn)的地方就是可以適當(dāng)增加拓展提升,讓學(xué)有余力的學(xué)生繼續(xù)進(jìn)行探索發(fā)現(xiàn)。整體來說,整個教學(xué)過程生動有趣,學(xué)生在玩中學(xué),在學(xué)中玩,提高了分析問題、解決問題的能力。