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