甘永龍
【關鍵詞】Scratch圖形化編程;計算思維;對象建模;調(diào)試優(yōu)化
【中圖分類號】G623.58 ?【文獻標志碼】A ?【文章編號】1005-6009(2019)65-0078-03
計算思維是信息技術學科核心素養(yǎng)之一。美國計算機科學家周以真(Jeannette M. Wing)教授認為:計算思維是運用計算機科學的基礎概念進行問題求解、系統(tǒng)設計及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動。[1]在Scratch圖形化編程教學的探索和實踐中,筆者發(fā)現(xiàn),在程序教學的每個環(huán)節(jié)中有重點地培養(yǎng)計算思維的四種意識,能在潛移默化中發(fā)展學生的計算思維能力。
1.增強問題分解意識,在對象建模中弄清角色的邏輯關系。
教學中,我們會發(fā)現(xiàn),學生在用計算機進行程序創(chuàng)編,解決具體問題時往往想到哪里,做到哪里,缺乏問題分解的意識。這要求教師有意識地圍繞實際問題的求解步驟來組織教學,從而使學生運用所學知識將具體問題分解成若干個易于解決的小問題,并抽象出一個個適宜的數(shù)學模型。
例如:要畫出花朵(見圖1),可以先用Scratch中的畫圖工具畫出其中的一片花瓣(見圖2),然后建模,將8個花瓣圍成360°。通過編程將每個花瓣圍繞下端中心點旋轉45°完成自動化繪制,最終畫出花朵。這種從抽象到編程實現(xiàn)的過程非常直觀,有的學生甚至可以在此基礎上創(chuàng)編出更有趣的花朵。
上例中僅有花瓣這一個角色,建模比較簡單。對于復雜的游戲,我們可以通過列表格的方式,描述解決問題所涉及的各種角色以及角色間的關系。如:五年級的“小貓抓魚”游戲是利用搖桿控制小貓移動并統(tǒng)計規(guī)定時間內(nèi)抓魚數(shù)量的游戲。該游戲角色多、任務多、相互之間的關聯(lián)比較復雜,還有許多并行的流程。對此,我們可以通過列表格或畫思維導圖的方式將無形的思維過程轉化為直觀的圖表(見下頁表1)。
問題分解和對象模型建構能讓學生從本質(zhì)上和全局上找到問題解決的思路,明確游戲制作所需的角色,弄清角色之間的相互關系,同時這也能為接下來的局部分析,設計每個角色的造型、腳本、狀態(tài),以及每句指令、參數(shù)、先后執(zhí)行順序提供方向和思路,并能有效發(fā)展學生的計算思維。
2.增強有序組合意識,在腳本設計中培養(yǎng)學生的算法思維。
計算思維中的算法是有窮規(guī)則的集合,是任務執(zhí)行與問題求解的一系列有序步驟。在Scratch中,編程就像在搭積木,學生可以直觀地看到各種腳本設計呈現(xiàn)出的實際效果。筆者在使用表格將大問題分解為一個個現(xiàn)實的小問題后,引導學生有序組合各類積木指令,清晰描述“貓抓小魚”的情景。
由于學生的設計經(jīng)驗不足,學生很難理解算法中的分支結構和循環(huán)結構。為此,教師可以借助流程圖幫助學生描述算法,也可以針對不同的角色,直接拖拽選好的圖形積木指令,不斷嘗試各類指令的有序組合,修改指令的各種參數(shù),完成相應的Scratch腳本設計。以下,圖3、圖4分別為傳統(tǒng)樣式流程圖和積木塊組合式流程圖,兩圖都可以直觀地描述“仿真”貓碰到魚的腳本執(zhí)行情況:貓碰到魚顯示“抓魚”造型,否則顯示“造型1”。
3.增強糾錯優(yōu)化意識,在程序調(diào)試中培養(yǎng)學生的思維品質(zhì)。
“糾錯”是Scratch教學的重要環(huán)節(jié),“優(yōu)化”是腳本程序歸納、簡化、改進的過程。從學生設計腳本程序開始,糾錯和優(yōu)化的行為就伴隨始終。學生在調(diào)試作品時,需要像計算機執(zhí)行程序一樣去思考執(zhí)行語句,知曉執(zhí)行每段積木塊應該出現(xiàn)的現(xiàn)象,并與實際的執(zhí)行結果進行比較。當發(fā)現(xiàn)效果與預想的有偏差時,就要糾錯、優(yōu)化程序,采用不同的算法實現(xiàn)效果。如在“小貓抓魚”的教學過程中,筆者組織學生一起討論腳本運行時的問題,并進行糾錯和優(yōu)化。
師:從舞臺效果看,我們發(fā)現(xiàn)小魚游動的畫面不太真實、比較機械,大家想想怎么辦?
生:在小魚游動的腳本程序中,我們可以添加命令“在1秒內(nèi)滑行到X:-15 Y:13”,使小魚游動的畫面更加自然。
師:當小魚被吃掉隱藏后,如果游戲重新開始,就看不到小魚了,該怎么優(yōu)化?
生:在小魚腳本程序塊中添加初始狀態(tài)為“顯示”。
師:上述實現(xiàn)的是一條小魚,實際情況是應該有好多條小魚,該怎么修改?
生:其他小魚外觀不同、位置不同,功能是相同的(來回游動,碰到貓消失)。
師:外觀不同,可以通過選擇圖庫中不同的角色,也可以利用Scratch繪制,填充不同的顏色。功能相同意味著腳本相同,利用代碼復制可以簡化編程工作。用隨機數(shù)字模塊“在1到10間隨機選一個數(shù)”,就可以解決小魚起點出現(xiàn)在相同位置的問題。
以上教學中,“仔細閱讀腳本”“為腳本添加注釋”“像計算機執(zhí)行程序一樣思考”“尋找舞臺效果與預想情況的偏差”“設計程序作品調(diào)試任務單”等,都是發(fā)展學生計算思維品質(zhì)的好方法。通過這樣的“糾錯”和“優(yōu)化”,程序的腳本設計會更加合理,指令的數(shù)量會更加簡約,呈現(xiàn)的效果會更加生動、豐富。
4.增強交流分享意識,在作品評價中充分體驗成長的快樂。
每一個學生都有自己的知識背景和生活經(jīng)驗,在作品創(chuàng)作中都會加入自己的想法。在教學中,筆者有意識地讓學生展示、分享自己的作品,這既是對學生的肯定,也是引導學生再學習的一種方式。
在“貓抓小魚”游戲的設計和制作中,有的學生將舞臺設置得非常炫酷,添加了動態(tài)的珊瑚、貝殼、海草等海洋角色;有的對魚的造型進行裝飾,甚至把魚換成了星星等其他有趣的角色;有的改變了小貓抓魚的方式,如在水里抓、在岸上釣……作品的交流和分享促進了學生的思考,打開了學生的思維空間,學生的作品比原來更有個性、更有創(chuàng)意。
【參考文獻】
[1]JENANETTE M WING.Computational Thinking[J]. Communications of the ACM,2006(3):34-35.
[2]王志強,毛睿,張艷.計算思維導論[M].北京:高等教育出版社,2012.
[3]牟琴,譚良.計算思維的研究及其進展[J].計算機科學,2011(3):10-15.
(作者單位:南京市高淳區(qū)寶塔小學)