links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
Last updated at 12:23 pm UTC on 17 January 2006

Scratch - A Sneak Preview

John Maloney

I'm going to talk about Scratch project. I used to work for Alan Kay. Now I'm at the MIT Media Lab.

Talk about context.

Computer Clubhouse

(Picture of kids in India)

Scratch will need to be multi-lingual by targeting kids.

A "Photoshop" Culture

Create a "Programming" Culture with Scratch

(Shows UI)

(Shows multiple ways of making scripts)

(Another object)
(Brings out an object an ImageBoxMorph)

Believe this is interesting to kids today.
Want to add photoshop like filters to let them manipulate images.

Build some curriculum to engage kids.
(Shows GeeMail-like example)

There are several objects in this world; where did they put the scripts.
If you right click on the thumbnail of the image, can see what scripts are there?

(Shows a mouse that randomly wanders around the world with a cat in the center facing the mouse. If the mouse overlaps the cat, the scripts stop (cat catches the mouse).)

(Shows animated story example)
(Shows a sound object with a simple sound editor.)

Sound is a major key thing. Can only store short sounds since all stored in a squeak image.

(Shows a project not built by system builders.)

Seminar for educational students held by Resnick.
Harvard/MIT students given with 2 minutes of help and some docs.
(Shows a game with "Smurf" characters)
(Smurfette moves randomly, so does Gargamel)
(Papa Smurph follows mouse and if hit by Gargamel makes a sound, and moves randomly and fades slightly away. Once gone game is over.)

Inputs from the Real World

Abe-san has been working on with World stethoscope
Take input from light sensors and control objects on the screen.
(Shows a steering wheel with 2 buttons. Scratch is getting the inputs and showing values for them.)
(Brings up a drive a fish project.)
Would like to make it control the fish.
Simple would be control how fast fish goes in a circle.
Clicking on sensor and get a viewer
Drags the sensor icon to the forward block and now it attaches speed of revolution to the sensor
That's the start of something but would like to make a video game controller. Each button turn a different direction.
Create seperate script for left & right button
Loop infinitely is not native in scratch so far. Need to add it although thoughts about making it available
Can copy the script and just change some of the values
Finished up the different bindings and now the fish can be controlled by the sensor

(Shows another drive-a-car example but driven by inputs)

Have done a few tests with kids at clubhouses

Scratch Features

Drag & Drop programming
Media Rich
Sensor Input

Next Steps (Scratch 0.2)

Clubhouse Testing

Project & Object libraries


Q: Prog lang is scratch. Any differences between scratch.
Do kids that use scratch, does that empower them to do things in the future?
A: Good question. Will try tracking this for the future.

Q: Are you using the stepping mechanism for Morph?
A: Yes, absolutely. It drives the script evaluation process. It
does more than just stepping each script once.

Q: Do you plan to release?
A: Yes, ultimately. If we release the current system which we decided to throw away so we try to plan to release. Plan to release this as open source when it's ready.

Q: What kind of kids that show behind the scenes of scratch?
A: Alan likes that type of question. Current plans doesn't include that. Have talked about transition into a text based programming language. First we'll take a wait and see. If they wanted to take a HUGE step could take it apart and see.

Q: Heard of what kids are interested is telling stories. Why keep teaching kids how to program rather than making a story-line?
A: Great question. Reason is we think programming is a good for kids. Process of programming gives you insights into mathematics and other things. Teaches processes of debugging things. Breaking a complex task into subtasks. Our real agenda. Don't want to just entertain. Want to interest them enough to become engaged in what is really important for them.

Q: Allow objects to talk with other objects. Also realize once you built something, if you take it out of context what you end up with is a template. Kids can share the template. Allow them to pick out any portions. How do you do the generic setup
A: That's a pretty valuable idea. And it may be useful to export objects that aren't completely until you add something. Ghost objects. Reference to object that isn't part of the real object.