Lets teach kids to code Mitch Resnick

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

from Mother’s Day I thought well why

don’t I make her an interactive Mother’s

Day card using the scratch software that

been developing with my research group

at the MIT Media Lab we developed it to

the 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 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 well I wonder if of those 3

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 I saw one of them that featured

a kitten

and her mom and wishing her mom happy

Mother’s died and the creator very

considerately offered a replay for her

mom another one was an interactive

project where when you move the mouse

over the letters of happy mom day it

reveals a special happy Mother’s Day

slogan in this one the creator told a

narrative about how she had googled to

find out when Mother’s Day was happening

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 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 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 they created

a 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

just in the way that we’d hoped that

they would that is they created their

interactive Mother’s Day cards you could

see that they were really becoming

fluent with new technologies you know

what do I mean by fluent I mean that

they were able to start expressing

themselves and to start expressing their

ideas you know 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

you know by that by writing by 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 you know a lot of times people

feel that young people today can do all

sorts of things with technology we all

of us have heard young people refer to

as digital

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 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 that doesn’t really make you

fluent so young people today have lots

of experience and lots of familiarity

with interacting with new technologies a

lot less so of created 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 saying how can you help Phil 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 they’ve

been hundreds of new organizations and

websites that are helping young people

learn to code you look online you’ll see

places like code Academy 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 you’ve

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 UK 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 the 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 creative

people with special mathematical skills

and technological background they can

code the coding doesn’t have to be like

this let me show you about what it’s

like to code and scratch so in scratch

to code you just snap blocks together in

this case you take a move block snap it

into a stock and there’s 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 created your program

you can click on share and then share

your project with other people so 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 in 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 so they think they’re

served 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 the 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 late sensor detects a hole on the

board so as they moved 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 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 sort of be

push you in new directions here’s an

example he 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 could just say see inside and

can look at the stacks of blocks to

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

so maybe can tell you things

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 is 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 as the same thing with coding

if you learn to code you can code to

learn now some of the things you can

learn to 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 club houses a

couple years ago I saw a 13 year old boy

who was using her 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 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 a

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 a 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 to

keep 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 it 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 the teachers are thanked

by their students for teaching the

variables it doesn’t happen in most

classrooms but that’s because in most

classrooms when kids learned 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 you can understand

the reason for vera 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

of schools but he really didn’t he

wasn’t paying attention Naomi had a

reason for learning variables Sweeney

learned through coding and coding to

learn that you’re learning it in

meaningful context and that’s the best

way of learning things so his 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 a glimmer of an idea and turn it

into a fully fledged functioning project

you know like you see here so he was

learning many different two core

principles of design about how to

experiment with new ideas how to take

complex ideas and break them down at

simpler parts how to collaborate with

other people on your projects of 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 their relevance for

all sorts of different activities now

who knows that Victor is going to grow

up and become a programmer or a

professional computer scientist it’s

probably not so likely regardless of

what he does he’ll be able to make use

of these design skills they learned

regardless of whether he grows up to be

a marketing manager or 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

you know it’s it’s not something that

you’re doing just to become a

professional writer very few people will

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 you know computer

scientists or programmers but those

skills of thinking creatively reasoning

systematically working collaboratively

skills you develop when you code and

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 Kona can also enable you to

you know express your ideas and feelings

in your personal life let me end with

just one more example so this is an

example it came from after I had sent

the Mother’s Day cards to my mom she

decided that she wanted to learn scraps

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 a computer scientist but

working on this project enabled her to

make a connection to someone that she

cares about enabled her to keep on

learning new things and continue to

practice her creativity and

helping new ways of expressing herself

so you know 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