遊戲化學習程式教育程式語言

用 Scratch 學程式設計,可不是玩玩而已

2019-12-25

瀏覽次數:33016

一句話回答:Scratch 是美國麻省理工學院(MIT)開發的視覺化兒童程式語言,學的不只是「怎麼拼積木」,而是序列、迴圈、條件式等程式邏輯核心概念,以及「表達、連結、提問」這三種運算性觀點——也就是未來最重要的溝通、整合與分析能力。正因為 Scratch 讓孩子跳過英文和語法的障礙,才能更早、更深地建立真正的程式思維。

橘子蘋果進行兒童程式教學至今,經常被問到這些問題:

「我的小孩不見得會成為工程師,學程式設計幹嘛?」

「我知道程式設計很重要,但是學 Scratch 真的算是程式設計嗎?」

「他們的學校已經有教 Scratch 了,和你們教的有什麼不同呢?」

或許利用這個機會,好好來解釋一下,我們是怎麼用 Scratch 將孩子引入門的。

首先,Why Scratch?為什麼選擇視覺化積木語言?

Scratch 是美國麻省理工學院開發的一套兒童程式語言,特色在於沒有複雜的文字指令,所有的指令都是以視覺化的積木來呈現。要完成一個程式,只要像組合積木一樣,就可以完成一個程式。因此,完全沒有程式設計經驗的孩子可以立刻上手,開始設計程式。

麻省理工這群全世界最厲害的人才當然有能力開發另一套文字程式語言,像是 Ruby 或 Python。但是小朋友的思考模式畢竟和青少年及成人不同:

  • 思考較直觀
  • 對於英文的掌握能力較弱

因為以上兩點原因,使得孩子難以掌握如 C、Java、Python 等文字介面的程式語言,但事實上小學的孩子就有能力掌握程式邏輯了。Scratch 的誕生,就是為了讓孩子「跳過」以上這兩個障礙,用更親切、直觀的方式來寫程式,訓練程式邏輯並培養程式設計的基本 knowhow

來自麻省理工的三大教條:Scratch 課綱背後的學術框架

MIT media lab 在開發 Scratch 的同時,也撰寫了一份課綱,敘述學童應該學會的幾項重要觀念。

Scratch運算性觀念

1. 運算性觀念(Computational Concepts)

在程式的建構中,有許多的重要概念,是不分語言、彼此共通的。例如最基本的序列(Sequence)、迴圈(Loops)以及資料(Data)。Scratch 的設計中,便融入了這些重要的元素。

程式設計七大元素:

  1. 序列(Sequence)
  2. 迴圈(Loops)
  3. 平行化(Parallelism)
  4. 事件(Events)
  5. 條件式(Conditionals)
  6. 運算子(Operators)
  7. 資料(Data)

2. 運算性實作(Computational Practices)

當然,在了解程式運作的原理以及基本構成外,接著要進入的是真正的程式設計實作。但在一個完整的軟體,並非一蹴可及,而是階段性、反覆修正、甚至要將程式切割並模組化。這些概念都是軟體工程的重要基礎。

運算性實作

可能很多家長對於程式設計有些誤解,認為這些概念太偏門,只有就讀相關科系的人才會用到,但其實不然。舉例來說,「反覆、漸進式開發」(Being iterative and incremental)在生活中到處可見,無論是學習、考試、創作。一步步的前進,並隨時修正學習方式,其實就是很多人的成功秘訣。

3. 運算性觀點(Computational Perspectives)

如果你認為程式教育就只是教孩子複雜的邏輯、演算法,那以下 MIT 提出的運算性觀點應該會讓你改變想法:

運算性觀點
  1. 表達(Expressing):學習如何正確表達目的、程式需求、以及實作方式。
  2. 連結(Connecting):程式是為了滿足人的需求而產生的,所以要了解「為別人」或「和別人一起」寫程式的樂趣與力量。
  3. 提問(Questioning):一個不斷進步的人才,是懂得時時質疑眼前的問題的,培養提問的習慣,便能在不知不覺間養成透徹的洞察力。

以上幾點跟數理能力幾乎一點關係都沒有,但卻是這個世代最重要的能力——「溝通、整合、與分析」。

