蔡頓理
【摘 要】初中生的計算思維能力是學習的基礎,筆者結合 Scratch 案例教學中存在的一些問題,分析了通過Scratch 作圖培養初中生計算思維的優勢,探索在分析任務、程序實現、定義過程、等方面培養計算思維的方法與策略,通過Scratch 作圖培養初中生的計算思維
【關鍵詞】 Scratch;編程;計算思維
一、培養初中生計算思維的設想
在編程創作中,將程序劃分為小部分并逐一解決,是一種非常重要的思維方式。Scratch2.0的“ 更多模塊”中的“ 新建功能塊”指令的使用能很好的解決程序的模塊化,可以提高程序在結構化和組織上的靈活性;它真正Scratch 帶到編程思維的創作中。由于它的作用等同于過程函數,為了描述方便,以下都稱之為過程函數。
所以以創作簡易的幾何圖形為主題,帶領學生進行對設計變量、函數、遞歸等概念的編程思維訓練,會比較直觀易懂。
但是想要學生在創作互動游戲等作品中直接理解并正確使用過程函數進行模塊化編程,存在一定的困難。圖形看上去復雜,其實一分解,就只有一個最基本的圖形,經過程序迭代之后自動生成,圖形的形成都具有一定的規律性Scratch 軟件中自帶有畫筆模塊,任何一個舞臺中的角色都可以作為一只畫筆,這支筆有兩種重要的狀態:抬筆和落筆。反之,則不會留下痕跡。畫筆的屬性和 Scratch 中其他的指令還增加了 Scratch 作圖的趣味性和互動性。
因此,筆者利用 Scratch2.0 作圖對培養計算思維進行了實踐研究,希望通過在 scratch2.0 中繪制各種創意圖形的案例讓學生體驗問題的解決方法,為創作其他 scratch 作品打下編程的基礎。
二、培養初中生計算思維的策略
1. 分析任務:由外到內逐層分解
充分理解案例,學會分析任務是解決任何編程問題的第一步。理解之后我們可以做出一個大致的解決方案,然后將其劃分為多個主要任務進行突破;幾個主要的任務又可以各自作為大任務再分解成小任務進行解決。我們將這樣的順序稱為由外到內逐層分解。
2. 定義過程:減少程序的漏洞
簡單是程序設計的目標。就像在工廠里的流水生產線往往被劃分成若干個工位,每一個工位執行標準化、程序化的動作,這就是單一責任。在程序設計中,單一責任是指某個代碼的功能,應該保證只有單一的明確的執行任務。任務越單一,代碼越簡單,越簡單的代碼占用時間少,漏洞少,并且易于修改。當其他功能部分發生變化時,也能夠盡可能降低對其他組件的影響。在蜘蛛網的案例中,將每個分步都定義為一個過程。每個過程只做單一的任務,比如 Triangle 只負責繪制某一邊長的正三角形。
定義過程不僅有利于理清編程的思路,也方便程序的調試。在調試程序過程中,可以將總目標分解成一層一層由內向外的過程進行逐一調試。案例中可以先調試是否能畫出一個三角形;調試成功后,再調試是否能成功畫出六邊形,以此類推,直至成功。
三、Scratch 作圖對培養計算思維的意義
進行 Scratch 教學的目標是創造,而為了更好地創造,Scratch 教學的最終目標仍舊應該包含對學生思維的培養,如設計規劃、邏輯推理、創新能力等。因此,對于學生而言,體驗編程的過程、理解編寫意圖比編出完美的動畫更重要。在利用 Scratch2.0 作圖的教學過程中,孩子們學會了問題分析,懂得了邏輯推理,更發揮了自己無限的創意。
1. 通過任務分析提高了算法思維
比如案例“美麗的花團”,要繪制這幅作品,必須由外到內進行逐層分解。
任務分解 內容分析繪制一團花 每支花畫完之后旋轉 60度(360/6)畫下一支花;重復 6次以后就可以得到一團美麗的花。
繪制一支花 移動一段距離后畫一個花瓣代表樹葉;再移動一句距離,畫一朵花;回到起始位置,為繪制下一支花做準備。繪制一朵花 每個花瓣畫完之后旋轉 72度(360/5)畫下一個花瓣;重復 5次以后就可以得到一朵完整的花。
繪制一個花瓣 可以用細小的鋸齒繪制成曲線,作為花瓣的一邊;旋轉 90度后,重復操作繪制另一邊。在由外到內進行逐層分解出具體問題后,就要針對每個具體問題逐一解決。
2. 通過拓展應用提高了想象力
從圖形組合到圖形動畫,極大激發了孩子們的學習興趣,很好地滿足了教學的需求幾何圖形雖然簡單,但在 Scratch2.0中能很好的與計算、推理、益智、游戲等密切結合,因此在教學中給學生留下足夠的探究與創新的空間,提升學生的學習能力。通過比如調用過程函數 Polygon ,經過合理設計,創作出多樣的圖案,凸顯了學生的無限創意。圖7中展示了部分學生調用過程函數Polygon 設計的不同效果。
總之,Scratch 作圖旨在培養學生的編程思維,而非Scratch 指令的系統學習。筆者希望學生通過 Scratch 作圖的學習,學會分析問題、體驗解決問題的方法,并將學習中滲透的計算思維運用到 Scratch 指令的學習中,對 Scratch 作品的創作提供解決問題的策略。
【參考文獻】
[1][ 美 ] MajedMarji 著于欣龍李澤譯 . 動手玩轉 Scratch2.0 編程 [M]. 北京:電子工業出版社,2015.10