Scratch是世界上最大的兒童編碼社區(qū),是一種具有簡單視覺界面的編碼語言,主要面對全球青少年開放,允許青少年創(chuàng)作數(shù)字故事、游戲和動畫,并通過將它們上傳到Scratch網(wǎng)站與在線社區(qū)分享。Scratch由麻省理工學院的“終身幼兒園團隊”開發(fā),在2007年作為可下載的桌面應用程序推出。在麻省理工學院開發(fā)和支持超過15年后,Scratch于2019年底從麻省理工學院分拆出來并入Scratch基金會。
Scratch是一種具有簡單視覺界面的編碼語言,可以通過Scratch創(chuàng)建自己的交互式故事、游戲和動畫,并與世界各地的其他人分享創(chuàng)作。它促進計算思維和解決問題的能力、創(chuàng)造性的教學和學習、自我表達和協(xié)作以及計算領域的公平性。Scratch 始終免費,并提供70多種語言版本。
Scratch專為8至16歲兒童設計,但適合所有年齡段的人使用。數(shù)以百萬計的人在各種環(huán)境中創(chuàng)建Scratch項目,包括家庭、學校、博物館、圖書館和社區(qū)中心。學生可以使用Scratch進行各個級別(從小學到大學)和跨學科(例如數(shù)學、計算機科學、語言藝術(shù)、社會研究)的學習。
Scratch的1.4版本、2.0版本和3.0軟件版本分別是用Smalltalk、Flash和HTML5開發(fā)的。
Scratch1.x時期
Scratch1.x采用Smalltalk編寫。作為“OLPC(One Laptop per Child,每個孩子都有一臺電腦)”項目的一部分,Smalltalk提出一個建議的語言學習順序,其中的每種語言都被設計成下一種的入門和基礎。這個順序是:Scratch-Etoys-Squeak-任意Smalltalk。在學習的過程中,每一種語言都提供了圖形化的編程環(huán)境,不僅是用于教會孩子們一些編程的概念,而且是包含物理和數(shù)學知識的模擬及講述故事的一些練習。Smalltalk和Squeak作為全功能的應用程序開發(fā)語言,在過去的數(shù)十年中已經(jīng)變得十分有名了,而Scratch是孩子們學習的工具。在整個1.x系列中,Scratch官網(wǎng)基本保持不變。該版本的Scratch和網(wǎng)站沒有聯(lián)系(除了發(fā)布程序)。這在2.0時期中發(fā)生了變化,人們可以在網(wǎng)頁里制作程序。
Scratch2.0時期
Scratch2.0是由andresmh于2010年1月在Scratch論壇上發(fā)布的。它采用Flash編寫,支持了矢量圖。Scratch2.0分為離線版和在線版,在線版允許直接在Web瀏覽器里創(chuàng)建、編輯和查看項目(不再需要上傳、下載項目或者安裝其它軟件),可以使用云變量。離線版則只能本地制作程序,且無法使用云變量。
Scratch2.0離線版在Scratch官網(wǎng)提供下載,便于在無法連接Internet的情況下使用,2.0版本加強了與外部鏈接設備的互動,例如Lego Wedo等。2020年,更加先進的3.0版本發(fā)布后,官網(wǎng)不再提供Scratch2.0編輯器。
Scratch3.0時期
Scratch3.0放棄了Flash,采用了HTML5來編寫,HTML5是最新的HTML、CSS和JavaScript的總和,Scratch3.0首先將會使用WebGL、Web Workers和Web Audio Javascript Libraries。JavaScript是一種廣泛的語言,它支持所有瀏覽器和WebGL,從而跨平臺使用。它經(jīng)過了精心挑選,JavaScript運行不需要任何額外的插件。
Scratch3.0這個名字首先是由Scratch團隊的Andrew Sliwinski在2016年5月提出的。2018年1月,Scratch3.0的第一個公測版本(Scratch 3.0 beta)在Scratch官網(wǎng)上發(fā)布,Scratch3.0在線編輯器的發(fā)行版本在2019年1月發(fā)布,而離線編輯器在2019年1月后也提供下載使用。
Scratch3.0不僅僅是重構(gòu),也增加了一些功能,比如“移到最后面”積木、“文字朗讀”“翻譯”擴展等。編輯器的外形看起來更加柔美,支持多次撤銷和重做。Scratch3.0保存的文件格式為.sb3,但它也可以讀取.sb和.sb2文件。
菜單欄
導航欄是每個Scratch頁面頂部的欄。包含鏈接到首頁的Scratch圖標、單擊時會打開語言列表的地球圖標、文件和編輯菜單、教程等。用于文件新建、加載、保存、教程查看及作品搜索。當一個人在軟件中向上或向下滾動時,導航欄會保持在原位,始終可以快速訪問。
代碼塊選擇區(qū)
代碼塊選擇區(qū)位于主界面屏幕左側(cè)的區(qū)域。包含Scratch中的九個代碼塊類別,在類別的右側(cè),顯示該類別對應的代碼塊。這些塊可以拖到代碼區(qū)中來制作腳本。擴展按鈕位于代碼塊選擇區(qū)的左下角,它允許用戶添加自定義代碼塊作為擴展模塊,這些擴展代碼塊將被添加到代碼塊選擇區(qū)中,例如與其他設備通信的塊。
代碼編輯區(qū)
代碼編輯區(qū)是代碼塊選擇區(qū)右側(cè)的大空間,它是一個淺灰色的矩形。它是用于存儲運行項目的塊的區(qū)域??梢詫K從代碼塊選擇區(qū)拖動到代碼編輯區(qū)中,并排列成腳本。每個角色都有自己的腳本,可以在角色區(qū)選擇角色。
要在Scratch中編碼,只需從代碼塊選擇區(qū)中拖出塊并將它們組裝到代碼編輯區(qū)中即可。可以在該區(qū)域更改代碼塊的值。滾動條向各個方向延伸該區(qū)域??梢允褂檬髽嘶蛴|摸板垂直滾動代碼區(qū)域。觸摸板還可以水平滾動該區(qū)域。
舞臺
舞臺是顯示角色并執(zhí)行其操作的區(qū)域。它位于頁面右側(cè)區(qū)域頂部。所有角色在舞臺上都有特定的位置。它默認大小寬 480像素,高360像素。舞臺自身也可以有腳本、背景及聲音。
角色區(qū)
角色區(qū)位于代碼編輯區(qū)和舞臺下方。它允許創(chuàng)作者快速切換角色并查看每個角色包含的不同腳本。在代碼編輯區(qū)使用的所有角色都會列表在此,可以通過單擊角色來訪問它們,每個角色有各自的腳本、造型及聲音。在角色的上方,有一個區(qū)域包含角色的名稱、位置、大小和方向,這些屬性可以直接在此處更改。
繪畫編輯器
繪畫編輯器是Scratch的內(nèi)置造型和背景編輯器。許多創(chuàng)作者使用它制作自己的角色和背景。這些圖像包含兩種圖形類型:矢量圖形和位圖(光柵)圖形。矢量圖形將對象存儲為形狀或數(shù)學曲線而不是像素。這使得矢量圖形看起來更平滑,因為它們可以無限放大而不會出現(xiàn)像素化。位圖圖形,也稱為光柵圖形,將圖像存儲為網(wǎng)格結(jié)構(gòu)中的像素數(shù)組。這使得它們更容易繪制和操作,但會導致它們在放大時顯得模糊或像素化。
繪畫編輯器最左邊的部分是造型窗格。它由用于創(chuàng)建新服裝的按鈕以及每個服裝的圖標組成,包括其造型編號和名稱,以及一個小預覽。在造型窗格中,列出了所選角色的每種造型。要在繪畫編輯器中編輯不同的造型,只需從窗格中單擊所需的服裝即可。
聲音編輯器
聲音編輯器允許人們制作、查看和編輯角色和舞臺的聲音。左側(cè)的聲音列表用于在編輯區(qū)域中選擇要編輯的聲音。單擊聲音將選擇它,所選聲音的右上角還有一個“X”,用于刪除聲音。右鍵單擊聲音將顯示三個選項:復制、導出和刪除。編輯區(qū)域是聲音列表右側(cè)和舞臺左側(cè)的部分。它的頂部有一個條形圖,中間有一個聲音,底部有幾個工具,包含“快一點”、“慢一點”、“響一點”等效果。
Scratch代碼由代碼塊排列連接組成,代碼塊共包含9個主要類別、11個擴展類別和3個樹莓派擴展類別。
運動塊
運動塊處理角色的移動。它們主要與角色的x和y位置和方向有關(guān),舞臺不包含任何運動塊,因為它是一個靜止對象。
外觀塊
外觀塊與角色和舞臺的外觀有關(guān)。其中一些功能是更換造型和應用圖形效果。
聲音塊
聲音塊與播放各種聲音有關(guān),無論是MIDI音符還是保存的聲音。
事件塊
事件塊與項目中的各種觸發(fā)器相關(guān),或者當一個部分向另一個部分發(fā)出運行信號時使用。
控制塊
控制塊以所需的方式運行項目的基本流程,無論是有預計的還是突發(fā)的。它們提供了循環(huán)各種塊和腳本的功能。它們“控制”項目并增強其運行。
偵測塊
感應塊與角色和舞臺檢測條件相關(guān)聯(lián)。例如,偵測塊可用于檢測一個角色何時接觸另一個角色。
運算塊
運算塊用于處理項目中的許多數(shù)學函數(shù),提供簡單到復雜的數(shù)學運算功能,包含加減乘除等數(shù)學運算塊、大小比較塊、邏輯運算塊和字符運算塊。
變量塊
變量塊包括兩個子類別:變量和列表,兩者都與存儲和訪問數(shù)據(jù)相關(guān)。變量塊用于存儲信息,例如項目中的分數(shù),并將其用于代碼編寫等其他有益的目的。變量子類別用于保存與控制變量,例如修改變量值、顯示隱藏變量。列表子類別是包含多個變量的變量,可以向列表中插入、刪除或替換變量。
自制積木
自制積木是為選定角色保存自定義過程的塊。這些塊對于運行腳本和組織腳本非常有用。還可以將布爾值、數(shù)字和字符串輸入添加到自制積木。
Scratch官方運營維護Scratch在線社區(qū),用戶能夠?qū)⑺麄兊捻椖糠窒碓赟cratch網(wǎng)站并獲得反饋。項目可以直接從軟件上傳到Scratch網(wǎng)站,社區(qū)的任何成員都可以查看和下載完整的源代碼以進行研究。
Scratch團隊與社區(qū)合作,為所有年齡、種族、民族、宗教、性取向和性別認同的人維護一個友好和尊重的環(huán)境。用戶可以在開放的學習社區(qū)中與來自不同背景、年齡和興趣的其他用戶一起探索和實驗。成員可以分享他們的工作、獲得反饋并相互學習。
一年一度的Scratch大會提供了一個機會,可以供人們交流探索使用Scratch編程和學習的創(chuàng)新方式。其參與者可以與來自全球Scratch社區(qū)的教育工作者、開發(fā)人員和研究人員分享想法、討論策略并參加實踐研討會。
2008年7月24-26日,MIT的Scratch團隊舉辦了第一次的全球Scratch社群聚會“Scratch@MIT”,約有300多位老師、研究學者、軟件開發(fā)者前來參與,該研討會的目的是:
分享Scratch是如何在家里、教室、社區(qū)中心被使用的故事。
參與要親自動手操作的工作坊,學習Scratch的新技巧和策略。
研討孩子們用Scratch學會了些什么。
和MIT的Scratch團隊一起探索Scratch的未來發(fā)展方向。
研討會第一個講題是Sowing the Seeds for a More Creative Society,由MIT媒體實驗室的龍頭老大Mitchel Resnick主講。
第二個講題是:Imagine-Program-Share:Stories from the Scratch Online Community(想象-編程-分享:Scratch線上社群的故事)。Scratch團隊對孩子們十分重視,他們邀請四個在Scratch線上社群很活躍的孩子從世界各地參加本次會議的開幕演講。
JSOS來自比利時,13歲
MyRedSbeptune來自俄羅斯,13歲
SonicPopsb來自英格蘭,10歲
Wodunne來自美國,15歲