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