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 with my research group at the MIT Media Lab? We developed it so that people could easily create

我想,为什么我不给她做一个互动型的母亲节贺卡呢恰好可以借助Scratch软件-这是我和我的研究团队在麻省理工学院媒体实验室开发的软件。我们的研发成果使得人们能够很容易制作

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. Before making my own Mother's Day card,

他们自己的互动故事、游戏和动画,并将他们的杰作与他人分享。因此我想,这正是个好机会使用Scratch软件来为我母亲做一个互动贺卡。在制作母亲节贺卡之前,

I thought I would take a look at the Scratch website. So over the last several years, kids around the world ages 8 and up, have shared their projects, and I thought, I wonder if, of those three million projects,

我觉得应该先看看Scratch网站。在过去的几年中,全世界的孩子们一般8岁以上,分享了他们的作品,我想,我很好奇,这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 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.

其中有很多就在此前24小时内完成的,大概作者都是像我一样的拖延着。然后我开始看这些贺卡。(音乐声)我看见其中一个的主角是一只小猫和她的妈妈,小猫祝妈妈节日快乐。

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 when Mother's Day was happening.

就会显示出一句母亲节祝福语。(音乐声)这一个贺卡中,制作者讲述了她用Google查出母亲节时间的经过。

(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 and events like CoderDojo and sites like Girls Who Code, or Black Girls Code. It seems that everybody is getting into the act.

来教人们学习编程。你看看网上,你会看见“编码学院”(Codecademy)或“编码道场”(CoderDojo)这样的地方和“会编码的女孩”(Girls Who Code)或者“黑女孩编码”(Black Girls Code)这类网站。好像每个人都行动起来了。

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. A few months later, the country of Estonia decided that

你知道,就在今年初,在新旧年交际之时,纽约市长迈克尔·布隆伯格做了一个新年决定,即他将要在2012年学习编码。几个月后,爱沙尼亚决定

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. 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,

在Scratch上编码,你只需把方块拼到一起。在这个作品里,你拖动一个“移动”方块,放入一个堆里,这些堆控制你作品中不同角色的动作。

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. Of the millions of projects on the Scratch website, there's everything from animated stories to school science projects to anime soap operas to virtual construction kits

当然,鱼的游戏并非是唯一一个Scratch能做的东西。Scratch网站上的几百万个作品中,从动画故事到校园科学作品到动漫肥皂剧到虚拟建设工具箱

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 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.

这里有一个来自新版Scratch的例子新版Scratch我们会在几个月后发布,我们希望再次将你们带到新的方向上去。这儿有个例子它使用了网络摄像头。

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, 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, you can also use the microphone.

然后,当动作数到达一定数目时,它会控制气球爆开。它使用摄像头来向Scratch传送信息,同样的你也可以用麦克风来做。

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 to create a game somewhat like this one, and he was very happy with his game and proud of his game,

学习使用技术来表达自己。几年前,当我去一个俱乐部时,我看见一个13岁的男生在使用Scratch软件制作一个像这样的游戏,他对这游戏很满意并且感到骄傲,

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. I'll call it score.

分数会上升,就能够记录游戏动向,但是他不知道该怎么做。于是我就做给他看。在Scratch中,你可以制作变量。我给它取名为分数。

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.

也就是大鱼吃小鱼游戏中。这样,每次大鱼吃小鱼时,他就增加分数,这样分数就增加1.

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, you can learn it in a way that's really meaningful and motivating for you,

这在大多数课堂中都不常见,但那是因为在大多数课堂中,当孩子们学习变量时,他们不知道为什么要学这些。真的,他们学的东西根本用不上。当你在Scratch学到这样的思想时,学习的方式是有意义而且激励人心的,

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. So she made this project for my birthday

让我再用一个作品来结束吧。这个作品是在我将母亲节贺卡发给我母亲后,她决定学习Scratch。因此她为我的生日做了一张Scratch

and sent me a happy birthday Scratch card. Now this project is not going to win any prizes for design, and you can rest assured that my 83-year-old mom is not training to become a professional programmer or computer scientist.

生日贺卡发给我。尽管这个作品不可能得什么设计奖项,而且你可以确定,我83岁的老母并不是要成为职业程序设计员或计算机科学家。

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. It's scratch.mit.edu, and give a try at coding. Thanks very much. (Applause)

如果你有兴趣尝试,我鼓励你去Scratch网站。网址是scratch.mit.edu,试试编码吧。谢谢。(掌声)