那是五月的一個週六下午 我忽然意識到 隔天就是母親節 而我沒有準備任何禮物給我媽 所以我開始思考 我要送他什麼當作母親節禮物呢? 我想到何不為她做一張 互動式的母親節賀卡呢? 使用我開發的塗鴉軟體 Scratch 製作 我的研究小組在麻省理工大學 (MIT) 媒體實驗室所研發的軟體 我們製作了這個軟體,使人們能夠輕鬆創作 他們自己的互動故事、遊戲或者是動畫 並且把這些創作與別人分享 然後我想 這或許是一個好機會 使用這個塗鴉軟體 Scratch 作一張互動賀卡給我媽媽 在做我的母親卡之前 我想到我可以先逛看看 這個塗鴉網站 ( Scratch ) 幾年前開始,世界各地 8歲或更大的孩子們已經開始 透過這個網站分享他們的作品 所以我想 在這300萬件作品裏 會不會有人想到要放上 他們作的母親節賀卡呢 所以我就在搜尋欄中鍵入 「母親節」 之後我驚訝又高興地看到 很多很多的母親節賀卡 在 Scratch 上展示 許多賀卡是在24小時內上載的 像我一樣愛拖延的人 所以我開始瀏覽這些作品(音樂) 我看到一張以小貓 和她的媽媽為主角的卡片,卡片中的 小貓祝媽媽母親節快樂 作者非常貼心地 為他媽媽做了一個重播按鈕 另一個是一件互動作品 當你把鼠標移動到這些"母親節快樂"的字母上面時 它會出現一句特別的母親節祝詞 (音樂) 而在這個作品裏,創作者講述了 她是如何用 Google (谷歌搜尋引擎) 來找出 到底哪一天是母親節 (打字聲) 而當她發現當天就是母親節時 她立即送出了一份特別的母親節祝福 來表達她有多愛她的媽媽 我真的很喜歡瀏覽這些作品 並且與這些作品互動 事實上,由於太喜歡這些作品, 讓我打消了親手製作賀卡的念頭 改為把十多個作品的連結發送給我媽媽 (笑聲) 而實際上,她的反應就正如我希望的一樣 她回覆我並說 「我非常以有這樣的兒子為傲, 因為他能夠打造出一個軟體,使孩子們能夠 製作母親節賀卡送給他們的媽媽們。」 所以我媽媽很高興,這令我也很高興 但事實上我有一個更值得高興的理由 我高興是因為這些孩子能夠按照我們當初設計 Scratch 的用法來使用它 當他們製作互動母親節賀卡的時候 你可以看到他們真的 能夠更熟練地掌握新科技 我說的熟練是指甚麽呢? 我是指他們已經可以開始表達他們自己 並且開始表達他們的想法 當你開始熟練於一個語言時 這意味著你可以在你的日誌上寫一個條目 告訴別人一個幽默的笑話 或者給朋友寫一封信 使用新科技也是很類似這樣 書寫或創作這些互動的母親節賀卡時 這些孩子顯示出 他們有多熟練於這些新科技的使用 你或許對這件事情並不感到驚訝 因為大多數時候人們都認為 現代的年輕人熟於使用科技 做各式各樣的事情 我的意思是,我們都聽過年輕人被稱為 「數碼時代的原住民」 某種程度上 我認為這個用詞是有點問題的 我不太肯定我們應該把年輕人看作 數碼時代的原住民 當你真的看看這個問題,年輕人是怎樣 花大部分的時間使用新科技呢? 你經常看到的情況會是像這樣 或是像這樣的 可以肯定的是 年輕人 可以很輕鬆自在的瀏覽網頁 上網聊天、互通短訊和打電動 但這些並不會真的使你熟練 今天的年輕人有許多與新科技互動的經驗 亦對如何與科技互動相當了解 但使用新科技來創作的人就少得多了 也不擅長透過新科技來表達自己的想法 這就好像在新科技的領域上, 他們雖然懂得閱讀 卻不懂書寫一樣 我真的對於怎樣能夠令年輕人對科技更熟練 使他們能夠使用新科技創作 很感興趣 這表示他們需要能夠 寫自己的電腦軟體,或是程式 很有趣的是人們逐漸地開始發現 學習編寫電腦程式的重要性 你知道最近幾年,這裏有 數以百計的新機構和網站 幫助年輕人學習編寫電腦程式 你看網上有像「編程學院」 Codecademy 這類的地方 有像CoderDojo 一樣的組織 (註: 該組織在世界各地幫助年輕人學習如何寫程式) 又有像「女生愛編程」 Girls Who Code 又或者「黑女編程」 Black Girls Code 這一類的網站 看起來每個人都開始在參與這件事 你知道,就在年初 進入新的一年之際 紐約市長米高.彭博 為他自己定下的新年目標, 就是要在 2012 年中學會編寫電腦程式 數個月後, 愛沙尼亞這個國家決定 該國的一年級學生全部都要學習編寫電腦程式 這在英國激發了一場辯論 探討是否需要得讓全部孩子都必須 學習編寫電腦程式 你們當中有些人在聽到這個提議時 或許會感到有點奇怪, 為什麼每一個人都要學寫程式 當大部人想到編程,他們想到的是 一個很狹隘定義的「亞社群」 是專屬於某些人的活動 他們覺得程式是長這樣的 事實上,假如程式真的長這樣 當然只有很少一群人會碰觸 就是那些擁有特別的數學技能,以及科技背景的人 才會做的事 但編寫程式寫毋須是這樣的 讓我向你介紹在塗鴉軟件Scratch 中編寫程式會是怎樣吧 使用 Scratch 寫程式的話, 你就像是把積木接在一起 在這個情況下,你移動一個積木 把它們堆在一起 那堆積木就會控制 你的遊戲或故事中不同角色的行為 這個例子中,就是要控制那條大魚 當你創造了你的程式後,你可以點擊「分享」 接著你就可以把你的程式與其他人分享 別人可以用你的程式 並且也可以調整成他們自己的 當然,創作一個關於魚的遊戲並不是 Scratch 唯一能夠做的事 在Scratch 網站上數以百萬的作品當中 可以說是包羅萬有, 從動畫故事 到學校科學習作 到動漫肥皂劇 到虛擬建築工具箱 到二次創作的經典電玩遊戲 到政治傾向調查 到三角幾何學教室 到互動藝術作品。對! 還有 互動母親節賀卡 所以我認為這裏有很多的途徑 讓人們可以從中表達自己 跟全世界分享他們的靈感 而且,這不單單局限在電腦螢幕上 你可以利用編寫程式,去和周遭的現實世界互動 這裏有一個來自香港的例子 這些孩子製作了一個遊戲 他們打造了一個實體介面裝置 它有一個光感應器,那個感應器 會感應木板上的那個洞 所以在他們移動那把實體鋸子時 那個光感應器可以感應到那個洞 進而能控制螢幕上的虛擬鋸子 去鋸掉那棵大樹 我們一直在尋找新的方法 去連繫現實與虛擬世界 並且連接我們周遭的世界 這是一個來自新版本Scratch 的例子 將會在數個月之後發佈 我們再次嘗試 來帶給你新的想法 這是一個例子 它用上了網絡攝影機 當我移動我的手,我可以拍破那些氣球 又或者移動那蟲子 這有點像微軟的 Kinect 裝置 讓你可以用身體語言跟世界互動 但與其參與其他人的遊戲 你可以創作你自己的遊戲 如果你看到別人的遊戲 你可以說 「讓我們來看看裏面長甚麼樣」 你可以看到那堆控制遊戲的積木 這堆新的積木就是顯示攝影機裡有多少動作 如果有大幅的動作 它就會指示那些氣球爆開 正如你可以用攝影機 去輸入資料到 Scratch 一樣 你亦可以利用麥克風 這是一個利用麥克風創作的例子 我將會讓你們所有人一起去控制這個遊戲 用你們的聲音 (蟋蟀叫聲) (呼叫) (咀嚼聲) (笑聲)(呼叫)(蝙蝠跌落聲) (掌聲) 當孩子們在創作這樣的作品時 他們在學習編寫電腦程式 但更重要的是, 他們從編寫電腦程式中學習 因為從學習編寫電腦程式的過程中 他們可以學到更多其他的東西 開啟不同學習機會的大門 再一次,閱讀與寫作的比喻在這裏很有用 當你學習閱讀及寫作時, 它們為你引進了 學習更多其他事物的機會 當你學習閱讀時, 你也同時是經由閱讀去學習到其他事情 編寫電腦程式也是一樣 當你學習編寫電腦程式時, 你也同時藉由程式學習到其他事情 有一些你可以學到的事情是顯而易見的 你可以知道電腦是怎樣運作的 但這只是個開端 當你學習編寫電腦程式時, 它為你開啟學習 很多其他東西的大門 讓我為你展示一個例子吧 這裏有另一個作品 我第一次看到它 是當我在參觀 某一個電腦俱樂部的時候 這是一些我們協助成立的課餘學習中心 幫助來自低收入家庭的孩子 學習如何利用新科技 有創意地表達自己 當我在幾年前到其中一個這樣的俱樂部時 我看到一個13歲的男孩用我們的 Scratch 去創作一個類似這樣的遊戲 他非常高興,並且對自己的遊戲感到自豪 但他還想做更多 他希望能夠計分 這是一個大魚吃掉小魚的遊戲 但他希望計分, 所以每當 大魚吃掉小魚的時候 分數便會上升, 而分數也被記錄下來。 但他不懂得怎樣做 所以我向他示範可以怎樣做 在Scratch 裏面, 你可以建立一個物件叫做「變量」 我將它取名為「分數」 接著它會為你建立幾個積木 同時建立一個小小的計分板,幫助你計分 每次我點擊「改變分數」時,分數就會增加 所以我向這個會員展示這個方法 -- 暫且就叫他做維克多吧 -- 當維克多見到這些積木能夠幫他增加分數時 他當下就知道要做些甚麼了 他拿了這些積木 把它們放進自己的程式中 正放到大魚吃掉小魚的動作之後 接著,每次當大魚要吃小魚的時候 他就會增加分數,那個分數會增加一分 這的確是可以運作的 當他看到這裡,他非常地興奮 他向我伸出手 不斷地說: 「謝謝,謝謝,謝謝」 那個時候我心想: 學校裡的老師有多常被學生這樣感謝呢? 只因為他教了他一個「變量」的概念 (笑聲) 這不常發生在教室裏 這是因為在大部分的教室中,當孩子在學習變量時 他們不知道為何他們在學習這個題目 他們沒有運用變量的場合 當你在Scratch 中學習類似的概念時 你可以從一個有意義、同時又具有動機的方式學習 這讓你明白為什麼我們要學習變量 我們看到孩子能夠把它學得 更深入和更好 我相信學校有教過他變量的概念 但實際上他沒有學到 -- 因為他沒有集中精神去學這個課題 現在,他有一個理由去學習變量 所以當你從寫程式中學習, 並透過它學到更多知識 你就是在一個有意義的脈絡中學習, 而這 就最好的學習方法 像維克多的孩子們在創作他們的作品時 他們實際上是在學習一些像變量這樣重要的概念 但這只是個開端 當維克多在這個創作中埋頭苦幹, 建立這些程式碼的同時 他也在學習該如何設計 怎樣將某個靈光乍現 變成一個成熟的、可以運作的專案 就像你在這裏看到的那個一樣 所以他在學習很多不同的、核心的設計原則 怎樣實驗新的想法 怎樣將複雜的概念分割成更小的單位 怎樣與其他人合作發展你的專案 當事情不對勁時,怎樣尋找、糾正程式中的錯誤 如何堅持下去並且再接再厲 當面對事情發展不如意,這些挫折的時刻 這些都是重要的技能 而且它們並不是只與編寫程式相關 它們關係到所有不同的活動 誰知道維克多長大後會不會 成為一位程式設計員,又或者一位專業的計算機科學家呢? 實際上這並不太可能 但姑且不論他將來會做甚麼 他都會能夠運用他學到的這些設計技能 不管他將來是否會成為一個市場行銷經理 一個工程師,或是社區組織者 這些概念對每個人都很實用 再一次,用語言來比喻這件事非常有用 當你可以流暢地閱讀及寫作時 不代表你做這些事是為了 成為一個專業的作家 很少人會成為專業作家 但對所有人來說,學習閱讀和寫作還是很有用的 這跟編寫程式是一樣的道理 大部分人不會在長大後成為專業的 計算機科學家或者程式設計員 但是像創意思考 系統性推論、與其他人合作,這樣的技能 -- 這些你用Scratch 編寫程式時所發展出的技能 -- 是任何職業都能用得到的技能 事實上不只是關於你從事的工作 你可以從編寫程式中 在你的私人生活中表達你的構思和想法 就讓我在結束前再講一個例子 這個例子來自 我把母親節賀卡寄給媽媽以後 她決定她要學會使用Scratch 所以她為我的生日製作了這個作品 並且寄了一張Scratch生日卡給我 雖然這個作品並不會贏取任何設計獎項 而且我們可以百分之百確定, 我那83歲的媽媽 不是為了要成為專業的程式設計員, 或者計算機科學家 但她在這個設計中埋頭苦幹的時候 她可以連結她所關心的人 同時這個過程可以幫助她學習新的事物 使她可以繼續運用她的創造力 建立新方法來表達她自己 所以,當我們環顧四週 我們可以看到 米高.彭博在學習編寫電腦程式 所有愛沙尼亞的孩子也都在學習電腦程式 甚至連我媽也在學習寫電腦程式 你不覺得, 也是時候輪到你 來學習編寫電腦程式嗎? 如果你有興趣試試看 我會鼓勵你瀏覽 Scratch 的網站 它是 scratch.mit.edu 接著動手試試編寫電腦程式 非常感謝大家 (掌聲)