橘子蘋果的 Scratch 課和學校教的,差在哪裡?

先不論大多小學、中學的電腦課只教 Word、Excel 等軟體這件事實,少數願意教小朋友寫 Scratch 的學校,往往只能最基本的解釋如何操作 Scratch。在沒有適當引導、傳授 Computer Science 重要觀念的情形下,孩子往往失去興趣,也無法照心目中的想法將程式實作出來,這是相當可惜的。

橘子蘋果的 Scratch 程式設計課程就是嚴謹遵循以上來自麻省理工的程式設計教條,一步步的引導孩子進入程式邏輯思維,培養解決問題的能力。

不是教你寫出複雜的演算法,而是教你如何解決問題

在這個什麼都 Google 得到的時代,用搜尋得到的資訊來解決問題不是難事,這個世代的孩子在未來面臨最大的挑戰將是:「如何解決從沒出現過的問題」以及「適應產業快速的變遷」。

我們的下一代,準備好面對資訊時代了嗎?

常見問題 FAQ

Scratch 學完以後,下一步是什麼程式語言?

橘子蘋果的課程路線是:Scratch 菁英課程(4 年級起)→ Python 程式開發班(7 年級起)→ JavaScript / HTML5 / 資料庫(9 年級起)→ 演算法 / AI 班(進階)。Scratch 是入口,學好了以後轉 Python 時,孩子通常只需要適應「文字指令」的表達方式,程式邏輯本身早已建立,學習速度會快很多。

幾歲開始學 Scratch 最合適?

橘子蘋果的 Scratch 菁英課程建議從 4 年級(約 10 歲)開始,這個年齡的孩子邏輯理解能力已足夠,同時在 Scratch 的視覺積木幫助下,不會因英文不熟練而卡關。更小的孩子(1–3 年級)可以先從橘蘋玩創啟蒙系列開始,像是頑皮艾伯特基礎程式班,建立程式思維的初步印象。

學校有教 Scratch,為什麼還需要另外學?

學校的 Scratch 課通常是入門操作,重點是「讓孩子知道有這個工具」,而不是「讓孩子真正學會用程式思維解決問題」。差別在於:是否有老師引導孩子理解序列、迴圈、條件式這些核心觀念,是否讓孩子完成一個真正能運作的作品,以及是否給孩子時間犯錯、除錯、再改進。這些才是 MIT 課綱真正強調的學習過程。

我的孩子對數學不好,適合學程式嗎?

非常適合,而且程式思維反過來還能幫助數學理解。Scratch 課程的主要能力是「邏輯推理」——如果做這件事,就會發生那件事;想讓角色向右走,應該怎麼寫?這種因果邏輯和數學計算是不同的技能。很多在傳統數學課感到挫折的孩子,在程式課反而找到了成就感,因為程式的邏輯感更直觀,而且能立刻看到結果。

「溝通、整合、分析」這些不是文科能力嗎?學程式真的能培養?

這正是 MIT 課綱最顛覆一般人認知的地方。當孩子在做 Scratch 專案時,他要「表達」自己想做什麼遊戲(需要描述需求)、要「連結」別人的程式看看能不能學習(資源整合)、要「提問」為什麼程式不照預期運作(批判性思維)。這三項能力被 MIT 列為程式教育的核心成果,原因正是它們既是程式能力,也是人生能力。

AI 時代 Scratch 還有學習價值嗎?

AI 工具可以幫大人生成程式碼,但 Scratch 課不是在「教語法」,而是在「建立思維」。能判斷 AI 生成的程式對不對、能把自己的想法正確描述給 AI 理解、能在 AI 做錯時知道問題出在哪——這些能力的根基,正是從 Scratch 課培養的程式邏輯思維。在 AI 越來越普及的時代,這種「指揮者思維」反而更珍貴。

Scratch 是入口,解題思維才是目的地

  • 橘子蘋果 Scratch 菁英課嚴格遵循 MIT 程式教育課綱
  • 每堂課讓孩子做出真正可以運作的作品,不只學操作
  • 免費試聽一堂,讓孩子先感受「我做出一個程式了!」的成就感