我為甚麼讓孩子學編程?

構思這個題目已好一陣子了,只是自己一直都在懶,直到近日終於有一個令我不寫不可的理由……

兩年前,大魔跟很多小朋友一樣喜歡打機。我心想,與其完全禁止,倒不如順從他的興趣,讓他學習編寫程式,了解製作電子遊戲背後的原理。由於不肯定他是否真的感興趣,所以就先從暑期班開始。那時候,小朋友學習編程在香港仍未算普及。

十堂暑期班完結了,問他可有興趣繼續,他肯定的點頭。就這樣,大魔便由最初的 Scratch、MIT App Inventor 2 一直學到現在剛開始的 JavaScript。兩年以來,他每逢星期六早上都會自動自覺起床,甚至催促我和暴龍爸起床送他上編程課,這樣主動和積極,平日除了玩基本上不會看到。

兩個月前,他參加了一個 AppJamming 比賽,使用 MIT App Inventor 2 製作了一個名叫「Smile」的 App,目的是令人快樂。為了這個比賽,他由構思、草擬 mind map、設計版面、落實寫 codes、修改 codes 以至準備 presentation,都很努力和主動。幸運地,他最強進入了 16 強,並獲得最佳創意獎。作為母親,我當然替他感到高興和自豪,那尤其在於他在整個過程中的積極態度,以及希望帶給別人快樂的一顆善心。

然而,其後一篇有關的訪問報道卻無端惹來批評,說 10 歲小朋友失去靈魂、母親虛偽等。對於這些留言,我感到莫名其妙 —— 到底一個希望透過自己製作的 App 來逗人快樂的小朋友,為甚麼會是失去了靈魂?一個讓孩子自己決定是否繼續學習編程的母親,為甚麼會是虛偽?大概留言的人誤以為,大魔是被我所迫,而他這個年紀學習編程是另一個過早操練的個案。我明白在網絡上,揣測、批評以至單一的標籤歸類,都可在彈指間作出,我本可對這些留言一笑置之,但對於小朋友學習編程這一事,我卻想多說一點點。

程式語言,被喻為「數碼世代的國際語言」(The global language of the digital age)。意識到程式語言的重要性,現時多個國家已經將編程教育納入小學課程。根據由 31 個歐洲國家及地區教育部門組成的 European Schoolnet 於2015 發表的一份報告,法國、英國、西班牙、愛沙利亞、芬蘭、比利時等 8 國歐洲國家,都已經在小學課程中加入編程教育。此外,瑞典亦宣布於 2018 年開始,由小學一年級起教授編程以及如何分辨網上真假新聞。在亞洲,新加坡、馬來西亞、南韓以及香港等地區亦已有相關計劃。

在正規學校以外,一些熱心人士及非牟利組識,更於網上提供免費的編程學習資源及推行免費編程體驗活動,例如 Hadi Partovi 和 Ali Partovi 兄弟創辦了 code.org,又如本地的CityU Apps Lab 與非牟利機構 Let’s Code (Hong Kong) 合辦 Hour of Code 活動。後者每月舉辦工作坊,大小二魔也曾於某個周末參加過一次,看見 CityU Apps Lab 的張教授手抱幼女落力講解,心裏著實敬佩他願意付出私人時間義務推廣編程教育。

只要看清楚世界各地的情況,大家不難看到本港的編程教育已然落後。更重要一點是,小朋友學習編程的工具,一點也不艱澀,例如上述提及的 Scratch 和 MIT App Inventor 2,都是一些採用積木形式、色彩繽紛的視覺化工具,而非像一般基於語法(Syntax-based)的艱澀程式語言。那些有趣的工具能讓小腦袋輕易創作出各式小遊戲、小動畫和小工具,小朋友學起來大多會一試愛上。且試看小朋友上一次編程課,相信大家在門外也能聽到他們的歡笑聲、討論聲。相對於我們這一代「digital immigrants」,從小已接觸電子產品的「digital natives」對編程的熱愛和投入程度,比你我所想像的都要高很多。

另一個問題是,學習編程就只是單單讓小朋友學懂編寫程式嗎?MIT Media Lab 的資深研究科學家 Kipp Bradford 表示,在學習編程的過程中,我們還會學到其他東西,除了算術和運算能力,還有解難和溝通的能力。「They are not just learning to code, they are coding to learn」,這有如培養閱讀能力:「learn to read, read to learn」。對於這個說法,我有很深的感受 —— 由於小魔年紀尚小,他還沒開始上編程課,但在哥哥的薰陶下,他在家中已自行製作了許多個簡單的小遊戲和動畫。而且不論大魔或小魔,為了完成自己的作品,都會主動地問我一些中英文字怎麼寫,又會自己上網或看書查找資料,如此主動學習,都是因為他們由興趣出發,而編程正好引發了他們的興趣。

從興趣出發,讓小朋友以遊戲方式發揮創意,並從中訓練邏輯及運算思維,是學習編程的最大益處。誠然,當教育局準備把編程納入小學課程,同時有越來越多家長讓小朋友學習編程時,我們必須關注和提醒自己:這最終又會否令編程淪為另一門僅遵循 step by step 教學、講求標準答案和考試分數的學科?畢竟,要推行編程教育,由教育局、老師以至家長都需要明白,mindset 與 skillset 同樣關鍵,要怎樣教、怎樣推行,都必須仔細考量。今天在這裏記下,也是對自己的一個警惕。

參考資料及延伸閱讀:

“Let’s teach kids to code” (TEDx Talk by Mitch Resnick)
https://www.ted.com/talks/mitch_resnick_let_s_teach_kids_to_code

“Computer Science is foundational” (TEDx Talk by Hadi Partovi)
https://www.youtube.com/watch?v=m-U9wzC9xLk 

“Computing our future”
http://www.eun.org/c/document_library/get_file?uuid=3596b121-941c-4296-a760-0f4e4795d6fa&groupId=43887 

“Learn to Code, Code to Learn”
http://web.media.mit.edu/~mres/papers/L2CC2L-handout.pdf

“Why Kids Should Learn to Code”
https://exchange.telstra.com.au/2015/05/22/why-kids-should-learn-to-code

“Why Schools Should Teach More Than Basic Coding”
http://time.com/4261554/why-schools-should-teach-more-than-basic-coding

“Swedish kids to learn computer coding and how to spot fake news in primary school”
https://www.thelocal.se/20170313/swedish-kids-to-learn-computer-coding-and-how-to-spot-fake-news-in-primary-school

“President Obama Is the First President to Write a Line of Code”
https://obamawhitehouse.archives.gov/blog/2014/12/10/president-obama-first-president-write-line-code

Code.org
https://code.org

Hour of Code HK
https://hourofcode.com/hk

Howard Gardner & Katie Davis. (2014). The App Generation. Yale University Press.


〉大魔為了 AppJamming 比賽,由構思、草擬 mind map、設計版面、落實寫 codes、修改 codes 以至準備 presentation,都很積極和主動。


〉為了製作這個 Galaxy Map 小資料庫,大魔主動地在網上查找資料。


〉小魔雖然沒正式上過編程課,但在哥哥的薰陶下,也自行用 Scratch 製作了一些簡單的小遊戲和動畫。

圖、文:Silly Mom
https://www.facebook.com/sillymomblog