Last updated at 12:23 pm UTC on 17 January 2006
Scratch - A Sneak Preview
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.
- Scratch is being created for a particular target audience.
- The target audience is kids for the computer club house.
- Create a place for kids with low income kids to have access to computers
- 1997 Peter F. Drucker Award
- 2000 Intel becomes sponsor to grow 100 clubhouses and International
(Picture of kids in India)
Scratch will need to be multi-lingual by targeting kids.
A "Photoshop" Culture
- Kids start using a program and become experts and teach each other
- Mechanism to show off finished products. Pin up work on clothesline
- Put pictures on the web.
- Motivation for kids.
- 1 full time clubhouse coordinator.
- A bunch of mentors who show up PT.
- Adults are not showing up regularly.
Create a "Programming" Culture with Scratch
- Without a teacher, robust and self teaching.
- Photoshop isn't easy but enough docs and polished enough to learn.
- Need to engage kids' interest (If bored they'll move elsewhere)
- Interactive games, stories.
- Easy to learn without a lot of help.
- Supports sharing & collab. Can allow them to learn from others
- Reach everyone (multilingual, cross-cultural, and gender neutral)
- Top menubar allows accessing objects
- Double click to get viewer of the object (Top Right)
- Bottom Right is the script builder can pull pieces from the viewer to the script builder.
(Shows multiple ways of making scripts)
- Can have multiple process scripts to allow breaking down the script
- Similar to eToys but the scripts are set in a particular pane
- Right clicking on the object brings up an image editor. More complex editor than eToys Paint.
(Brings out an object an ImageBoxMorph)
- Double Clicking brings up viewer.
- Can play movies and has variables such as zoom.
- Drag it out into the world and brings up a scrollbar so can manipulate value to see how it works.
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.)
- Idea on how to start multiple processes but not documented so used multiple buttons to handle starting different processes.
- Mixed success.
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
- Different sensors created by kids
- Some kids created a scissors sensor that when closed it would blow the cat up.
Drag & Drop programming
- Similar to eToys or LogoBlocks (Done at Media Lab)
- Easy to get started and fun (cuts down on syntax errors)
- Encourage sharing and collaboration
- Not just because objects are good.
- Save something and merge something else in (like Ned's connectors)
- Images, sound and animation. Good for kids.
- Connect to kinesthetic thinkers (under explored area)
- Something like Flash doesn't have (Cannot compete with commercial systems like Photoshop or Flash; cannot keep up). Flash doesn't have sensor input.
Next Steps (Scratch 0.2)
- Disappointed with results from Harvard/MIT students
- Revised UI
- Provide a place for top level script (need a place to create a startup script). Might bother college students more than a kid.
- Event-based inter-object communication. A la Ned's stuff.
- A lot of kids were referring directly to direct objects which made it hard for sharing.
- Try reducing indirect referencing of events
- Merge all objects into one super object
- Handles all the media events.
- Right now 3 different objects + 1 sensor board object.
- L.A. (Yasmin Kafai, UCLA)
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.