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