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