字幕列表 影片播放
It was a Saturday afternoon in May,
那是五月的一個週六下午
and I suddenly realized
我忽然意識到
that the next day was Mother's Day,
隔天就是母親節
and I hadn't gotten anything for my mom,
而我沒有準備任何禮物給我媽
so I started thinking about
所以我開始思考
what should I get my mom for Mother's Day?
我要送他什麼當作母親節禮物呢?
I thought, why don't I make her
我想到何不為她做一張
an interactive Mother's Day card
互動式的母親節賀卡呢?
using the Scratch software that I'd been developing
使用我開發的塗鴉軟體 Scratch 製作
with my research group at the MIT Media Lab?
我的研究小組在麻省理工大學 (MIT) 媒體實驗室所研發的軟體
We developed it so that people could easily create
我們製作了這個軟體,使人們能夠輕鬆創作
their own interactive stories and games and animations,
他們自己的互動故事、遊戲或者是動畫
and then share their creations with one another.
並且把這些創作與別人分享
So I thought, this would be an opportunity to use Scratch
然後我想 這或許是一個好機會
to make an interactive card for my mom.
使用這個塗鴉軟體 Scratch 作一張互動賀卡給我媽媽
Before making my own Mother's Day card,
在做我的母親卡之前
I thought I would take a look
我想到我可以先逛看看
at the Scratch website.
這個塗鴉網站 ( Scratch )
So over the last several years, kids around the world
幾年前開始,世界各地
ages 8 and up, have shared their projects,
8歲或更大的孩子們已經開始 透過這個網站分享他們的作品
and I thought, I wonder if, of those three million projects,
所以我想 在這300萬件作品裏
whether anyone else has thought to put up Mother's Day cards.
會不會有人想到要放上 他們作的母親節賀卡呢
So in the search box I typed in
所以我就在搜尋欄中鍵入
"Mother's Day,"
「母親節」
and I was surprised and delighted to see a list
之後我驚訝又高興地看到
of dozens and dozens of Mother's Day cards
很多很多的母親節賀卡
that showed up on the Scratch website,
在 Scratch 上展示
many of them just in the past 24 hours
許多賀卡是在24小時內上載的
by procrastinators just like myself.
像我一樣愛拖延的人
So I started taking a look at them. (Music)
所以我開始瀏覽這些作品(音樂)
I saw one of them that featured a kitten
我看到一張以小貓
and her mom and wishing her mom a happy Mother's Day.
和她的媽媽為主角的卡片,卡片中的 小貓祝媽媽母親節快樂
And the creator very considerately
作者非常貼心地
offered a replay for her mom.
為他媽媽做了一個重播按鈕
Another one was an interactive project where,
另一個是一件互動作品
when you moved the mouse over the letters of "Happy Mom Day,"
當你把鼠標移動到這些"母親節快樂"的字母上面時
it reveals a special happy Mother's Day slogan.
它會出現一句特別的母親節祝詞
(Music) In this one, the creator told a narrative
(音樂) 而在這個作品裏,創作者講述了
about how she had Googled to find out
她是如何用 Google (谷歌搜尋引擎) 來找出
when Mother's Day was happening.
到底哪一天是母親節
(Typing) And then once she found out when Mother's Day was happening,
(打字聲) 而當她發現當天就是母親節時
she delivered a special Mother's Day greeting
她立即送出了一份特別的母親節祝福
of how much she loved her mom.
來表達她有多愛她的媽媽
So I really enjoyed looking at these projects
我真的很喜歡瀏覽這些作品
and interacting with these projects.
並且與這些作品互動
In fact, I liked it so much that, instead of making my own project,
事實上,由於太喜歡這些作品, 讓我打消了親手製作賀卡的念頭
I sent my mom links to about a dozen of these projects. (Laughter)
改為把十多個作品的連結發送給我媽媽 (笑聲)
And actually, she reacted exactly the way that I hoped that she would.
而實際上,她的反應就正如我希望的一樣
She wrote back to me and she said,
她回覆我並說
"I'm so proud to have a son that created the software
「我非常以有這樣的兒子為傲, 因為他能夠打造出一個軟體,使孩子們能夠
that allowed these kids to make Mother's Day cards for their mothers."
製作母親節賀卡送給他們的媽媽們。」
So my mom was happy, and that made me happy,
所以我媽媽很高興,這令我也很高興
but actually I was even happier for another reason.
但事實上我有一個更值得高興的理由
I was happy because these kids were using Scratch
我高興是因為這些孩子能夠按照我們當初設計 Scratch
just in the way that we had hoped that they would.
的用法來使用它
As they created their interactive Mother's Day cards,
當他們製作互動母親節賀卡的時候
you could see that they were really
你可以看到他們真的
becoming fluent with new technologies.
能夠更熟練地掌握新科技
What do I mean by fluent?
我說的熟練是指甚麽呢?
I mean that they were able to start expressing themselves
我是指他們已經可以開始表達他們自己
and to start expressing their ideas.
並且開始表達他們的想法
When you become fluent with language,
當你開始熟練於一個語言時
it means you can write an entry in your journal
這意味著你可以在你的日誌上寫一個條目
or tell a joke to someone or write a letter to a friend.
告訴別人一個幽默的笑話 或者給朋友寫一封信
And it's similar with new technologies.
使用新科技也是很類似這樣
By writing, be creating these interactive Mother's Day cards,
書寫或創作這些互動的母親節賀卡時
these kids were showing that they were really fluent
這些孩子顯示出
with new technologies.
他們有多熟練於這些新科技的使用
Now maybe you won't be so surprised by this,
你或許對這件事情並不感到驚訝
because a lot of times people feel that
因為大多數時候人們都認為
young people today can do all sorts of things with technology.
現代的年輕人熟於使用科技 做各式各樣的事情
I mean, all of us have heard young people referred to as "digital natives."
我的意思是,我們都聽過年輕人被稱為 「數碼時代的原住民」
But actually I'm sort of skeptical about this term.
某種程度上 我認為這個用詞是有點問題的
I'm not so sure we should be thinking of young people as digital natives.
我不太肯定我們應該把年輕人看作 數碼時代的原住民
When you really look at it, how is it that young people
當你真的看看這個問題,年輕人是怎樣
spend most of their time using new technologies?
花大部分的時間使用新科技呢?
You often see them in situations like this,
你經常看到的情況會是像這樣
or like this,
或是像這樣的
and there's no doubt that young people
可以肯定的是 年輕人
are very comfortable and familiar browsing
可以很輕鬆自在的瀏覽網頁
and chatting and texting and gaming.
上網聊天、互通短訊和打電動
But that doesn't really make you fluent.
但這些並不會真的使你熟練
So young people today have lots of experience
今天的年輕人有許多與新科技互動的經驗
and lots of familiarity with interacting with new technologies,
亦對如何與科技互動相當了解
but a lot less so of creating with new technologies
但使用新科技來創作的人就少得多了
and expressing themselves with new technologies.
也不擅長透過新科技來表達自己的想法
It's almost as if they can read
這就好像在新科技的領域上, 他們雖然懂得閱讀
but not write with new technologies.
卻不懂書寫一樣
And I'm really interested in seeing, how can we help young people become fluent
我真的對於怎樣能夠令年輕人對科技更熟練
so they can write with new technologies?
使他們能夠使用新科技創作 很感興趣
And that really means that they need to be able to
這表示他們需要能夠
write their own computer programs, or code.
寫自己的電腦軟體,或是程式
So, increasingly, people are starting to recognize
很有趣的是人們逐漸地開始發現
the importance of learning to code.
學習編寫電腦程式的重要性
You know, in recent years, there have been
你知道最近幾年,這裏有
hundreds of new organizations and websites
數以百計的新機構和網站
that are helping young people learn to code.
幫助年輕人學習編寫電腦程式
You look online, you'll see places like Codecademy
你看網上有像「編程學院」 Codecademy 這類的地方
and events like CoderDojo
有像CoderDojo 一樣的組織 (註: 該組織在世界各地幫助年輕人學習如何寫程式)
and sites like Girls Who Code,
又有像「女生愛編程」 Girls Who Code
or Black Girls Code.
又或者「黑女編程」 Black Girls Code 這一類的網站
It seems that everybody is getting into the act.
看起來每個人都開始在參與這件事
You know, just at the beginning of this year,
你知道,就在年初
at the turn of the new year,
進入新的一年之際
New York City Mayor Michael Bloomberg
紐約市長米高.彭博
made a New Year's resolution that he was going to learn
為他自己定下的新年目標, 就是要在
to code in 2012.
2012 年中學會編寫電腦程式
A few months later, the country of Estonia decided that
數個月後, 愛沙尼亞這個國家決定
all of its first graders should learn to code.
該國的一年級學生全部都要學習編寫電腦程式
And that triggered a debate in the U.K.
這在英國激發了一場辯論
about whether all the children there should learn to code.
探討是否需要得讓全部孩子都必須 學習編寫電腦程式
Now, for some of you, when you hear about this,
你們當中有些人在聽到這個提議時
it might seem sort of strange about everybody learning to code.
或許會感到有點奇怪, 為什麼每一個人都要學寫程式
When many people think of coding, they think of it
當大部人想到編程,他們想到的是
as something that only a very narrow sub-community
一個很狹隘定義的「亞社群」
of people are going to be doing,
是專屬於某些人的活動
and they think of coding looking like this.
他們覺得程式是長這樣的
And in fact, if this is what coding is like,
事實上,假如程式真的長這樣
it will only be a narrow sub-community of people
當然只有很少一群人會碰觸
with special mathematical skills and technological background
就是那些擁有特別的數學技能,以及科技背景的人
that can code.
才會做的事
But coding doesn't have to be like this.
但編寫程式寫毋須是這樣的
Let me show you about what it's like to code in Scratch.
讓我向你介紹在塗鴉軟件Scratch 中編寫程式會是怎樣吧
So in Scratch, to code, you just snap blocks together.
使用 Scratch 寫程式的話, 你就像是把積木接在一起
In this case, you take a move block,
在這個情況下,你移動一個積木
snap it into a stack,
把它們堆在一起
and the stacks of blocks control the behaviors
那堆積木就會控制
of the different characters in your game or your story,
你的遊戲或故事中不同角色的行為
in this case controlling the big fish.
這個例子中,就是要控制那條大魚
After you've created your program, you can click on "share,"
當你創造了你的程式後,你可以點擊「分享」
and then share your project with other people,
接著你就可以把你的程式與其他人分享
so that they can use the project
別人可以用你的程式
and start working on the project as well.
並且也可以調整成他們自己的
So, of course, making a fish game isn't the only thing
當然,創作一個關於魚的遊戲並不是
you can do with Scratch.
Scratch 唯一能夠做的事
Of the millions of projects on the Scratch website,
在Scratch 網站上數以百萬的作品當中
there's everything from animated stories
可以說是包羅萬有, 從動畫故事
to school science projects
到學校科學習作
to anime soap operas
到動漫肥皂劇
to virtual construction kits
到虛擬建築工具箱
to recreations of classic video games
到二次創作的經典電玩遊戲
to political opinion polls
到政治傾向調查
to trigonometry tutorials
到三角幾何學教室
to interactive artwork, and, yes,
到互動藝術作品。對! 還有
interactive Mother's Day cards.
互動母親節賀卡
So I think there's so many different ways
所以我認為這裏有很多的途徑
that people can express themselves using this,
讓人們可以從中表達自己
to be able to take their ideas and share their ideas with the world.
跟全世界分享他們的靈感
And it doesn't just stay on the screen.
而且,這不單單局限在電腦螢幕上
You can also code to interact with the physical world around you.
你可以利用編寫程式,去和周遭的現實世界互動
Here's an example from Hong Kong,
這裏有一個來自香港的例子
where some kids made a game
這些孩子製作了一個遊戲
and then built their own physical interface device
他們打造了一個實體介面裝置
and had a light sensor, so the light sensor
它有一個光感應器,那個感應器
detects the hole in the board,
會感應木板上的那個洞
so as they move the physical saw,
所以在他們移動那把實體鋸子時
the light sensor detects the hole
那個光感應器可以感應到那個洞
and controls the virtual saw on the screen
進而能控制螢幕上的虛擬鋸子
and saws down the tree.
去鋸掉那棵大樹
We're going to continue to look at new ways
我們一直在尋找新的方法
of bringing together the physical world and the virtual world
去連繫現實與虛擬世界
and connecting to the world around us.
並且連接我們周遭的世界
This is an example from a new version of Scratch
這是一個來自新版本Scratch 的例子
that we'll be releasing in the next few months,
將會在數個月之後發佈
and we're looking again to be able
我們再次嘗試
to push you in new directions.
來帶給你新的想法
Here's an example.
這是一個例子
It uses the webcam.
它用上了網絡攝影機
And as I move my hand, I can pop the balloons
當我移動我的手,我可以拍破那些氣球
or I can move the bug.
又或者移動那蟲子
So it's a little bit like Microsoft Kinect,
這有點像微軟的 Kinect 裝置
where you interact with gestures in the world.
讓你可以用身體語言跟世界互動
But instead of just playing someone else's game,
但與其參與其他人的遊戲
you get to create the games,
你可以創作你自己的遊戲
and if you see someone else's game,
如果你看到別人的遊戲
you can just say "see inside,"
你可以說 「讓我們來看看裏面長甚麼樣」
and you can look at the stacks of blocks that control it.
你可以看到那堆控制遊戲的積木
So there's a new block that says how much video motion there is,
這堆新的積木就是顯示攝影機裡有多少動作
and then, if there's so much video motion,
如果有大幅的動作
it will then tell the balloon to pop.
它就會指示那些氣球爆開
The same way that this uses the camera
正如你可以用攝影機
to get information into Scratch,
去輸入資料到 Scratch 一樣
you can also use the microphone.
你亦可以利用麥克風
Here's an example of a project using the microphone.
這是一個利用麥克風創作的例子
So I'm going to let all of you control this game
我將會讓你們所有人一起去控制這個遊戲
using your voices.
用你們的聲音
(Crickets chirping) (Shouts) (Chomping)
(蟋蟀叫聲) (呼叫) (咀嚼聲)
(Laughter)
(笑聲)(呼叫)(蝙蝠跌落聲)
(Applause)
(掌聲)
As kids are creating projects like this,
當孩子們在創作這樣的作品時
they're learning to code,
他們在學習編寫電腦程式
but even more importantly, they're coding to learn.
但更重要的是, 他們從編寫電腦程式中學習
Because as they learn to code,
因為從學習編寫電腦程式的過程中
it enables them to learn many other things,
他們可以學到更多其他的東西
opens up many new opportunities for learning.
開啟不同學習機會的大門
Again, it's useful to make an analogy to reading and writing.
再一次,閱讀與寫作的比喻在這裏很有用
When you learn to read and write, it opens up
當你學習閱讀及寫作時, 它們為你引進了
opportunities for you to learn so many other things.
學習更多其他事物的機會
When you learn to read, you can then read to learn.
當你學習閱讀時, 你也同時是經由閱讀去學習到其他事情
And it's the same thing with coding.
編寫電腦程式也是一樣
If you learn to code, you can code to learn.
當你學習編寫電腦程式時, 你也同時藉由程式學習到其他事情
Now some of the things you can learn are sort of obvious.
有一些你可以學到的事情是顯而易見的
You learn more about how computers work.
你可以知道電腦是怎樣運作的
But that's just where it starts.
但這只是個開端
When you learn to code, it opens up for you to learn
當你學習編寫電腦程式時, 它為你開啟學習
many other things.
很多其他東西的大門
Let me show you an example.
讓我為你展示一個例子吧
Here's another project,
這裏有另一個作品
and I saw this when I was visiting
我第一次看到它 是當我在參觀
one of the computer clubhouses.
某一個電腦俱樂部的時候
These are after-school learning centers that we helped start
這是一些我們協助成立的課餘學習中心
that help young people from low-income communities
幫助來自低收入家庭的孩子
learn to express themselves creatively with new technologies.
學習如何利用新科技 有創意地表達自己
And when I went to one of the clubhouses a couple years ago,
當我在幾年前到其中一個這樣的俱樂部時
I saw a 13-year-old boy who was using our Scratch software
我看到一個13歲的男孩用我們的 Scratch
to create a game somewhat like this one,
去創作一個類似這樣的遊戲
and he was very happy with his game and proud of his game,
他非常高興,並且對自己的遊戲感到自豪
but also he wanted to do more.
但他還想做更多
He wanted to keep score.
他希望能夠計分
So this was a game where the big fish eats the little fish,
這是一個大魚吃掉小魚的遊戲
but he wanted to keep score, so that each time
但他希望計分, 所以每當
the big fish eats the little fish,
大魚吃掉小魚的時候
the score would go up and it would keep track,
分數便會上升, 而分數也被記錄下來。
and he didn't know how to do that.
但他不懂得怎樣做
So I showed him.
所以我向他示範可以怎樣做
In Scratch, you can create something called a variable.
在Scratch 裏面, 你可以建立一個物件叫做「變量」
I'll call it score.
我將它取名為「分數」
And that creates some new blocks for you,
接著它會為你建立幾個積木
and also creates a little scoreboard that keeps track of the score,
同時建立一個小小的計分板,幫助你計分
so each time I click on "change score," it increments the score.
每次我點擊「改變分數」時,分數就會增加
So I showed this to the clubhouse member --
所以我向這個會員展示這個方法 --
let's call him Victor -- and Victor,
暫且就叫他做維克多吧 --
when he saw that this block would let him increment the score,
當維克多見到這些積木能夠幫他增加分數時
he knew exactly what to do.
他當下就知道要做些甚麼了
He took the block
他拿了這些積木
and he put it into the program
把它們放進自己的程式中
exactly where the big fish eats the little fish.
正放到大魚吃掉小魚的動作之後
So then, each time the big fish eats the little fish,
接著,每次當大魚要吃小魚的時候
he will increment the score, and the score will go up by one.
他就會增加分數,那個分數會增加一分
And it's in fact working.
這的確是可以運作的
And he saw this, and he was so excited,
當他看到這裡,他非常地興奮
he reached his hand out to me,
他向我伸出手
and he said, "Thank you, thank you, thank you."
不斷地說: 「謝謝,謝謝,謝謝」
And what went through my mind was,
那個時候我心想:
how often is it that teachers are thanked by their students
學校裡的老師有多常被學生這樣感謝呢?
for teaching them variables? (Laughter)
只因為他教了他一個「變量」的概念 (笑聲)
It doesn't happen in most classrooms,
這不常發生在教室裏
but that's because in most classrooms, when kids learn about variables,
這是因為在大部分的教室中,當孩子在學習變量時
they don't know why they're learning it.
他們不知道為何他們在學習這個題目
It's nothing that, really, they can make use of.
他們沒有運用變量的場合
When you learn ideas like this in Scratch,
當你在Scratch 中學習類似的概念時
you can learn it in a way that's really meaningful and motivating for you,
你可以從一個有意義、同時又具有動機的方式學習
that you can understand the reason for learning variables,
這讓你明白為什麼我們要學習變量
and we see that kids learn it more deeply
我們看到孩子能夠把它學得
and learn it better.
更深入和更好
Victor had, I'm sure, been taught about variables in schools,
我相信學校有教過他變量的概念
but he really didn't -- he wasn't paying attention.
但實際上他沒有學到 -- 因為他沒有集中精神去學這個課題
Now he had a reason for learning variables.
現在,他有一個理由去學習變量
So when you learn through coding, and coding to learn,
所以當你從寫程式中學習, 並透過它學到更多知識
you're learning it in a meaningful context, and that's the best way of learning things.
你就是在一個有意義的脈絡中學習, 而這 就最好的學習方法
So as kids like Victor are creating projects like this,
像維克多的孩子們在創作他們的作品時
they're learning important concepts like variables,
他們實際上是在學習一些像變量這樣重要的概念
but that's just the start.
但這只是個開端
As Victor worked on this project and created the scripts,
當維克多在這個創作中埋頭苦幹, 建立這些程式碼的同時
he was also learning about the process of design,
他也在學習該如何設計
how to start with the glimmer of an idea
怎樣將某個靈光乍現
and turn it into a fully-fledged, functioning project
變成一個成熟的、可以運作的專案
like you see here.
就像你在這裏看到的那個一樣
So he was learning many different core principles of design,
所以他在學習很多不同的、核心的設計原則
about how to experiment with new ideas,
怎樣實驗新的想法
how to take complex ideas and break them down into simpler parts,
怎樣將複雜的概念分割成更小的單位
how to collaborate with other people on your projects,
怎樣與其他人合作發展你的專案
about how to find and fix bugs when things go wrong,
當事情不對勁時,怎樣尋找、糾正程式中的錯誤
how to keep persistent and to persevere
如何堅持下去並且再接再厲
in the face of frustrations when things aren't working well.
當面對事情發展不如意,這些挫折的時刻
Now those are important skills
這些都是重要的技能
that aren't just relevant for coding.
而且它們並不是只與編寫程式相關
They're relevant for all sorts of different activities.
它們關係到所有不同的活動
Now, who knows if Victor is going to grow up and become
誰知道維克多長大後會不會
a programmer or a professional computer scientist?
成為一位程式設計員,又或者一位專業的計算機科學家呢?
It's probably not so likely,
實際上這並不太可能
but regardless of what he does,
但姑且不論他將來會做甚麼
he'll be able to make use of these design skills that he learned.
他都會能夠運用他學到的這些設計技能
Regardless of whether he grows up to be a marketing manager
不管他將來是否會成為一個市場行銷經理
or a mechanic or a community organizer,
一個工程師,或是社區組織者
that these ideas are useful for everybody.
這些概念對每個人都很實用
Again, it's useful to think about this analogy with language.
再一次,用語言來比喻這件事非常有用
When you become fluent with reading and writing,
當你可以流暢地閱讀及寫作時
it's not something that you're doing
不代表你做這些事是為了
just to become a professional writer.
成為一個專業的作家
Very few people become professional writers.
很少人會成為專業作家
But it's useful for everybody to learn how to read and write.
但對所有人來說,學習閱讀和寫作還是很有用的
Again, the same thing with coding.
這跟編寫程式是一樣的道理
Most people won't grow up to become professional
大部分人不會在長大後成為專業的
computer scientists or programmers,
計算機科學家或者程式設計員
but those skills of thinking creatively,
但是像創意思考
reasoning systematically, working collaboratively --
系統性推論、與其他人合作,這樣的技能 --
skills you develop when you code in Scratch --
這些你用Scratch 編寫程式時所發展出的技能 --
are things that people can use no matter what they're doing in their work lives.
是任何職業都能用得到的技能
And it's not just about your work life.
事實上不只是關於你從事的工作
Coding can also enable you to
你可以從編寫程式中
express your ideas and feelings in your personal life.
在你的私人生活中表達你的構思和想法
Let me end with just one more example.
就讓我在結束前再講一個例子
So this is an example that came from
這個例子來自
after I had sent the Mother's Day cards to my mom,
我把母親節賀卡寄給媽媽以後
she decided that she wanted to learn Scratch.
她決定她要學會使用Scratch
So she made this project for my birthday
所以她為我的生日製作了這個作品
and sent me a happy birthday Scratch card.
並且寄了一張Scratch生日卡給我
Now this project is not going to win any prizes for design,
雖然這個作品並不會贏取任何設計獎項
and you can rest assured that my 83-year-old mom
而且我們可以百分之百確定, 我那83歲的媽媽
is not training to become a professional programmer or computer scientist.
不是為了要成為專業的程式設計員, 或者計算機科學家
But working on this project enabled her
但她在這個設計中埋頭苦幹的時候
to make a connection to someone that she cares about
她可以連結她所關心的人
and enabled her to keep on learning new things
同時這個過程可以幫助她學習新的事物
and continuing to practice her creativity
使她可以繼續運用她的創造力
and developing new ways of expressing herself.
建立新方法來表達她自己
So as we take a look and we see that
所以,當我們環顧四週 我們可以看到
Michael Bloomberg is learning to code,
米高.彭博在學習編寫電腦程式
all of the children of Estonia learn to code,
所有愛沙尼亞的孩子也都在學習電腦程式
even my mom has learned to code,
甚至連我媽也在學習寫電腦程式
don't you think it's about time that you might be
你不覺得, 也是時候輪到你
thinking about learning to code?
來學習編寫電腦程式嗎?
If you're interested in giving it a try,
如果你有興趣試試看
I'd encourage you to go to the Scratch website.
我會鼓勵你瀏覽 Scratch 的網站
It's scratch.mit.edu,
它是 scratch.mit.edu
and give a try at coding.
接著動手試試編寫電腦程式
Thanks very much. (Applause)
非常感謝大家 (掌聲)