當今人類在電子資訊科技領域的發展,可說是一日千里。從數年前的互聯網、物聯網、雲端、工業 4.0 到最近的元宇宙,大致已確立了人類未來的生活樣貌,將與電子軟硬體密不可分,無線網路也會和水一樣無所不在,也不可或缺,世界工廠也將從人力密集逐漸轉變成無人工廠。因此,傳統學術界的科系壁壘將被打破,單一領域的研究發展也會逐漸式微,在這股資訊科技的潮流下,我們要如何讓孩子提前作準備呢?
我們知道英語是目前世界共通的語言(Language),語言是人與人之間的溝通工具。從人類未來的生活形態來看,能夠和機器溝通也變成了一種技能,那人類要如何和機器溝通呢?那就是使用程式語言(Programing Language)。程式語言的種類非常多,像是 C、C++、Java、ASP、JavaScript、C#、Python 等…,它們都是指令語法式(Syntax)程式語言,需要記憶大量的指令或語法,對於年紀較小的孩子來說,接受度普遍不高。但相對地,圖像積木式(Block)程式語言,大幅降低了學習上的困難度,不需要背誦複雜的語法,並且提供圖形化界面,簡單地使用滑鼠拖曳積木方塊,就能開始設計程式了。
Block 雖然簡化了語法,但就邏輯設計的角度看來,它和 Syntax 是相同的概念。坊間 Block 編輯器非常多,像是Scratch、mBlock、Kittenblock、Mixly、Webduino、PictoBlox、MakeCode、S4A、S2A 等…,能搭配使用的硬體開發板(Arduino/ESP8266/STM32/ Micro:bit…)也非常多,能使用的開發設備(PC/iPad/Chromebook…)也有很多款式,我們要如何挑選呢?

首先,我們先來介紹一下 Scratch,它是美國麻省理工媒體實驗室(MIT)所設計的一款開源(Open Source)圖像積木式程式語言,可免費使用,但 Scratch 本身並不支援任何硬體開發板,需要另外安裝外掛才行。早期的 2.0 離線(Offline)版需要安裝 Flash 元件,目前已經發展到 3.0,擺脫了 Flash 的羈絆,使用 HTML5 技術研發而成,可用瀏覽器直接線上編輯 Block 程式,也就是俗稱的網頁(Web)版。
Q1.要續抱 Scratch 家族嗎?
既然 MIT 已經將 Scratch 開源了,為了讓我們熟悉的 Scratch 也能控制硬體開發板,各協力廠商也紛紛開發出很多的Scratch 版本,像是 mBlock、Kittenblock、PictoBlox 等…,讓我們先前對 Scratch 的(時間)投資得以延續下去。
Q2.要搭配哪款硬體開發板?
如果是初學者,我們比較建議使用的開發板是 Arduino UNO R3,因為它的軟硬體相關學習資源非常多,其支援的外部感測模組也很齊全,很多學校和教育單位都把它當作標準教材,關於 Arduino Q&A 可參考這裡。比較不推薦 Micro:bit 開發板的原因是,它不容易進行二次開發,且邏輯電壓使用 3.3V,許多外部感測模組都不支援,另外就是不易擴充 Block 的問題。
Q3.既有的開發設備有支援嗎?
如果我們已經有 PC、Laptop 或 iPad 了,就可以選擇有提供 Offline 或 Web 版的積木程式編輯器;如果你擁有的是Chromebook,就只能使用 Web 版,所以在挑選積木程式編輯器的時候,需特別留意該款編輯器是否有支援你的開發設備。
Q4.有支援脫機運行嗎?
有些積木程式編輯器無法讓硬體開發板脫機運行,像是 S4A、Webduino 這類的編輯器。所謂的脫機運行指的是開發板能否跳脫開發設備而獨立運作,這也是一項重要的指標,如果不能脫機運行(通常是 Firmata 架構),你的創作將會很難精簡化,且必須永遠依附在開發設備上。
Q5.方便自行擴充軟體積木嗎?
有些積木程式編輯器無法自行擴充 Block,或是擴充 Block 的過程很繁瑣。如果我們需要用到一些硬體模組,而編輯器卻沒有提供對應的 Block 可以使用,也沒有提供 Block 擴充工具讓我們方便開發的話,那就要審慎評估了,因為你的創作將會受到極大的限制。
Q6.是獨立的積木程式編輯器嗎?
有些積木程式編輯器不是獨立運作的,而是以 Broker 的形式依附在 Scratch,像是 S2A、Transformer 這類的外掛,其使用者體驗(User Experience)比較不直覺。
積木程式編輯器比較表



