Scratch是由MIT的LLK團隊專門為兒童設計的積木式(也叫圖形化)編程軟件。Scratch簡單易學,且趣味性十足,深受全球兒童的喜歡,是小朋友們開始編程啟蒙的首選軟件。值得一提的是,Scratch是開源軟件,其源代碼是公開的。市面上許多積木式編程軟件(這里就不點名啦)其實都是在Scratch源代碼基礎上開發(fā)的,因此和Scratch大同小異。小朋友們想學習編程,認準Scratch就可以啦!
Scratch又分為兩個版本,分別適合不同年齡段的小朋友們。其中ScratchJr是Scratch的裁剪版,更適合5~7歲的學齡前兒童。Scratch3.0是Scratch的最新版,更適合8~10歲的低年級學生。
如前所述,ScratchJr功能更加簡單,比較適合5~7學的齡前兒童。Scratch3則相對比較復雜,適合8~12歲的低年級學生。學齡前兒童在學習ScratchJr之后,很容易就可以過渡到Scratch3。一二三年級小學生已經(jīng)有了一定的知識儲備,理解能力也更強,可以直接從Scratch3學起。我們在后文會詳細介紹二者在功能和操作上的各種差異。學習少兒編程的諸多好處我們有專門的文章進行介紹,這里就不贅述了,家長朋友們可以按照下面這幅圖來為自己的孩子選擇合適的。
ScratchJr專門針對手機和平板電腦設計,更適合觸摸屏設備,小朋友們拖拖拽拽就可以操作,非常簡單。Scratch3由于功能更加復雜,比如可以響應鼠標和鍵盤事件,因此更適合在筆記本電腦和臺式機上安裝。雖然ScratchJr可以在手機上安裝,但是我們并不推薦。因為手機屏幕太小,長時間盯著手機屏幕看可能會影響孩子們的視力。
在ScratchJr里,編程積木塊是橫著擺放的,更適合觸摸屏設備。在Scratch3里,編程積木塊則是豎著擺放,更適合在筆記本電腦和臺式機上操作。
ScratchJr面向的是學齡前兒童,因此刻意削減了編程積木塊的種類和數(shù)量,只能編寫一些較為簡單的動畫、故事或者小游戲。ScratchJr沒有分支積木,因此是非圖靈完備的。Scratch3則有完備的編程積木塊,比如各種分支和循環(huán)積木,是圖靈完備的編程語言,可以編寫出非常復雜的故事或者游戲。
Scratch3其實已經(jīng)非常接近真正的代碼編程語言了,比如Python、Swift等。小朋友們通過Scratch3入門以后,很輕松就可以過渡到代碼編程語言,用英文而非積木塊來編寫程序。
除了內(nèi)置積木塊,Scratch3還支持自制積木塊,也就是利用現(xiàn)有的積木塊制作新的積木塊。另外,Scratch3還可以添加擴展積木塊,增加畫筆、視頻偵測、文字朗讀等積木塊,并且可以通過擴展為Micro:bit迷你板或者樂高EV3機器人等硬件設備編程,這些都是ScratchJr所不具備的。
看過話劇的小朋友們都知道,話劇演出需要一個舞臺,舞臺可以有不同的背景(幕布),各種角色們可以在舞臺上盡情的表演。與此類似,Scratch里也有一個虛擬的舞臺。在ScratchJr里,舞臺在屏幕上半部分的正中央。在Scratch3里,舞臺在右上角。
在ScratchJr里,我們可以添加最多4個舞臺,每個舞臺都可以獨立放置各種角色,并且可以通過組合積木塊對每一個角色進行編程。Scratch3則更接近現(xiàn)實中的劇場,也即只有一個舞臺,但是可以切換不同的背景,并且背景也沒有數(shù)量限制。在Scratch3里,也是可以通過組合積木塊給每一個角色編程。不僅如此,Scratch3還可以給每一個背景進行編程。因此,相對于ScratchJr,通過Scratch3可以編寫出復雜的多的故事和游戲。
ScratchJr和Scratch3都自帶了許多背景圖片和角色,如果這些自帶的背景和角色不夠用,還可以通過自帶的繪圖工具來繪制背景或者角色。ScratchJr和Scratch3的繪圖工具大同小異,都比較簡單,但足夠小朋友們畫出各種好看的背景和角色了。
ScratchJr和Scratch3繪圖板的一個比較大的不同之處是可選顏色的數(shù)量。ScratchJr繪畫板只有40種顏色可供選擇,不過應該也夠用了吧,畢竟面向的是學前班小寶貝們。相比而言,Scratch3的繪畫板可選的顏色那可就多了。Scratch3繪畫板使用了HSB(顏色、飽和度、亮度)色彩模型,可以在幾百萬種顏色之中選擇,而且支持漸變等效果,足夠用了!
ScratchJr和Scratch3都有播放聲音的積木塊,都自帶了一些聲音,也都支持通過話筒錄制聲音。
ScratchJr和Scratch3都有消息機制,不同的角色之間可以通過收發(fā)消息來進行互動。在ScratchJr里,消息是由信封來表示的,通過顏色來區(qū)分。ScratchJr消息只有6種顏色,因此可以傳遞的信息非常有限。在Scratch3里,消息是通過文字來表示的,不同的文字就表示不同的消息,因此可以傳遞的信息基本沒有限制。
ScratchJr的舞臺是基于網(wǎng)格的,一共有15x20個網(wǎng)格。我們可以通過舞臺上方左數(shù)第二個按鈕來打開或者隱藏網(wǎng)格,如下圖所示。舞臺上的每個角色都有一個中心點,我們可以通過這個中心點的行號和列號來定位它。另外,角色的移動也是基于網(wǎng)格的。上下左右移動積木塊的默認移動格數(shù)是1,可以改成其它整數(shù)。雖然ScratchJr也有旋轉積木塊,但是它只能旋轉角色本身,無法改變角色的移動方向。
圖形化編程界面:Scratch Jr采用圖形化編程語言,孩子們不需要輸入復雜的代碼,而是通過拖拽和組合形狀來編程。這樣的設計使得編程更加直觀和有趣,降低了入門門檻,讓孩子們能夠快速上手。
創(chuàng)造性表達:Scratch Jr鼓勵孩子們發(fā)揮想象力,通過自己的創(chuàng)造力來設計故事、游戲和動畫。它提供了豐富的角色、背景和聲音資源,孩子們可以自由選擇和運用這些資源,創(chuàng)造出屬于自己的作品。
多媒體編程:Scratch Jr支持多媒體元素的編程,孩子們可以通過拖動圖像、錄制聲音和添加背景音樂,為自己的作品增添更多的互動和趣味。
社區(qū)分享:Scratch Jr提供了在線社區(qū),孩子們可以將自己的作品分享給其他人,還可以觀看和學習其他人的作品。這樣的分享機制,不僅能夠激發(fā)孩子們的創(chuàng)造力,還能夠讓他們從互動中學習和成長。
適齡性:Scratch Jr針對4-7歲的孩子設計,軟件界面簡單直觀,操作容易上手,很容易引起孩子們的興趣。而且,Scratch Jr注重培養(yǎng)孩子們的邏輯思維和創(chuàng)造力,循序漸進地引導孩子們進行編程學習。
互動性:Scratch Jr支持孩子們分享自己的作品和觀看他人的作品,這樣的互動和交流機制能夠激發(fā)孩子們的學習興趣,并且從中學習到更多的知識和經(jīng)驗。此外,Scratch Jr還提供了豐富多樣的角色和背景資源,可以讓孩子們創(chuàng)造出更加生動有趣的作品。
創(chuàng)造性表達:Scratch Jr鼓勵孩子們發(fā)揮想象力,以自己的創(chuàng)造力來設計故事、游戲和動畫。這樣的創(chuàng)造性表達方式,不僅能夠提高孩子們的創(chuàng)造力和創(chuàng)新能力,還能夠培養(yǎng)他們的問題解決能力和邏輯思維能力。
培養(yǎng)未來技能:編程已經(jīng)成為了21世紀的一項重要技能,未來的就業(yè)市場對于懂得編程的人才需求也將越來越高。通過Scratch Jr的學習,孩子們可以從小開始接觸和了解編程,培養(yǎng)他們未來需要的技能和思維方式,為他們的未來發(fā)展打下堅實的基礎。