>> John Nordlinger: So thank you all very much... people watching online. It's with great pleasure for me...

advertisement
>> John Nordlinger: So thank you all very much for coming, both in the room and
people watching online. It's with great pleasure for me to introduce Mitch Resnick.
Mitch Resnick is known far better to most of you than to me, but I certainly have read of
him. He's very prolific. He was responsible for the early effort around making
programming accessible through Mindstorms and then through Scratch, which he'll talk
about today. And he comes from the MIT Media Lab, so let's welcome Mitch Resnick.
Thank you.
[applause]
>> Mitch Resnick: Great. Thanks a lot. It's great to be here, and it's nice to be here for a
few days because I think there are a lot of connections between the work that we're doing
and some of the things going on here at Microsoft and look forward to exploring ways
that we might have further collaborations.
As John mentioned, I'm talking today about some of the work we've been doing on a
project recently called Scratch, which is an effort to make programming more accessible,
more meaningful, more social. And really an effort to democratize programming, to
make programming for everyone.
And I know there are a lot of efforts these days. One of the reasons people look into
making programming for everyone is because of some of the concerns about not enough
people going into computer science as a discipline and preparing to become computer
science professionals. I know that's one of the concerns here. And although, of course,
we'd like our work to play some role in that -- in fact, our main motivation is not for
preparing people to grow up and become computer science professionals, but rather
exploring ways to make programming an expressive medium for everyone, even people
that never imagined themselves as programmers, but to see it as something where they
really can use to express themselves, to be able to think more creatively, and to just be
able to use it as a new tool for expression a variety of ways.
To start, let me just show you an example of a type of project that was done by one of the
young people who's been using Scratch. So there's a project that was done by a
13-year-old girl. Her code name or her screen name in the Scratch community is
MahoAshley. And MahoAshley really enjoyed making anime, so she was already great
at drawing anime, but she had never done any programming. She'd do lots of different
images. But someone introduced her to Scratch and she saw that she could make her
anime come alive. So let me show you some examples of the type of things that she
started working on. So this is one of the projects that she created and then uploaded to
the Scratch Web site.
When she first started making these projects and putting them up there, the Scratch Web
site is a Web site -- think of it somewhat like YouTube but instead of putting up videos
you put up your Scratch projects that you've programmed. And as she put up her Scratch
projects on the Web site, a lot of people really liked the things that she was creating, so
they'd write very encouraging comments, ask her how did you do that, encouraging her
for more. So she started putting up projects every week, sort of like a TV show. In fact,
this project, it doesn't have the title on it, but this was Episode 1 of Season 2. In fact, it
was recapping some of the things that happened in Season 1. So she developed a whole
following for the different projects that she did, these anime soap operas that she was
creating online.
But in fact the thing that got me especially interested in the work that she was doing was
not just these weekly animations that she was put up on the Web site but she kept on, you
know, enhancing it with new characters and new story lines. And then at one point she
put up a different sort of project. Rather than just putting up another episode with the
new character, she put up the following project, which in fact was asking other people to
design a character for her weekly shows. So it says design Izumeku's [phonetic] sister,
and it gives some different examples: must have red or blue hair, has to have cat horns or
ram horns. She's explaining what she wants the character to be, then other people could
put Scratch projects with their characters and she was going to select the character and
put it into her further episodes. So in some way she's here doing a type of crowd
sourcing. She's making use of the Scratch online community to get ideas but also involve
her audience. So, again, she's really learning a way of thinking, which is sort of common
on the Internet these days, but for kids to go up and be able to do that we saw as an
important way that she was using the site that we had never imagined.
But then there was a next step that after she had done this someone wrote a comment
underneath this and said I'd like to enter a character but I can't draw anime the way you
do. I really like the way you draw, can you show me how do you draw. So she then put
up the following project. So this one says how to draw a certain character. And every
time -- I can put on the soundtrack, and every time I hit the space bar it goes step by step
and shows how to draw how she draws her anime characters. So here she was doing her
own interactive tutorials.
So, for me, in the space of a few weeks MahoAshley had been creating these weekly
animations, she then puts an online contest of getting people to contribute and then starts
making interactive tutorials. In my mind this is the type of creative thinking we really
wanted to inspire with Scratch, to have people not just put up projects, really think of
whole new genres of projects to let their -- to play at their imaginations and be able to
design, create and share things based on their own imaginations.
So as we were developing Scratch, you know, I think we start from the beginning, how is
it that we can reach out more broadly, how can we make this different than -- obviously
been a lot of attempts in the past to try to bring -- make program language accessible to a
much wider range of people. Maybe one of the best known was from my mentor,
Seymour Papert, who was one of my advisors when I was in graduate school who
developed along with others the language Logo which in the '80s got out to many
different people but then sort of hit a plateau and never really lived up to its dream of
being a type of language to let everybody express themselves computationally.
At the time was using a little graphic turtle to draw drawings on the screen. At the time I
don't know if it was in tune with the times, but it's computer power advanced and people
started using computers for more things, it started to feel like it doesn't keep up with the
times and it really was no longer a tool to let everybody express themselves. And right
now I think there aren't tools like that, the way that Logo was in the '80s, that would
allow everybody to really create their own dynamic interactive content.
I mean, we hear a lot these days about Web 2.0 and lots of people contributing things, but
they usually aren't contributing dynamic interactive content. People contribute text and
photographing and even video, but generally not dynamic interactive content. And I
think that's really missing out on something. What we really want to do is democratize
the creation of dynamic interactive content. And thinking how we could do this, we saw
three of the things we needed to do was to make it more accessible, more meaningful,
more connected to what you're really interested in, and more social, so it's connected with
other people.
So let me show you a little about how you use Scratch, start out with some of the things
we did to make it more accessible, to make it easier for people to be able to start creating
projects.
So here's the Scratch screen. It starts with character, the Scratch cat. If we're going to
make the Scratch cat move, I can pull the block that says move ten steps. We're going to
double click on it, the cat moves. If I want to make it play a sound as it's moving, I can
just pull -- go to the sound category, pull out a block that says play drum, choose an
example, maybe a cymbal sound. If I snap them together just like Lego bricks, it now
moves and plays a sound. If I want to go backwards, I can just move minus ten steps, so
kids will just start playing with numbers in a pretty natural way. Let's have it play a
different sound as it goes backwards. A hand-clapping sound. Put them all together, we
have a little dance.
If I wanted to keep dancing, I could just take a forever block, and notice there's a space in
the middle, so it's suggestively shaped. It indicates something should go inside. So it's
just dragging a few blocks together. I've already created a little program that will
continuously make my cat dance, without any syntax, without worrying about where is
the semicolons, square brackets. And one of the ways of making it more accessible was
just getting rid of a lot of that syntax to make it so things only fit together in ways that are
going to make sense.
So you can then, you know, add other characters if you want to. I can add in other
images. What kids will often do is what I did here, made a picture of myself, grabbed a
photograph of myself, put it in here. And then I could do various things. I could -- here's
a command that does a type of image manipulation as you would see in Photoshop. So I
can choose a different image filter, like here's the whirl filter. So I click that. It whirls
the photograph, so you can distort it. But of course this isn't a programming language; I
can make it interactive. So I could say something like I want to set the amount that it's
whirling, then I'll go in the sensing category, I'll say it to the X position of the mouse, and
I want to do that forever.
So we want to keep on setting the amounts whirling based on the X position of the
mouse. So you see now as I move the mouse back and forth I can whirl my face around.
So very easily I make a little interactive application, which typically is very difficult to
make a little interactive -- you know, things like that online. And here just putting a few
blocks together I can do it.
Even while it's going, one of our goals to make it more accessible is also making it what
we call more tinkerable. So one of our goals was tinkerability. Because we feel for a lot
of times with computer science and computer programming is taught in schools, it's all in
this very planning-oriented way; come up with a plan, develop your plan, your goals,
each of the things you need to do, then finally you write the code and try it out.
That works, okay, for some problems for some people. There are a lot of people that
that's not what comes naturally to them. They'd rather start experimenting, trying things
out. If it works, then, you know, make it -- if it doesn't work, make a modification, try
something different. Tinkering with things as you would tinker with Lego bricks as
you're building. As kids with Lego bricks, they don't come up with a whole diagram of
how they're going to build a house; they start putting blocks together, change their plans
as it goes on. We want to encourage that with programming as well.
So, again, to make it tinkerable, encouraging as this program is running, I can even, you
know, pull out other things. Let's say I want to also -- I'm going to set the color based on
the Y position of the mouse. So as I go up and down, changes color, go this way it
whirls, go diagonally it does both. So it's very easy to just keep on playing with code,
sharing code, and trying things out in easy ways.
Also even just the fact that over here notice on my -- here I have a block that's no longer
being used, it's just sitting there, it's sort of like on your physical desktop. You have
things -- you have some papers you're reading, there are other papers in the pile that
you're not using right now. Too often when people are programming, they have to have a
file that has only the code that's going to run. Here we want to have it more to support
tinkerability. You want to have things around that you might use later. I don't need that
right now, I'll put it aside. So we really tried to design the software for that type of
tinkerability and accessibility.
So I think we can see that the software makes it easier to get started with things. We also
know that it's not just a matter of making it easy. In fact, most people aren't necessarily
interested in doing things that are easy; what they want to do, they want to do things that
they care about. But I think that's a misconception oftentimes in doing things with kids.
People say, oh, let's just make it easy for kids. Most kids don't want things easy. They're
willing to work very hard at things if they care about it. So we wanted to make sure that
kids can make things with Scratch that they really care about.
So the example where I brought in my own photograph, kids want to bring in things that
they're familiar with from the world so they can, you know, grab different images, bring
it in, work in a big variety of different projects, the way that MahoAshley did, whether
it's make your own animation or a contest or tutorial. We wanted to make things that you
could do lots of different things with.
In fact, one way we think about that is again, my mentor, Seymour Papert, used to talk
about developing software with a low floor and a high ceiling, meaning that it's easy to
get started, you can keep doing more and more complex things with it. And I think that's
a good goal.
One thing we've paid a lot of attention to with Scratch is what we call wide walls. It's not
good enough to have things that are easy to start with and do more complex things with
it. You have to have multiple pathways of entry, lots of different ways of using the
software. Because we know that people out there have lots of different interests, there's a
great diversity of interests, and we want to make sure that Scratch can support that
diversity of projects that match up well with the great diversity of interests that people
have. So that's what we mean by wide walls, to open it up so people can do lots of
different things with Scratch and things that they are really going to care about.
I'll just show some examples. That's also a reason why we made sure that Scratch
supported lots of media, different photographs, images, sound, music. Again, with the
demographic we were trying to reach, we were trying to go especially for age 8 to 16. I'll
come back later about who it is that's using Scratch. We knew that kids of that age do a
lot with manipulating media. They love to manipulate media different ways. So we
wanted to make sure it was easy to program media in a variety of different ways.
I'll show you like an example. Here's a project that was done by -- this is one of the early
projects that went up on the Scratch Web site when we first started the Web site. It was
two years, May 2007, we open up the Web site. This is one of the first projects that came
in. It was from a girl in Germany who made this. I think you'll see that she's able to mix
together lots of different media.
So actually I'll put it in full-screen mode. So again she can do -- you put in your own
voice, put in your own graphics, put in your photographs. In this case she programmed
so I could move the bee with the arrow keys. And here are the arrow keys. So again
she's making a whole -- a little story game where I now have to go and try to find the key
to get the grasshopper, I'm given clues along the way.
So again the thing to see here is that she was able to bring in -- none of these graphics or
photographs came with Scratch, but she was able to grab photographs, make her own
graphics with the paint editor that we have, record her own voice. That's a big way to
make things meaningful, to bring your own things into the project. You don't just want to
be programming other people's stuff, you want to program your stuff. And that's a big
part of what we want to do with Scratch. Let me just show one more example ->>: [inaudible]
>> Mitch Resnick: What? She said she was 14. Like a lot of these we just don't know,
but she reported as being 14.
Here's an example from -- this is one that was done, again, by another girl that was about
the same age. I don't remember the exact age. But in the early -- actually, no, this was a
variation of this. This was done by a boy at one of the computer clubhouses. There's a
network of after-school learning centers we helped start for young people from
low-income communities, and that was one of the first places where we tried out Scratch
where it was under development. So actually while it was in development, he was
working on a project similar to this. It wasn't this exact project, but a project like this.
And this is a type of game. You can see when I start it, the big fish follows the mouse, so
I'm moving the big fish by moving the mouse. My goal is to try to eat the little fish. I'm
not doing a very good job. Okay. So he was doing like this, but then he wanted to keep
score. When I was visiting he showed me, you know, his project that was like this, and
he said but I want to keep score, how can I keep score.
So I showed him that there's a category here called variables. If I go there I can make a
variable, I'll call it score. Notice it puts a little readout here with the score and creates
some blocks over there for setting the score, changing the score. I showed him how I
could drag out the changed score by one block. And when I click it, it changes the score
by 1. And he immediately saw if you just put that block in the program where the big
fish eats the little fish, then the score will go up by 1 every time the big fish eats the little
fish.
So he saw that and he reached out his hand to me and he said thank you, thank you, thank
you. And what went through my mind is I wonder how often algebra teachers get
thanked by their students for teaching the variables. And it doesn't happen very often. I
think the reason is it's usually not introduced in a way that's so meaningful.
So again our goal is make sure you introduce things to kids in a way that's meaningful.
Let them bring their world into it through different media, introduce activities that they
care about is a big way in which we're doing this.
And, in fact, you know, there are different choices to make on this. And, again, and it's
not that it's necessarily a right or wrong choice. There are different ways of doing it. In
fact, just to point out, probably the language that Scratch is most similar to is Alice from
Carnegie Mellon, which is inspiring in many ways. They made a different choice with
this by going with 3D graphics. It's inspiring to a lot of kids because, you know, again
they see lots of 3D graphics in games, so they can control some 3D objects, is one way of
making things meaningful.
We made explicitly a very different choice. One problem with going with 3D graphics is
it's hard to bring your own things into the world, so there's this tradeoff between how
these very beautiful, sophisticated graphics that you get to control or bring your own
things in there that aren't nearly as richly designed, but it's personally of yours. So with
Scratch we're placing the bet that there are a lot of people who really want to bring their
own things into it. And it's not either/or. There's advantages to both. But those are some
of the type of decisions we made as we were doing the design of Scratch.
This is from a Scratch parent. So a parent who wrote us. We get messages all the time.
Just read it. This is from a parent, said: I have to admit I initially didn't get why a kid's
programming language should be so media centric. But after seeing my kids interact
with Scratch it became much more clear to me one of the nicest things I saw with Scratch
was that it personalized the development experience in new ways by making it easy for
my kids to add personalized content and actually participate in the development process.
Not only could they develop abstract programs to do mindless things with a cat or a box,
but they could add their own pictures, their own voices to the Scratch environment, which
has given them hours of fun and driven them to learn.
And that's exactly what we were hoping to do. So it's satisfying to us when we see that
some people are using it that way and appreciating it.
The third component of what we went to with Scratch was also make it more social. Too
often there's the view of programming that I think is common for people who don't know
much about it is that it's someone sitting by themselves in front of a screen in a totally
isolating way. And we know that for a lot of people to get them engaged in this activity,
to be expressive with programming, we wanted to make it social, to be able to have
where you can both share your creations with others to see what others are doing, to
collaborate on projects with each other. So for doing that, right from the beginning, as
soon as we introduced the software, the application, we introduced a Web site at the same
time. The two were coupled together from the beginning. It wasn't just an add-on; we
developed in tandem with each other, you know, this YouTube-like site where you can
see the newest project that people have uploaded, featured projects.
So when you're working in Scratch -- and I forgot, I should have shown this -- notice at
the top is a save button as you would normally expect. See, there's a button there that
says share at the top. If you work on a project, you click the share button and it
immediately takes your project and puts it up on the Web site so it makes it very easy to
take your project and share it with others so that others can see it. So there's a real
motivation where you have an audience for the things that you create.
But you also have a great library of other people's work, so you can go and get inspired
by what others have done. And we've seen, you know, that people spend time as they
start working on this, they get to see -- they put their own things up there, and they get
feedback from others as other people write comments on what they've done, which gives
them new ideas, and then they look around the site to see what others have done to give
them ideas on what they're doing.
Let me just show you some of the different ways that the Web site has been used.
So I'll show some more of these projects. These are all projects that were taken from the
Web site. There's one that I just showed before. In the early days of the Web site, like
one thing was we started seeing -- you know, someone made a Tetris game like this and
with the arrow keys I can move it around and flip it around. But then not long after this
was up there, some people saw this and said, well, that's nice and it's nice to play Tetris,
but there are a lot of ways this can be improved. You know, you could add color to it,
add instructions, add a look-ahead so you can see what's coming. And before long we
started to see other projects like this that enhanced it in different ways.
Again, put different types of scoring in there. Right now if you go to the Scratch Web
site there are dozens of Tetris games that most of them are coming from a few initial
Tetris games that people just keep remixing and remixing. On the Scratch Web site,
there are now nearly 350,000 projects that have gone up there, and more than 50,000 of
them are remixes, meaning that people took someone else's project, changed the code and
put it up there. So it's a real open source community where people are taking other
people's code, remixing it, either changing the code, changing graphics and putting it
back up there.
At first it led to a lot of complaints that kids would say so-and-so stole my project. But of
course that was good discussion to have. They would then say no, part of the culture of
Scratch community is that the idea is that you should share things with each other, and
then we put things in the Scratch it should be -- you should feel proud if somebody's
using some of your code.
You should also of course if you take someone else's code give acknowledgment. And
people, you know -- sometimes people do, but they didn't always give acknowledgment,
so then we updated the Web site so we keep track of this now where we keep track of if
you download a project, make a change to it, when it's uploaded -- when it's posted on the
Web site it will say so-and-so's project based on a project by, and you can see the whole
lineage of it, so you can see where it came from. So for these Tetris games, you could
see how it traces back and where it came from.
And then actually to encourage that behavior on the homepage one of the categories we
put was top remixed project. So if your project got remixed by other people, it ended up
on the homepage. So it's a source of pride to be remixed more than other people. So,
again, part of the way we designed the site is also to encourage certain types of ways of
thinking about your activity on this site and certain ways of thinking about collaboration
and sharing. See, I lost the Tetris game while I was talking.
Now, we expected there'd be things like Tetris when we made the -- when we [inaudible]
made Scratch. I'll show you a few things now that took us by surprise. The next one
took us by surprise just because of its sophistication. As we were developing the
software, we never imagined that someone really could do a fairly true version of Donkey
Kong using it. But it's a pretty good version. So the first thing that amazed us was -oops -- just how sophisticated people could get using the software that we had given
them.
So people really used it to do much more sophisticated things than what we anticipated.
And again and again we're surprised by the sophistication. But maybe more rewarding to
us was not the sophistication, but the diversity of projects and the different ways that
people thought about collaborating that we never imagined.
So here's an example. This was done by a girl in England. I think she was about 12
years old. And she put up a project that all it had were a bunch of different simple
animated characters. And with this project in the project notes she said I don't really like
making games or stories, I just like making characters. If you like my characters, please
use them in your games or stories and give me credit. She said, if you want a different
type of character, leave a note below and I'll make a character for you. So she was
opening up a type of consulting service on the Scratch Web site.
And in fact sure enough she started to get requests. So here's a project that was done by a
girl in Russia who asked for a certain type of project -- if you see the style here, I think
you'll recognize it in this game. So this character was made. And here again it's one of
these games where you can move the character and if I go to the stove I can eat and get
more food and get energy. And if I walk outside I have to be careful not to fall down.
So before long there were four different kids working on these games and they started a
whole company that they called Crank Inc. that the four of them did and they started
posting notes about who they needed for Crank Inc. And there was a kid from New
Jersey who was a good programmer who joined them and someone else who was good at
graphics, someone else who had scrolling backgrounds that they could do. So he came
in. So again they started going, kids in different -- you know, it was like -- it was four
kids in three different countries who were sort of working together on these projects on
the Web site.
And in addition to just creating projects, they started to use the Web site as a way of
communicating among themselves. It's like when one of them had a birthday, one of the
kids in the group put up this project. So it was a birthday card for SonicPops was the
screen name for one of the kids who was making the games. So again just using -- once
you put a medium out there, what we'd hope was that people would find all sorts of
different ways of using it, and sure enough it was happening.
And there are lots of other ways that people then started communicating to others in the
community. Here's one of my favorite examples was one kid put up this project that he
called SNN, for Scratch News Network, and you see the cat there is giving some news
about the site because the Lego company donated some images for the Web site, could
then be used in your Scratch project. So this is news about the new things happening on
the Scratch Web site. And when I first saw this I thought that's cute, it's a simulated
newscast. And then I stopped myself and I said this is not a simulated newscast; this is a
newscast. It's reaching a real community, it's somebody giving news to a real
community. This is a real newscast. And he could go -- he would have these regular
newscasts about what's happening on the Scratch Web site.
And soon there were a lot of copycats, newsletters and TV shows where people are
saying -- people doing reviews, so it's a weekly newsletter with the reviews of their
best -- what they think are the best projects of the past week. So there are a lot of
different ways that people then are using it to communicate with each other.
Another type of communication, the next one is one where people start putting up
projects to give advice to others. So this is one about giving advice to how to get your
project more popular on the Scratch Web site so that you could get featured on the
homepage of Scratch.
[demonstration playing]
To love your project. Means you can click I love it and then shows up in the homepage if
you get a lot of love.
So again you get an idea. So, again, people are clearly learning some things about how to
work on a social networking site and how to do it -- and sort of sharing those ideas with
each other. I also like this sort of a nice, simple, minimalist design. It was just his voice,
a nice, little, simple time on it. So again they're really learning about ways of expressing
themselves through this new medium.
There's also, you know, although we started out [inaudible] when we started out, a lot of
the -- when Scratch first came out in 2007, it was used mostly by kids at home and some
after-school centers. But over the past year it started to get used more and more in
schools as well. So I wanted to show a few projects of how it's starting to get used in
schools.
This is a project that was done at a school in India where we have a collaboration, in
Bangalore. There's the school I was just mentioning to Bill. I know you're from
Bangalore. So here's a project where they've been studying the different layers of the
earth. And after studying it, he then made this sort of animated story where he talks
about what's happening at the different layers of the earth. So again he's speaking his
native language of Kannada. As he goes down you'll see the now sort of, you know -sort of a tour as he goes down, explains what's happening at different places. It's a great
way -- gets the water table, there's some nice sound effects of hitting the water.
So in some ways they're using this the way that in many schools they use PowerPoint
today. But this gives some different capabilities of being able to add more dynamic
interactive things in a different way. So this tool can be used in many different ways. It's
not just about in your computer literacy or computer science. Of course, you could use
this for writing your book report, your social studies report, just different ways of telling
about the things that you're learning and communicating.
Here's one that was done for social studies class. This was by a boy in the United States
where they were studying the island of Rapa Nui, Easter Isle off of South America. And
at the end of the unit he wanted -- they were supposed to write up something about the
local -- what they learned about the local economy and the local culture. So he made a
little simulated world in the spirit of SimCity, and again you can use the arrow keys to
move the character around. In this case, I know if I go to the tree I can cut down a
branch -- did I get it? If I can get a branch -- oh, there -- to make a fishing rod, and then I
can go and I can get fish, and if I can get fish, I can get -- you know, I'm -- I can
contribute to the local economy.
So this way of creating this to show what he had learned about the local economy and
culture of Rapa Nui, but also to engage other people to express his ideas to communicate
with others. [inaudible] too often school reports are just something you have to do and
only the teacher reads it. Here it was something he was doing to really communicate
with others.
I'll show one last example. This was in the science class. So someone did a science
project where it was about testing reaction time. So they put up a project and it says
when the color turns hit the stop. And what it does is it times how quickly it hit the stop
after the color changes. So it collects data about how quickly people do this, and then it
asks them different questions about how old are you, what sports do you play, how much
do you weigh, and then tried to do different types of correlations between age and
reaction time or what sports you play and reaction time.
So, again, this is the type of project someone could have done as a science fair project
with the kids in their class, but he was able to do it with kids all around the world and get,
you know, much wider range, much larger amount of data and much more diverse set of
data by leveraging the capabilities of the Web site.
So I hope you see from those examples the rich range of things that are happening on the
Web site, which again was to us one of the most rewording things, because, you know,
we had this goal of wide walls, major pathways to entry. Because we know that people
are going to find it most meaningful if they're able to do things they care about.
So I think the examples to us show that there really was this, you know, rich collection of
possibilities that people are able to do, and also was able to bring in kids who are
especially interested in the social dimension of sharing their project with others. Again,
different kids get attracted for different reasons. Some just enjoy the excitement of
solving the problem; others want to have someone where there's an audience, where they
get feedback from the audience. So others want to collaborate with others on their
projects. This opens up to all those different possibilities.
So it's now become a very active and vibrant online community. Every day on the
Scratch Web site now is more than a thousand new projects every day that come up to the
Web site, and so as I said there are more than -- there are about 350,000 projects now.
There's still a lot of challenges. I was talking to some people before. Right now we don't
do such a good job of giving tools to find projects that you'd be interested in. You know,
there's standard tagging and some other ways of doing it. But I think there's a lot more
we could do on the Web site to help people be able to find a project they're interested in,
find people they'd be interested in collaborating with. So there's many things we're still
working on in trying to do that.
Here's just a histogram of the ages of people who register for the Web site. These are
self-reported ages. We assume they're correct. The peak is at age 12. So the main peak
is between age 8 and 16. So it's really the age we aim for is the age that we have most of
it. I think this is an artifact. I think that's something where the -- I think it's the age that
was set back to like 1980 or something. So it's something that -- if [inaudible] it shows
up there.
But you can see there's a fairly long tail, especially people in their 20s, these are probably
some parents or teachers, but there's also a fair number of people who are just using it as
hobbyists, and if they want to send an interactive birthday card to a friend, they use
Scratch, make an interactive card with a picture and then talking and then send it to a
friend. So there's a fair amount of views, even with adults, even though our main goal
was for the 8- to 16-year-old age range.
Just, again, a quote from a 13-year-old girl who started one of these companies who
worked with other kids in making games. There's a company called Blue Elk, and they
say: What's fun about Scratch, about organizing a company to write games together is
I've made a lot of friends, learned lots of new things. I've learned a lot about different
kinds of programming by looking at other games and with interesting effects,
downloading them and looking at modifying the scripts and sprites. I really like
programming.
Also when I started with Scratch, I didn't think I was a very good artist. But since then,
just by looking at other people's art, asking the questions, practicing drawing using
programs like Photoshop and Scratch paint editor, I've gotten a lot better at art.
Again, we like the fact that kids are both programming, doing things with art, and by
working at it starting to feel differently about their capabilities with us.
Another thing I've learned while organizing Blue Elk is how to keep a group of people
motivated and working together. We could all learn to use -- we all need to learn a little
bit more about that. I like Scratch better than blogs to social networking sites like
Facebook because we're creating interesting games and projects that are fun to play,
watch, and download. I don't like to just talk to other people online; I like to talk about
something creative and new.
So, again, we have some kids that want to be there because they want to work with other
kids and express themselves working on creative projects. [inaudible] more place for
kids to do that and more ways to encourage kids to be able to do that.
I think as kids work on Scratch, they're going through what we sometimes call the
creative learning spiral. And we think that some of the best learning happens when kids
start with imagination, they have an idea of what they want to do. But just imagining it is
not enough. You then have to create something. Scratch lets them -- you make it. They
program the different type of interactive story. You can then play with it and experiment
with it. You can interact with the things you've created. You share with others on the
Scratch Web site. Other people then give feedback on it. Based on the comments you
get on the Web site, it leads you to reflect, you think about how could I have done this
differently, that was a good idea, maybe I'll add this other feature, and then let you
imagine new ideas.
So we see kids on the Web site going around and around in the creative learning spiral
which we see is some of their richest approaches to learning. And it's exactly what we're
hoping to support in getting Scratch out there.
And as kids go around this creative learning spiral, I think what we see them doing is we
see them learn to think creatively. Like MahoAshley coming with many different genres
of things that they're -- different types of projects or creative ways of solving problems.
They're learning to reason systematically. We tried to make the blocks as easy to use as
possible, getting rid of the syntax. But there's still a lot of careful reasoning that needs to
be done. Kids need to analyze and reason carefully in order to make their programs
work. And they need to work collaboratively on the Web site to get ideas from one
another. And different ways of collaborating that weren't even possible ten years ago
kids are learning on the Web site.
So this is our real goal is to see how we can help kids think creatively, reason
systematically, work collaboratively. Because we think those are some of the most
important skills to have for the 21st century, no matter what you grow up to be. And also
in your work life or in your personal life or in your civic life in your community, these
are skills that are going to be really important to having a successful life and a satisfying
life, and that's what we want to support with Scratch.
Another dimension that we think kids are learning is what's come to be called
computational thinking, learn some core ideas about computation, just the idea of an
algorithm, what it means to describe process, what it means to simulate, to model. These
core ideas about computation are things they learn as they start making even relatively
simple projects with Scratch. And I think it's important to ask why computational
thinking.
As I said in the beginning, we have some particular reasons why we're very interested. A
lot of people want to support computational thinking and bring it to have more kids learn
to be computational thinkers, to prepare more computer science professionals, and that's a
worthy goal and I think that's one good thing that can come of it.
I must admit, a lot of our motivation with Scratch was not just with that but also to enable
personal expression. We want people to be able to express themselves, to give everyone
a voice, to let people use the media of the day to be able to express themselves. We don't
want people to just be pointing, clicking, interacting. We want everyone to have a voice.
We want people to be able to design, create and invent, not just browse, click, and chat.
To enable creative thinking in the ways we talked about. To enable learning of other
things. As you work with Scratch and learn the computational ideas, it helps you learn
other things. These kids do models of -- we have kids doing a model of the cell, so
they're learning programming, but they're learning other things through the programming
activities.
And, finally, preparing responsible citizens. I mean, just to be a citizen in today's society,
one needs to able to think of these computational ideas.
Too often when people try in schools to help engage kids in computational thinking, in
my mind too often is done by saying here's a list of concepts you should know, I want
you to know that it's important to learn these concepts. And, yes, they're important
concepts, but I think as we think about computational thinking, we think a lot about what
are the pathways. And as we developed Scratch, we thought what are the ways to get
people engaged. It's not just a matter of what we want kids to learn, but what are the
ways to engage them in learning those things.
So what we did, we've tried to support personal connections, as I explained, put yourself
into your project, let kids work on projects they care deeply about, support social
connections, let them learn along with others. To connect ideas to activities. It's not
enough just to say these are the important concepts. Concepts are learned best when
they're embedded in meaningful activities. So we always think about the activities, not
just the concepts.
Reach beyond problem solving. Oftentimes in school people say we have to teach
problem-solving skills. Yes, problem solving is important, but designing, creating and
expressing yourself is important as well. A lot of the learning that goes on shouldn't be
just to help solve a problem that someone's given you but how to express yourself, to
create things, to design things. A big part of what we do in our lives, a big part of what
you all do here at your jobs is not just solving a problem that someone gave you but
coming up with a design that's going to satisfy some situation that has arisen.
So this is what we're trying to do with Scratch, to satisfy these approaches to have young
people go up as computational thinkers.
I want to say a few words about some of the future directions that we're going with
Scratch. Right now a lot of the use of Scratch is on the screen with the examples I
showed you. We also want to go off of the screen. As John mentioned earlier, in some
of the work I've done over the years -- I've done a lot of work with the Lego toy
company. We developed the early prototypes that led to Lego Mindstorms; it's another
robotics kit.
And we see kids learning a lot where they're dealing with things in the physical world.
Kids grow up in the physical world, they have passions about the physical world. So we
want to engage them in thinking about the physical world while they're doing things on
the screen.
So one way we're doing that is through what we call the Scratch board, the Scratch sensor
board, so it's a board that connects to a USB port and then it has a slider. It also has
certain sensors, a sound sensor, a light sensor, also a play where you can plug in and
make your own sensors, so it enables kids to make projects like this.
So this was a project that was done, and I just found this when I was visiting an
after-school center in Hong Kong and they showed me this project they had done with the
Scratch board.
So what it is is a project that's just a -- it's about slowing down a tree, and they made a
physical saw. See, there's a hole in the board and it's over the light sensor. They look at
the light sensor on the Scratch board and when the hole goes over the light sensor can see
the hole is over, so they can detect how they're moving the saw, and then they control
this. So this is a case where kids are making their own physical interfaces. So it's -- they
shouldn't be restricted to just joysticks and mice; let them make their own physical
interfaces.
And, again, we see lots of ways that kids use this, of taking things in the -- from the
things -- sensory input from the physical world to control things on the screen based on
the amount of light in the room, change things on the screen. Or even with a tilt sensor
use a laptop and then actually as you move it have the tilt sensor control what's
happening on the screen.
Another direction we want to go is reaching out more globally. In the latest version of
Scratch -- in fact, let me just show this -- you notice there's a button here called language.
I can choose, you know, from a wide range of different languages. So if I choose -- I
think this is Hebrew. My project will then show up in Hebrew. So basically if a kid in
Boston wrote that project in English and put it up on the Web site and then a kid in Tel
Aviv downloaded it, they could then see it in Hebrew, make changes, upload it and it
could be transferred back and forth.
So since almost all the words are based on these blocks, it's quite easy to just change
from one language to another. We now support I think it's close to 50 languages. Also,
we did these 50 languages without paying a penny to any translators. It's an open source
project, we just -- you know, there's a now worldwide community. We put up a -- we
used a Web site that supports this and we just asked people to fill out a spreadsheet.
There are a few hundred words and phrases in Scratch. We just had people put it up, and
there's a place for discussion. Obviously people have differences of opinion between
what word should be used.
At first we thought we could just have one Portuguese version, but there has to be a
Brazilian-Portuguese version, a Portuguese-Portuguese version. There's a
French-Canadian version, a French version. But people have discussion about what
words we should use for different things, and then we support them all in their interface.
We also started to put up the Web site. The Web site right now, we're still trying to
figure out what to do with this. Even though you can change the language in the
application to any language that you want, most of the comments on the Web site are in
English, and most of the discussion on the discussion forums are in English.
So we're experimenting now just last month Portuguese -- Portugal Telecom, the main
telecom company in Portugal, worked with us to put up their own Scratch Web site and
we gave them a special version of Scratch that when kids in Portugal hit the share button,
rather than their project uploading to the server at MIT, it uploads to a server at Portugal
Telecom and shows up on their Web page. And the discussion forums here are in
Portuguese.
Again, there are tradeoffs here, because right now they don't get to see projects done by
kids in China or India or Brazil. So we're trying to figure out the best way to satisfy both
of these, to be able to have some local sharing of ideas, but also be able be see what's
happening globally. So we started experimenting on ways of doing it.
Our second example, by the way, is we have -- we're working with a group in the United
Arab Emirates who's also doing a Web site. So again we're experimenting, but these are
things we're still in the process of learning.
We're making versions of Scratch to go on different platforms. We had versions that
were running on the OLPC XO, on the Classmate. In fact, I have the Classmate here.
We have a version of Scratch running on the small -- the small-screen Classmate. If
you're interested afterwards you can come up and see. I should add it's with support from
Microsoft that made a lot of this possible, that they were real strong supporters and
helped provide funding for doing some of the -- for supporting the internationalization
and bringing it to these different platforms.
We're also trying to bring it to smaller platforms, to handhelds. If you come up
afterwards I can show you some of the work we have with the version of Scratch running
on handhelds. Obviously a big user interface challenges that we're still working on, that
we're still trying to figure out the best ways of handling it.
This is one of my students, Eric Rosenbaum, did a version of Scratch to control
characters in Second Life. So again it's using the same type of Scratch blocks, but some
different vocabularies to control objects in the 3D shared world. Because right now in
Second Life it's easy to create objects, but it's really difficult to create behaviors. There's
a scripting language that you basically need a Ph.D. in computer science to use, and we
wanted to make it so that everyone could be able to control behaviors in Second Life.
So again this is still an early prototype, but a direction we're headed.
We're doing a lot in the robotics area. NEC, the Japanese company, has a robot called
PaPeRo, and we have a version of Scratch to control PaPeRo. This used to just be an
entertainment robot, it would be at trade shows and dance around and say things, but now
kids can program PaPeRo themselves.
We're starting a Web site, again with support from Microsoft, called Scratch-Ed that
brings the -- the goal is to bring together educators who want to share their ideas about
Scratch. So where the main Scratch Web site is mostly for kids sharing their Scratch
projects, Scratch-Ed is for educators to share stories about Scratch, to share their lesson
plans or curriculum ideas about Scratch. So we'll provide some ideas and resources
there.
We're then going to try bringing together the community. So this is in beta form now. In
May we're planning to launch Scratch-Ed. If people happen to be interested, if you write
to scratch-ed@media, you can get -- find out more. You can be put on a mailing list
about that.
We're also on May 16th holding a day called Scratch Day. Last summer we had a
conference at MIT where we invited people to come to MIT to share ideas about Scratch,
and it sold out a month ahead of time. We had 300 educators come, and it sold out the
conference. This year rather than having people come to MIT, about several weeks ago
we put out the word on the Scratch Web site to say rather than come to MIT we want
everyone out there to make their own Scratch events all on the same day, on May 16th.
I just grabbed this last night from the Web site. So you can see just in the first few weeks
there's already a pretty big range of places that are offering Scratch Day activities. It's
one of the things we're also -- in my visit here I'm going to talk with some of the folks
from Microsoft about different partnerships we might have for organizing Scratch Day
events to spread the ideas and to bring people together.
Because on the Web site we get lots of questions about that. People say they like Scratch
and they want to meet other local Scratchers, but they don't know where they are. So this
is a way to try to bring together local people. Because for all the advantages of a virtual
worldwide community, there's still something very important about meeting other local
people.
Let me just end with a couple -- this is too long, but I'll give you it briefly, just some
other things that people have written to us, just about doing it. Again, to capture some of
the spirit of what we're looking for. This is someone who says, you know, that if you
grow up using the Logo programming language, as I mentioned before, and he attributes
his early passion for computers and technology, the work you did in Logo. But he says a
few weeks ago he heard his 9-year-old and 7-year-old sons talk about animating their
sprites, their new game. I watched them and quickly learned it was about Scratch.
So clearly they didn't learn about it from him, the engineer parent, they learned about it
somewhere else. He watched them.
The combination of social networking with Scratch and critical thinking and analytics
made it clear there's the next Logo. I've worked in high-tech for 16 years, currently run a
global engineering organization, I've watched a succeeding generation of college students
have lost the passion for computers those of us from the first PC generation had. Too
often I see kids only interested in being consumers of technology, not in building it.
Scratch is a breath of fresh air.
So this is what we're looking for. Turn everyone into creators, that everyone -- you
know, so many people interact with computers these days, but it shouldn't be about
interacting, it should be about creating, designing. And that's what we were aiming for.
And I'll finish with one final quote that I got from the editor in chief of communications
of ACM, you know, the leading journal. Wrote to me a couple months ago to ask me to
write an article about Scratch, which is nice. It's nice to be published there. But what I
liked best was the little anecdote he told me about how he had learned about Scratch. He
said that a couple days ago a colleague of mine [inaudible] told me how she tried to get
her 10-year-old daughter in programming and the only thing that appealed to her
daughter hugely was Scratch.
And that's exactly what we hoped to do. We want it to reach kids who hadn't imagined
themselves as programming, who were turned off by a lot of other programming
approaches.
A lot of other programming approaches out there work well for some kids, but don't
reach broadly. Our goal was to reach broadly, because it's time that it should be for
everyone. We really want to democratize this idea the same way that everyone should be
able to express themselves through writing. Not everybody's going to grow up to be a
journalist or a professional writer, but everybody should learn to write just to express
their ideas.
We feel the same way with programming. Most people won't grow up to be professional
programmers like many people in this room are, but everyone should be able to express
their ideas. That's what we're trying to do with Scratch. We still fear we're at the
beginning of this. We're exciting about what we're seeing and we look forward to
working together with Microsoft and others to try to engage more and more kids around
the world with these sorts of experiences. Thanks a lot.
[applause]
>> Mitch Resnick: I'm happy to take some questions.
>>: So what do you imagine the path is past Scratch? Somebody gets enamored and
wants to go to the next level. Are they going to be really disappointed when they see
what's waiting for them?
>> Mitch Resnick: No. This is a topic that comes up a lot in the Scratch online forums.
But some kids start to look for other things.
The first thing I'd say is for some people, they don't need something beyond Scratch
because they just want to make interactive birthday cards for friends, and that's all they're
going to do, and Scratch is fine for that. But for some people they do want to do more.
Scratch, it's limited in a wide variety of ways. Some people might want to go further.
What we usually answer is it depends on what it is they're interested in. Because kids
who are really interested in doing different types of graphic animations and different
types of visual effects, we encourage them to try processing. For people who want to do
different things with 3D worlds, we encourage Alice. For certain other people we might
suggest Flash and ActionScript. Others might go to Flowgram or other versions of Basic.
There are different things for different people based on what it is they're looking for. So I
don't think there's any one answer. I do think that our hope is -- and we don't have a lot
of research on this yet, but we think that Scratch will be a relatively good foundation for
moving on to a lot of more traditional environments, because in some ways Scratch is
conservative in many ways for a graphical programming language. Because if you look
at the Scratch stacks of blocks, it basically is words after one another in a sequence of
actions, like in a text-based programming language, where a lot of other graphical
languages is a much radically different paradigm. The paradigm with Scratch, although
we got rid of a lot of the syntax, the paradigm is pretty similar to traditional text
programming. It's ->>: [inaudible]
>> Mitch Resnick: Yeah, right. Yeah. Yes. Certainly these are easier. Actually some
things in Scratch -- you can deal with parallelism a lot easier in Scratch, you can put a lot
of different stacks, click on them. You can trigger them to start at the same time. Certain
things are easier to do in Scratch.
But I think it's not -- we think it's a pretty good foundation to help others get started with
more traditional text-based languages. But I must admit we haven't really done studies
on that yet, but that's what we think.
>>: Have you thought of exposing an equivalent representation of the graphics that
people could edit [inaudible]?
>> Mitch Resnick: Well, we've thought about that some. And it's one of the things sort
on the to-do list. On a different project we worked on, one of the robotics projects that
we worked on, we did that and we had a text-based equivalent. We found that people
didn't use it very much. Now, it could be partly that essentially in the robotic projects it's
pretty simple programs, and usually you want to go to the text when you have the
complexity where the visual nature, it becomes unwieldy. So we found it wasn't used
that much there. So the one place we tried it it ended up not being used much, which
probably turned us off to it some.
I do think it would be used more in Scratch, because certain things like the Donkey Kong
program, if you look at that, it's pretty hard to read because it's a big program and the
visual nature of it makes it not so easy to read. So I think it could be a good thing to
expose the text, so we haven't done that yet, but I think it could be a good direction to go.
>>: Is there composability, like in terms of if you -- can you have the equivalent of
different files where like I have a Donkey Kong character that does animation and stuff
and he's stored somewhere, and then I have another thing which composites him doing
some actions?
>> Mitch Resnick: The one thing -- I mean, there's a little bit, not as much as there might
be. Just with different characters you can export a sprite and it brings with it all of its
code and sounds.
>>: It's all still in one ->> Mitch Resnick: Yeah, it's all. So you export the whole sprite. One thing we -although you can't export it, it's more of like an expert feature now. We plan in a future
version, the same way right now you can share your whole project, we have share a sprite
and have a library of sprites. Although, we're still playing with it some because in order
to do that, a lot of times sprites do become entangled with each other. So even if you
export one, it might still have references to other sprites. We tried to minimize that in the
language, but it's hard to get rid of it entirely. So most people don't write code that makes
it so easy to pull apart the sprites and use them in other places.
But we still think it could be useful. That's an active area of research that we're doing,
and I want to explore more of that. Sort of the granularity for sharing, where generally
granularity for sharing is one issue that we want to look at more. Because there's both the
project level, which is what we do now, the sprite level, which we support but not so
well, or just sharing scripts. We don't do a very good job of that either.
There should be libraries of scripts and better ways of looking for different scripts. Or at
least I guess [inaudible] should we do that or should it always be buried inside of a sprite.
I'm not sure. But those are questions we want to think about.
>>: One of the questions I have is the practical nature of targeting for children to share
with each other, how do you deal with moderation [inaudible] legal concerns [inaudible]
bad people on the Internet pretending to be kids, et cetera. Has any of that become a
problem, how much effort you guys have to put into moderation into policing the Web
site?
>> Mitch Resnick: Yeah. It's a good question. And it is a challenge and we made
certain choices which I'll say which aren't necessarily the choices for everyone or that
everyone agrees with.
So right now with the biggest issue that arises is for some questionable, you know,
content that gets up there that is inappropriate, inappropriate content for the site. And
that does happen. We've chosen to do it of policing after the fact as opposed to reviewing
before the fact, which means that sometimes inappropriate content does get up to the site.
You know, you can -- the whole community can flag it as inappropriate. We have a
couple part-time people who spend their time taking a look at projects that go up there,
and certainly quickly look at anything that's flagged to do it.
But things do go up there. And we've heard from some parents and teachers say they
don't want their children using this site because you can get inappropriate content up
there.
Another aspect of it is you can write comments to each other. One way that we avoid
some of the problems with the dangers of somebody posing as somebody they shouldn't
be, all communications is public. There's no chatting, no private communication,
everything is public. So basically the text is just comments on projects and discussions in
online forums. And, again, we have people that sort of look at that.
And there are people in the community who do a lot of policing for us of that. But it's not
just inappropriate. It's one thing -- and we have some filters for inappropriate language,
the bigger thing is trying -- I think the bigger challenge is keeping a respectful culture.
Because, you know, kids at this age, they'll say this project sucks, that's stupid, why did
you ever do that.
And, first of all, it's a hard question, where do we draw a line. Because it's okay for
people to be critical of each other and to be teasing each other a little bit, but where do
you draw the line and how much effort do you put into it. And then when you draw the
line, when you want to say something isn't appropriate, how do you help education.
So we'll do things where we'll take down comments, we'll give notifications to people, we
try to give explanations. So it's something that we care about. We've put a reasonable
amount of time into it and some funding into it to have people who spend time doing it.
How well it scales is an issue. You know, the community is getting pretty big. It helps
that we have volunteer moderators. We're trying to set up the people who just on their
own started being active commenters on the site, we'll reach out to them and we'll give
them a title of, you know, Scratch moderator and then we'll work with them and we'll do
a little bit of telling them how we think about this and encouraging them to do a certain
way.
But I think there's still a lot more that we need to do with how we're going to handle the
scaleup of that if this continues to grow.
I guess one other issue is things with license content. Because we don't do anything, if
people put up licensed characters, someone puts up Bart Simpson and we don't take it
down, again, a lot of these questions are legally murky these days, and I think we've set it
up and registered in a way that I believe it's now set up that we don't have any
responsibility, that we can't be liable, except if a major media company comes to us and
says we want you to take down this project, this project, and this project, we will take it
down. But I don't think we have any responsibility beyond that. But, again, those are all
issues that remain to be floating -- they're floating around.
>>: I was wondering is there a [inaudible] for a teacher that wants to incorporate this into
a math lesson or a science teacher, a guide for the teacher rather than [inaudible]?
>> Mitch Resnick: We're starting to work on that. In fact, I've had a lot of talks with
Rob [inaudible] back there who's in the Unlimited Potential Group here. And we're
working together at trying -- and developing some of those. Right now we've developed
a little bit of that, but we're planning to do much more. Also we've been starting to
collect what others are doing. Because in the last year more and more teachers are
starting to use it and putting some of their curriculum plans and activity guides online.
So we're now aggregating it together on this Scratch-Ed Web site, and we're going to
highlight what we see as some of the best examples, and then add some of our own. But
it's an area where I think there needs to be a lot more work in there. In fact, one thing we
were just talking about earlier today was where to focus our efforts, how much to focus
on -- again, but there are many different places where this could get used during the
school day. Is it for a computer literacy class which require a certain type of curricular
materials, or is it to support people just making presentations and social studies or
English class. So I think we're exploring a variety of different ways of supporting it. So
it's something we see as important.
The new Scratch-Ed Web site which will go live soon will have that type of information.
We hope just by having Scratch-Ed Web site up there it will also raise the visibility and
we'll be able to find more teachers posting their things, but then we want to do an active
effort, not just for the community to be filtering, we want to do community-based
filtering, but also for us to highlight things that we think represent the type of teaching
practices that we want to support.
>>: I was wondering because I like the idea of the NetLogo that came out, that teachers
were able to use the simulation and actually create different things based on the basic
simulations that we're presenting. So I was thinking along those lines.
>> Mitch Resnick: Yeah. And this is also an issue that right now -- I mentioned before
there are these -- with all the projects on the Web site it's not easy to find the project
you're most interested in. So somewhere on the Web site there's some good simulations
that people have done, but it's not easy to find them right now. So I think we need to do a
better job of highlighting ones that we think are best practices that people might be able
to use as models.
>>: And I had a following question related to education. Have you reached out to
computer science teachers [inaudible] to sort of publicize through the formal learning
channels versus ->> Mitch Resnick: Yeah. We've done something like -- I gave talks about this at the last
couple NECC conferences, you know, sponsored by ISTE and I'm doing it this year at
ISTE, we're giving a big talk -- we have a featured talk about Scratch, we're doing a few
workshops. And actually we just saw [inaudible] in addition to the ones we're doing,
they sent us like a half a dozen other sessions that other people are doing about Scratch,
so it's starting to get out there that way.
We're also having some talks -- just two weeks ago I was in Washington, D.C., for -there was a workshop at the National Academy of Sciences about computational
thinking. And there I met people at the National Science Foundation who are doing
things about high school computer science, and they're intrigued with Scratch, especially
not for the AP versions of computer science it wouldn't be right, but for the preAP
versions. So we're starting to have discussions with them at least of how we might work
together. So it's still in early stages, but we're ->>: Yeah. I've helped teach workshops on Alice to middle school kids in my hometown
of Butte, from Montana. It's not a good entry level for sort of introduction to
programming, get kids into it, it's a little higher levels. This is perfect.
>> Mitch Resnick: It depends on the age level. Yeah. So Alice is good for certain kids.
Alice was definitely aimed at older kids than Scratch was. Scratch aims at a younger age.
Yeah.
>>: So it seems pretty clear that this helps improve collaboration and you can measure
that pretty easily. But it seems a lot harder to measure how this improves computational
thinking. And I'm wondering if you guys have assessed that, and also how it improves
like attitudes towards programming and computer science and that type of thing.
>> Mitch Resnick: We've not done -- again, this is still early stages. We haven't done a
lot of that. We planned to do more, hope to do more, hope other people do more. Some
of the things that I think we're most interested in that are even more difficult to assess is
creative thinking. We really do think that kids as they work on Scratch become more
creative thinkers.
Defining exactly what we mean by creative thinking is hard, measuring what we mean by
that is hard. On the other hand, just because it's hard to measure doesn't mean we should
steer away from it, because I think that's -- we want to make sure that we want to focus
on things that we think are very important.
Certain things with computational thinking, again, at this workshop we had a lot of
discussions about that, just in the last few weeks. I think there are a lot of different points
of view on that about what it is that's most important to be learning about computation.
So but it's good, there's an active discussion going on now about what it is. And we have
some of our views and we've started to look at that about what kids are getting.
We haven't done -- about attitudes, we haven't done formal studies. But this one, to be
honest, a lot of places we see it sort of just seems so obvious that it's changing the way
kids are thinking about it.
Certainly if you just look at the Scratch Web site and the forums, one thing that took us
by surprise is when we started the Web site, we had the discussion forums, we expect to
be mostly adults using the discussion forums, and we're definitely wrong. The kids are
very active users to the discussion forums, and often talking about the things that they're
doing with Scratch, they're learning in Scratch, and you can just see in the discussion
forums, and of course this is a lot of self-selection, the kids that are writing to the
discussion forums are the most active and enthusiastic users. You can definitely see that
from some kids just by reading their posts how it's opened up their eyes to see things in
new ways.
But we haven't done formal studies to see how broadly does it reach that way, what range
of kids does it reach, which kids is it most likely to reach are things that I think there's
need for a lot more work to be done for us doing that. Yeah.
>>: Obviously MultiTouch interfaces are becoming more and more interesting, the cost
and technology is coming down to being more consumer oriented. Is there any ideas of
adding those sorts of interactions to Scratch so that kids can interact with using a more
tangible sort of way, both on the composing it side and on the interacting with [inaudible]
the output for example?
>> Mitch Resnick: We haven't really played with MultiTouch. Recently we were doing
some things with tablet versions, so we were doing some more experimenting about just
how we should change Scratch so it works well on tablets, was one thing we looked at.
But we haven't really played with MultiTouch possibilities. So I think it's a good area to
look at, it's just, you know -- and it's come up in discussions, but we haven't done
anything with it.
I guess another thing we'd like to do over time is there is only so much we can do, and
we'd like to engage the broader community. Right now the current version of Scratch is
written in a version of Smalltalk Squeak that came from Alan Kay's group.
And in fact I should make special mention of the fact, I meant to earlier, a lot of Scratch
was inspired by work that we saw going on in Alan Kay's group. Based on the Squeak
software, they had a version called Etoys that was meant for kids. And my research
group does a lot of work with Alan's group when we have a week -- an annual retreat.
We were inspired by what they were doing. But we had some ideas about how we might
do it differently, and then encouraged us, use our code, take all of our ideas. So they
generously supported us in this effort as we did it.
So it's based on Squeak. The one downside of that is most people don't know Squeak.
So we make the source code freely available. I've never mentioned, Scratch itself is
freely available. You might have gotten that idea, but it's freely available. But the source
code is also freely available. But since it's written in Squeak, most people aren't going to
do anything with the source code.
So in the next generation of Scratch, we want to have -- we're just starting to think about
how to implement the next one so make it easier to have a community of people who can
be experimenting and adding -- experimenting with different features for it.
>>: Could you comment, please, on the language design process, specifically how did
you decide what not to include?
>> Mitch Resnick: Well, we really tried to -- first I'll just say we tried really hard to be
strict about trying to keep things out. One general guideline we used, remember when I
had the diagram about low floor, high ceiling, wide walls? It's very hard to do all three of
those. So from the beginning we pretty much said whenever in conflict we'll give hot top
priority to low floor and wide walls, and we'll sacrifice high ceiling. So we sacrificed the
high ceiling.
The first version of Scratch that came out -- and we'll only put in features if we feel we
can do it in a very intuitive way that's going to be easily understandable, and we want to
try to minimize it so people don't become overwhelmed. In fact, this is one of our things.
As I said, we were tremendously inspired by the Etoys version of Squeak. We felt it was
overwhelming and confusing. So even though we were inspired by what we could do
with it, a big part of why we wanted to do Scratch was simplify the user interface, shrink
the feature set, keep the core things.
So we, first of all, as we were developing it we were using it with kids all the time, we
saw what did kids most want to use. We're also based on us just working with -- we have
20 years of experience working with kids on things like this, so we had our own
intuitions about what was going to appeal to kids. We tried to be ruthless. If we didn't
think a block was going to get used a lot, keep it out because we wanted to have in each
pallet to try not to have to scroll down, you still have to do it somewhat, but try to keep it
that way.
In the first version of Scratch that came out, there's only one data type, numbers, because
we didn't have good ways of representing other ones, we weren't satisfied with it. We're
gradually adding more, so there's now lists, so we have some more data structures. We
just started to introduce strings. So we're only introducing things really slowly as we feel
we have good intuitive visual ways of doing it.
So it's just by trying to be really disciplined about it, and it's hard, though, because
especially once it's out there, we get a lot of suggestions from the community, as you
might imagine. Why didn't you do this? And of course it's the most sophisticated users
who give a lot of the -- a lot of the biggest comments. I want to avoid the pitfall, at least
for me -- I don't know how many of you have done a lot with Lego Mindstorms, and
again I feel free saying this because, again, I love the Lego company, we work closely
with them, and they're one of the most wonderful companies in the world.
I feel that when they went from the original Mindstorms and they did a new generation of
Mindstorms, they were very influenced by some of the most sophisticated users who said
why can't you add this, why can't you add that, and they added some great new features.
But I worry about the fact that it was listening to the most sophisticated users. You
know, got on the cover of Wired magazine about all of the robot hackers who influenced
the new Mindstorms.
In some ways that's good, in some ways that's a problem. So we want to be careful not to
listen to the hackers using Scratch too much, but it's a challenge all the time because, you
know, people within our own group, we want to do more, like one example is you can't
clone, to dynamically clone while a project's running, to make a -- have a sprite, split off
a new sprite or give birth do another. It would open up a whole new range of projects,
but we haven't found a really intuitive way doing it. We have sample projects and sample
versions that do it, and everyone -- you know, the sophisticated users always ask us for it,
but we want to wait until we have really good ways of doing it.
>>: Do you have any plans to integrate Scratch with other tools so that you can have
graphs [inaudible] graphing program [inaudible] generate graphs [inaudible]?
>> Mitch Resnick: Well, right now we have ways you can just -- you can -- we set up a
communication channel between different applications. Scratch can just communicate.
So we have a -- it's sort of a little hidden, it's sort of an expert feature. We can at least
communicate from Scratch to other applications. So that does certain types of control
things where Scratch [inaudible] other applications. That's sort of one door that allows
certain types of things.
Otherwise we try to make it easy for at least the output of other things to be able to bring
in. So obviously a lot of the images we try to make and so it's just easy to take the output
from projects and drag it into Scratch. So we try to do that. There's probably more that
we could do to try to make it even more so. Again, we want to do it in a way that keeps it
really clean and simple. So there's probably more that we could do along that way.
Again, I guess the main way we're doing now is setting up this way so at least setting up
a communication channel and trying to make it easy to communicate with other
applications is at least the first thing we're starting to experiment with.
Another thing we want to do in the next version is -- maybe this connects a little bit to it,
as we wrote this version, the graphical programming blocks -- the code for that is very
much integrated in with the rest of Scratch. We want to pull it apart and make it more
modular so you can take the graphical programming blocks and use it as a front end to
other applications.
Because we've -- at least it seems to us that the Visual Grammar of Scratch, the blocks
has been very successful. People really seem to like the Visual Grammar that we chose.
There's a lot of detail. There's -- some of it sort of looks obvious when you look at it.
We went through so many iterations and it seems to work well.
So another way that I think we want to be able to interface with other types of
applications is [inaudible] in Scratch more so you can at least use the programming side
of Scratch and then customize it for other applications. Yeah.
>>: With access to so many projects, have you done any kind of automated analysis of
them?
>> Mitch Resnick: Yeah. So we've done some of that, a few different things. So a few
students in my group are doing that now. So recently we had one student recently that
was just looking at all of the blocks used -- in fact, for the next version we're eliminating
some blocks because they're used so little. And we're just -- so we're doing some analysis
of what it is, what blocks you use.
Another thing we're doing is a certain type of analysis by age, what types of projects are
done by kids of different ages, different genders, so things like that. We're doing analysis
of this remixing, of sort of the histories of projects and how ideas spread through the Web
site. Those are some of the types of things we're looking at.
But I do think it's a really rich source of data for doing more. So we've started to do it,
but I think there's a lot more that could be done.
>>: So do these Scratch obligations have some kind of persistence, can they be
serialized, can they keep some kind of context between [inaudible] your users, and how
do you deal with security if those features are there?
>>: No, you can't do that, but it would be a good thing to do that and we'd like to do
more of that. So right now there's not a type of persistence. The Web page is
persistence. Like the kid who did the science experiment, it collected data, but basically
what it said was, it said collected -- it collected the data and then it printed on the screen,
it says please write this in the comments below, so like the person doing the experiment
had to write the data, and then the comment space below it was persistent.
But we definitely want to do more things like that. So we've thought about just right now
we've started to experiment like with the server-based Scratch, so even doing things
where there's just this ongoing Scratch world, so it's more like a shared virtual world
where you can have different people sharing in the world. We've played around with that
a little bit. Or from your cell phone, phone in something to this persistent Scratch world.
I had one graduate student who at did something called -- with sort of Net variables
where your Scratch project would grab information from the Net and we played with
different ways of having -- storing variables on the Scratch Web site so you could have
your Scratch project, output something that would then get saved on the Scratch Web
site. So we did experimental version. So we didn't have the whole project get saved, but
you could output some data that got saved on the Web site. And actually things like that
were really popular.
Although one thing we -- since that was just a research project, it was never fully
integrated in the Web site, but some users found out about it, and there were these whole
threads in the discussion forums about when is Net Scratch going to be available, we
want Net Scratch. But I do think there are a lot of possibilities there, and there are just
too many things to do. Yeah.
>>: Could you say something about the longevity of the platform? Since, you know,
five years from now when your footing goes away or your graduate students move on to
other things and suddenly all my 12-year-olds who have all these properties log into
Scratch and it says 404.
>> Mitch Resnick: Well, first of all, I should have mentioned, Scratch was funded by -it was -- the development was primarily funded by a grant from the National Science
Foundation that ended a year ago. So we are now dealing with the issue of how do we
continue to work on Scratch. Up till now we've been very fortunate to have some
supporters from corporate supporters like Microsoft. We also have funding from Intel,
Portugal Telecom I mentioned, from some foundations as well. But it's an ongoing effort
to try to continue to get support and funding for it.
I'm deeply committed to having this persist. So that's one way of doing it. I think it's
also -- I mean, if I looked to the future, as Scratch continues to grow, should it continue
to be a project run by a research group at MIT. It's not obvious. If it gets big enough,
one option is to spin off a separate nonprofit foundation, another is to make a special
relationship with a particular company.
Again, as we try to scale it up, just as the Web site grows and grows, we'd love to be
working with someone who just has a whole -- that just can deal with all of those things
for us. Because we're running all the serve -- we're running the servers now. So just
collaborating with someone.
You know, perhaps we'll find a company who has the right sort of shared spirit who will
sort of join forces and try to do it. Although, that doesn't ensure longevity -- you know,
eternity anyway.
One way to ensure eternity is we're being pretty open about it. So if one type of support
doesn't happen, and if it's popular enough, then hopefully there will be other ways of
continuing to support it.
So, I mean, right now I'm personally committed to it, my group is committed to it. I can
certainly see that commitment remaining for the next five years, ten years, fifteen years.
You know, it's hard to know. But hopefully if it's successful enough and popular enough,
then I imagine there'll be ways to make sure that happens. But it is an ongoing thing that
we think about all the time.
>>: Closely related, what's been the size and compensation of the group that's been
developing and designing?
>> Mitch Resnick: Good question. The initial design as we talked about a lot is mostly
there's a core group of five of us. So for the first couple years, it was five of us that did it.
And we talked about this because one of the members of the design -- well, one of those
five says that every really good design group he's worked with ever has always been
between four and six people. Says bigger than that, just doesn't work. So we sort of kept
it small. There's a core group of us that met all the time and we tried to get a
wide-ranging group, came from different backgrounds and had a good range of different
abilities.
Right now the group has grown, and we have like maybe a group of ten people that's not
all full-time people, there are two full-time programmers working on it. One of them is a
former MIT -- one's a former member of our group who was an undergrad with our group
and a master's student who's now working as a full-time programmer. Another is
someone that we took from Alan Kay's group who came to work with us and the two of
them are the main developers. One of my graduate students does most of the work on the
Web site. He made that his master's thesis, and he manages the Web site.
Another of my graduate students is doing the Scratch-Ed project. Then other graduate
students are doing experiments, like the Scratch for Second Life. We hire people to do
the monitoring of the Web site. So we have a range of different people doing things.
But right now there's like maybe -- there's only two full-time paid employees, a few
part-time employees, a bunch of graduate students doing it part of their time. So for now
that still works. I do worry that like with the graduate students I can't necessarily -whether those graduate students will be able to spend as much time on it as they have is a
question. And we have to make sure this continues to be research related so it's not just
keeping up the Web site. But we try to keep research issues around it so it enables people
to keep working on it that way.
Over time as it scales we hope to collaborate with others and get more people involved,
as I said before. Did any of this surprise you? Did you have an expectation differently of
what I said?
>>: I think -- yeah, I think the percentage of grad students part time was higher.
>> Mitch Resnick: Yeah.
>>: It sounds like a few people getting a lot done.
>> Mitch Resnick: Yeah. Well, the two people who are doing the programming are
very, very good. And as you all know, a few really good people makes a huge difference.
And, again, they're -- but actually almost all the code in the application is written by
those two people.
>>: So to kind of further refine some of that, what type of percentage or if you find any
conflict between trying to keep the infrastructure of the artifact of the work versus the
research benefits out of that, and how do you balance between the two? Obviously you
kept saying you need to pull more research in, so has it become more about Scratch
taking over the world or is it more about the research you get out of seeing how people
interact with Scratch?
>> Mitch Resnick: Well, it's a combination. So we're trying to make a balance. I'm
interested in both of those things. Because I do that -- I want to make a real difference in
the world. I think I also want to understand how and what kids are learning. So I try to
run my research group where we have both of those as goals. And it's a matter of finding
the right balance. And for any individual within the group, they might shift from one
place to another at different times.
So but, yeah, our hope is to do both of [inaudible] can make a real difference in the world
and for us to have a place where we're getting a better understanding of issues. So I don't
know if I have any better answer than that.
Okay. I know we went on for a long time, but I want to thank everybody. I'm here for a
while, so if people want to come up and ask questions, feel free.
[applause]
Download