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 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.
Era uma tarde de sábado em Maio, e eu descobri de repente que o dia seguinte seria o Dia da Mãe, e eu não tinha comprado nada para minha mãe, então comecei a pensar sobre o que eu deveria comprar à minha mãe neste dia? Então pensei, porque não fazer um cartão interativo para o dia da mãe usando o software Scratch que eu estava a desenvolver como a minha equipa de investigação no Laboratório de Media do MIT? Desenvolvemos este software para que as pessoas pudessem criar facilmente as suas próprias histórias, jogos e animações interativas. e depois as pudessem partilhar com os outros. Então pensei que esta seria uma oportunidade para usar o Scratch para fazer um cartão interativo para minha mãe.
Before making my own Mother's Day card, 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, 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, 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. 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. (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.
Antes de fazer o cartão para a minha mãe, pensei em consultar o site do Scratch. Durante os últimos anos, crianças do mundo inteiro com 8 ou mais anos, têm partilhado os seus projetos e eu pensei, será que no meio daqueles 3 milhões de projetos houve mais alguém que pensou em fazer cartões para o Dia da Mãe? Então, na caixa de pesquisa, escrevi "Dia da Mãe" e fiquei surpreendido e encantado ao ver uma lista de dezenas e dezenas de cartões do Dia da Mãe que apareceram no site do Scratch. muitos dos quais feitos nas últimas 24 horas por preguiçosos como eu. Então, comecei a ver os projetos. (Música) Vi um que tinha um gatinho e a sua mãe onde o gatinho desejava um feliz Dia da Mãe à sua mãe O criador foi muito atencioso e até colocou um botão para 'Repetir'. Outro era um projeto interativo que, quando se movia o rato sobre as letras 'Feliz Dia da Mamã' revelava uma slogan de 'Dia da Mãe'. (Música) Nesse projeto, o criador contou a história sobre como usou o Google para descobrir quando era o Dia da Mãe. (A escrever) E quando descobriu que o Dia das Mãe estava a chegar, entregou uma saudação especial de Dia da Mãe e disse o quanto amava a sua mãe.
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."
Eu gostei muito de ver estes projetos e de interagir com eles. Na verdade, gostei tanto que em vez de fazer o meu próprio projeto, mandei uma dezena de 'links' destes projetos para minha mãe. (Risos) E ela reagiu exatamente como eu gostaria. Ela respondeu, dizendo: "Estou tão orgulhosoa por ter um filho que criou o software que permitiu a essas crianças fazerem cartões de Dia da Mãe para as suas mães!"
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 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.
Então a minha mãe ficou feliz e eu também. mas eu estava ainda mais feliz por uma outra razão. Eu estava feliz porque estas crianças estavam usando o Scratch da maneira que eu esperava. Enquanto criavam os seus cartões interativos para o Dia da Mãe podia-se ver que eles estavam realmente a ficar fluentes com novas tecnologias. O que eu quero dizer com fluente? Quero dizer que se começavam a conseguir expressar e expressar as suas ideias. Quando alguém fica fluente num idioma isso significa que pode escrever no seu diário ou contar uma piada a alguém ou escrever uma carta a um amigo. Acontece o mesmo com novas tecnologias. Ao escrever, ao criar estes cartões interativos de Dia da Mãe, estas crianças estavam a mostrar que eram realmente fluentes com novas tecnologias.
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.
Talvez não fiquem tão surpreendidos com isto porque muitas vezes as pessoas sentem que os jovens hoje em dia conseguem fazer muitas coisas com tecnologia. Todos nós já ouvimos referirem-se aos jovens como "nativos digitais." Mas eu sou um pouco cético com este termo. Não tenho a certeza se devemos ver os jovens como nativos digitais. Quando vemos com atenção, como é que os jovens passam a maior parte do seu tempo usando as novas tecnologias? Normalmente é possível vê-los nestas situações, ou nesta, e não há dúvida que os jovens sentem-se muito confortáveis a navegar [na Web], a conversar e a mandar mensagens e a jogar. Mas isto não os torna fluentes.
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.
Hoje em dia, os jovens têm muita experiência e bastante familiaridade na interação com novas tecnologias mas têm pouca experiência a criar (coisas) com novas tecnologias e a expressarem-se com novas tecnologias. É quase como se conseguissem ler mas não conseguissem escrever com novas tecnologias.
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.
E eu estou interessado em ver como podemos ajudar os jovens a ficarem fluentes de forma a que possam escrever com novas tecnologias? Isso quer dizer que eles precisam saber escrever os seus próprios programas de computador, ou a programar.
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. 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 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.
As pessoas estão a reconhecer cada vez mais a importância de se aprender a programar. Nos últimos anos, têm surgido centenas de novas organizações e de sítios Web que estão a ajudar os jovens a aprender a programar. Se virem na Internet irão encontrar lugares como a 'Academia do Código (Codeacademy)' e eventos como 'Dojo do Código' (CoderDojo) e sítios Web como 'Meninas que programam' ou 'Código das Meninas Negras' (Black Girls Code)' Parece que toda a gente está a querer entrar em cena. No início deste ano, na passagem do ano, o presidente da câmara de Nova Iorque, Michael Bloomberg, fez uma resolução de Ano Novo em que dizia que iria aprender a programar em 2012. Alguns meses depois, a Estónia decidiu que todos os alunos do 1° ano iriam aprender a programar e isso gerou um debate no Reino Unido onde se discutiu se todas as crianças deveriam aprender a programar.
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.
Para alguns de vós, pode parecer estranho quando ouvem falar que toda a gente vai aprender a programar. Quando a maioria das pessoas pensa em programação, pensa em algo que está confinado a um grupo pequeno de pessoas, e acham que programar é isto. E na verdade, se a programação é assim, será apens um pequeno grupo de pessoas com habilidades especiais em matemática e com bases em tecnologia que conseguem programar.
But coding doesn't have to be like this. Let me show you about what it's like to code in 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, 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.
Mas programar não precisa de ser assim. Deixem-me mostrar-vos como é programar no Scratch. No Scratch, para programar apenas é preciso juntar tijolos. Neste caso, pega-se num tijolo do 'movimento', coloca-se o tijolo no monte e os montes de tijolos controlam os comportamentos das diferentes personagens no vosso jogo ou na vossa história, neste caso controlando o peixe grande. Depois que terem criado o vosso programa, podem clicar em "partilhar", e depois podem partilhar o vosso projeto com outras pessoas, para que possam usar o projeto e e possam contribuir também.
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 to recreations of classic video games to political opinion polls to trigonometry tutorials to interactive artwork, and, yes, interactive Mother's Day cards.
Claro que fazer um jogo sobre peixes não é a única coisa que se pode fazer com o Scratch. Dos milhões de projetos no sítio Web do Scratch, há de tudo, como por exemplo, histórias animadas projetos escolares sobre ciência, novelas 'anime', kits de construção virtual, recriações de jogos clássicos sondagens políticas, aulas de trigonometria, obras de arte interativas e sim, cartões interativos para o Dia da Mãe!
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.
Assim, creio que há muitas maneiras diferentes para que as pessoas se possam expressar usando isto, e assim partilhar as suas ideias com o mundo. E isto não fica apenas no ecrã. É possível programar para interagir com o mundo físico à vossa volta. Aqui está um exemplo de Hong Kong, onde algumas crianças fizeram um jogo e depois criaram um dispositivo de interação físico que tinha um sensor de luz. O sensor de luz detectava o buraco na madeira e então quando moviam a serra de madeira, o sensor de luz detectava o furo e controlava a serra virtual no ecrã e serrava a árvore.
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. 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.
Vamos continuar a ver novas formas de juntar o mundo físico e virtual e de ligar o mundo à nossa volta. Este é um exemplo de uma nova versão do Scratch que lançaremos nos próximos meses, e estamos também a encorajar-vos seguirem novas direcções. Aqui está um exemplo. Usa a câmara de vídeo do computador. E quando movimento a minha mão, consigo rebentar os balões ou posso mudar o inseto de sítio. É um pouco parecido com Microsoft Kinect, onde é possível interagir com o mundo através de gestos. Mas em vez de apenas jogar um jogo feito por outra pessoa, podem criar os vossos próprios jogos, e se virem o jogo de alguém, podem clicar em "olhar para dentro", e ver os montes de tijolos que o controlam. Há um novo bloco que diz quanto movimento há no video, e se houver bastante movimento, ele dirá ao balão para rebentar.
The same way that this uses the camera to get information into 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.
Da mesma forma que se usa a câmara de vídeo para para enviar informação para Scratch, podem também usar o microfone. Aqui há um exemplo de um projeto que está a usar o microfone. Vou deixar-vos controlar este jogo através das vossas vozes.
(Crickets chirping) (Shouts) (Chomping) (Laughter) (Applause)
(Grilos a cantar) (Gritos) (Mastigação) (Risos) (Aplausos)
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.
Enquanto as crianças criam projetos assim, estão a aprender a programar, mas ainda mais importante, estão a programar para aprender. Enquanto aprendem a programar, isso permite-lhes aprender muitas outras coisas, e cria muitas oportunidades de aprendizagem. Mais uma vez é útil fazer uma analogia entre a leitura e a escrita. Quando aprendemos a ler e a escrever, isso cria oportunidades para que possamos aprender outras coisas. Quando aprendemos a ler, podemos então ler para aprender. É a mesma coisa com a programação. Se aprendemos a programar, podemos programar para aprender. Algumas das coisas que podemos aprender são óbvias. Podemos aprender mais sobre como funcionam os computadores. Mas isso é apenas o início. Quando aprendemos a programar, abre-se uma oportunidade para se aprender muitas outras coisas.
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, 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. 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, 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.
Deixem-me dar-vos um exemplo. Aqui está um outro projeto, que vi quando estava a visitar um 'Clube de Computadores'. Estes clubes são centros educativos extra curriculares que nós ajudámos a começar e que ajudam jovens oriundos de comunidades com fracas condições económicas a aprenderem a expressar-se de uma forma criativa com novas tecnologias. Quando fui a um desses clubes, há uns anos atrás, vi um rapaz de 13 anos que estava a usar o nosso software Scratch para criar um jogo parecido com este, e ele estava muito feliz e orgulhoso com o seu jogo, mas também queria fazer mais. Ele queria guardar a pontuação do jogo. Este era um jogo onde o peixe grande comia o peixe pequeno, mas ele queria guardar a pontuação, para que cada vez que o peixe grande comesse o pequeno, a pontuação aumentasse e ficasse visível, mas ele não sabia fazer isso. Então mostrei-lhe o que fazer. No Scratch, podemos criar uma coisa chamada 'variável'. Vou chamar-lhe Pontuação. E isto cria alguns novos tijolos, e também cria um pequeno placar que mantem a pontuação, para que cada vez que eu clicar em "mudar pontuação", ele aumente os pontos. Eu mostrei isto ao rapaz do clube -- vamos chamá-lo de Victor -- e o Victor, quando viu que este tijolo lhe permitia aumentar a pontuação, ele soube exatamente o que fazer a seguir. Ele pegou no tijolo e ele colocou-o no programa exatamente onde o peixe grande come o peixe pequeno. Então, cada vez que o peixe grande come o peixe pequeno, o programa incrementa a pontuação, e os pontos sobem uma unidade. E está, de facto, a funcionar! O rapaz viu isso, e estava tão entusiasmado, que ele esticou a sua mão para mim, e disse, 'Obrigado, obrigado, obrigado." O que passou pela minha cabeça foi, "Quantas vezes os professores são agradecidos pelos alunos quando lhes ensinam variáveis?" (Risos) Não acontece na maioria das aulas, porque numa sala de aula, quando as crianças aprendem sobre variáveis, eles não sabem porquê que têm que aprender aquilo. Não é algo que possam usar na prática. Mas quando se aprende algo assim no Scratch, aprende-se de uma forma que faz sentido e que é motivante, e que se percebe a razão para aprender variáveis, e vemos que as crianças aprendem mais profundamente e aprendem melhor. O Victor, com certeza, teve aulas sobre variáveis na escola, mas na realidade não estava a prestar atenção. Neste caso, ele tinha um motivo para aprender variáveis. Quando aprendemos através da programação e programamos para aprender, estamos a aprender num contexto significativo, e esta é a melhor forma para aprender.
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.
Quando crianças como o Victor estão a criar projetos como este, estão a aprender conceitos importantes sobre variáveis, mas isso é apenas o início. Enquanto o Victor trabalhava no seu projeto e criava as sequências de comandos, ele estava também a aprender sobre o processo de concepção, de como começar com a 'faísca' de uma ideia e e de como transformá-la num projeto completo e funcional como viram aqui. Ele estava a aprender muitos princípios básicos do processo de concepção, de como experimentar com novas ideias, como começar com ideias complexas e dividi-las em partes mais simples, como colaborar com outras pessoas nos seus projetos, como encontrar e corrigir erros quando há problemas, e como manter a persistência e perseverança quando as coisas não correm bem. Estas competências são importantes e não são apenas relevantes para programar. São relevantes para muitas atividades diferentes.
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 -- are things that people can use no matter what they're doing in their work lives.
Quem sabe se o Victor vai crescer e se vai tornar num programador ou num informático profissional? Talvez não seja muito provável, mas independentemente do que ele fizer, ele poderá fazer uso destas competências de concepção que adquiriu. Independentemente de crescer e de ser tornar num diretor de marketing ou num mecânico ou num organizador da comunidade, aquelas ideias são úteis para todos. Uma vez mais, é útil fazer a analogia com um idioma. Quando nos tornamos fluentes a ler e a escrever, não o fazemos para nos tornarmos escritores profissionais. Na realidade, poucas pessoas se tornam escritores profissionais. Mas é útil para todos que aprendam a ler e escrever. O mesmo acontece com a programação. A maioria das pessoas quando crescerem não se irão tornar programadores ou informáticos profissionais, mas a capacidade de pensar de uma forma criativa, com pensamento estruturado, de trabalhar em colaboração -- competências que se desenvolvem quando se usa o Scratch -- são coisas que as pessoas podem usar independentemente do que fizerem profissionalmente.
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 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. 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.
E não apenas profissionalmente. A programação também nos torna capazes de expressar ideias e sentimentos na nossa vida pessoal. Deixem-me terminar com apenas mais um exemplo. Este é um exemplo que surgiu depois que eu ter enviado os cartões para a minha mãe, ela decidiu que queria aprender Scratch. Então ela fez este projeto para meu aniversário e mandou-me um cartão de Feliz Aniversário no Scratch. Este projeto não vai ganhar nenhum prémio de design, e podem ter a certeza que a minha mãe com 83 anos não está a estudar para se tornar programador ou informático. Mas trabalhar neste projeto permitiu-lhe fazer uma ligação com alguém com quem ela se preocupa e permitiu-lhe continuar a aprender coisas novas e a praticar a sua criatividade e a desenvolver novas maneiras de se expressar.
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.
Quando olhamos, e vemos que Michael Bloomberg está a aprender a programar, que todas as crianças da Estónia estão a aprender a programar, até a minha mãe aprendeu a programar, não acham que chegou a hora de pensarem em aprender a programar? Se estiverem interessados em experimentar, convido-vos a visitar o sítio Web do Scratch. O endereço é <i>scratch.mit.edu</i> onde podem dar uma oportunidade à programação!
Thanks very much. (Applause)
Muito obrigado! (Aplausos)