Skip

Scratch, a beginner's programming language
July 15, 2009 9:56 AM   Subscribe

Scratch is a programming language designed for kids. Programs are created by hooking together jigsaw-puzzle pieces, which are keyed in such a way that it is impossible to create a syntactically incorrect program.

Via this guy, who includes a sample program and talks about how his nine year old daughter learned and used the language.
posted by Chocolate Pickle (37 comments total) 71 users marked this as a favorite

 
Oh man, how did I not think of a Scratch post? I did a post on my blog a year or so ago. My (now) 10 year old loves it and has learned a huge amount of programming from it by making games and things.

It's fantastic. Similar to the first Lego Mindstorms language, only actually Turing complete.
posted by DU at 10:11 AM on July 15, 2009


Very cool! I like that he subtly uses conventional programming syntax in his graphical representation. Loops and conditionals are indented by a puzzle piece that plugs in from the left. This is how I visualize programs in my head anyway.
posted by Popular Ethics at 10:15 AM on July 15, 2009


This language is neat. I remember looking through different educational languages a while back and it seemed like they were all either straight text with a heavily simplified syntax or had some sort of weird graphical language that didn't really feel like programming. This language takes normal psuedocode-ish programming statements and makes them more user friendly than text via the UI (not unlike the sorts of things modern IDEs do for normal programming languages). It feels more like training wheels on a real language rather than a dumbed-down language that would only work for simple programs, which is definitely a good thing.
posted by burnmp3s at 10:17 AM on July 15, 2009


My brother helped some seventh graders use Alice.
posted by Blazecock Pileon at 10:17 AM on July 15, 2009


It feels more like training wheels on a real language rather than a dumbed-down language...

Wellllll.....I wouldn't exactly say that. One major lack is data structures. You can set named variables and that's pretty much it. No arrays, no lists, etc.
posted by DU at 10:19 AM on July 15, 2009 [2 favorites]


Yeah, how has this never been posted? I gotta get my kids going with this again. A good way to spend summer vacation - in front of a computer, like God intended!
posted by GuyZero at 10:21 AM on July 15, 2009 [6 favorites]


Visual Programming paradigms are pretty interesting tools, and extend way beyond tools for teaching kids -- there have been tools for perl and java that worked in exactly the same way, scaling all the way up to UML, a comprehensive standard for visualizing software systems that can be used to derive code from your models; there's also a variety of fourth generation programming language tools that use a visual programming paradigm.

For more fun examples you could look at Yahoo Pipes and Aviary's Peacock.
posted by boo_radley at 10:26 AM on July 15, 2009 [1 favorite]


My daughter (10) is actively using this - I think this has been posted in "AskMeFi" previously (or a response included) - but never a fpp.

It is wicked - this is what the Lego Mindstorms programming interface *should* have been.
posted by jkaczor at 10:26 AM on July 15, 2009


...which are keyed in such a way that it is impossible to create a syntactically incorrect program.

ooh, they should use this for 'Windows'
posted by sexyrobot at 10:28 AM on July 15, 2009 [1 favorite]


this is what the Lego Mindstorms programming interface *should* have been.

Well, I may see what Mindstorms 2.0 has going on. Mindstorms wasn't bad, except for the insane "wires" construct.
posted by GuyZero at 10:30 AM on July 15, 2009


Kodu (Xbox) will also apparently teach your kids about programming. It's billed by Microsoft as a visual icon-based programming language, but to me it looks like much more of a game, and a step further from traditional coding than Scratch.
posted by Kabanos at 10:30 AM on July 15, 2009


Lego Mindstorms NXT come with a version of LabView which is a visual programming language in the same vein, if more advanced.

The advantage imo is the robotics out of the box, which would have been the best present evar to the 10 year old me.
posted by Andrew Brinton at 10:33 AM on July 15, 2009


One major lack is data structures. You can set named variables and that's pretty much it. No arrays, no lists, etc.

Actually the latest version does seem to have lists now. I agree that it's not a completely robust language, but compared to a lot other educational languages that use a graphical interface it's a lot closer to normal programming.
posted by burnmp3s at 10:34 AM on July 15, 2009


Yeah, but has it crashed the space shuttle into Hubble yet?
posted by blue_beetle at 10:35 AM on July 15, 2009


boo_radley: For more fun examples you could look at Yahoo Pipes and Aviary's Peacock.

See also the Automator graphical interface for Applescript.
posted by Popular Ethics at 10:39 AM on July 15, 2009


Slashdot recently posted a review of a programming book for children called Hello World. It's designed to teach kids Python, a powerful programming language that's pretty commonly used across Linux, Mac and Windows. It had a very positive review; apparrantly the concepts it teaches are very sound and, more importantly, the reviewer's nine year old kid loved it.

A few people in that discussion mentioned Scratch. The consensus was that Scratch is great for kids learning the basic concepts, even though it lacks a few important ideas. I get the impression that Slashdot is normally a pretty hard crowd to impress, so that's high praise.
posted by metaBugs at 10:55 AM on July 15, 2009


Metafilter: great for kids learning the basic concepts, even though it lacks a few important ideas.
posted by hippybear at 10:57 AM on July 15, 2009 [2 favorites]


About Kodu:

It's much more sandbox environment/programming environment than a game. Each object can be programmed with a series of logic if then statements, including statements that will switch which "page" the object is on. This provides a way to change the state of the object. It comes with several example games, including a Frogger clone.

Makes debugging another person's code a bit odd, as you can never really tell which object has the logic you are looking for without searching every part.
posted by zabuni at 11:01 AM on July 15, 2009


...a programming book for children called Hello World. It's designed to teach kids Python...

Well, if we're going to back to text-based Python, there's Snake Wrangling for Kids. I printed this out and put it in a 3 ring binder for my 10 year old. It's seen some use, but since he's using it on an OLPC1 it's been less popular than Scratch.


1The OLPC's UI is so horrible that it's basically impossible to write, save or run programs longer than 10 lines on it as an expert, let alone a beginning child.
posted by DU at 11:15 AM on July 15, 2009


what's amazing is that the featured games listed on their website are all more mature and interesting than the top iphone apps, which are all made by grown men.
posted by shmegegge at 11:28 AM on July 15, 2009


zabuni writes,
Makes debugging another person's code a bit odd, as you can never really tell which object has the logic you are looking for without searching every part.


*cough*Flash Authoring*cough*

That was actually one of the core motivations for why we created Flex. Flash Authoring is a great environment for when you have more media than code, but it just doesn't scale well for "real" programming when the balance goes the other way.
posted by argh at 11:58 AM on July 15, 2009


Argh, Adobe is cognizant, and reformed all of that with ActionScript 3.

In AS3 code isn't directly attached to or embedded within objects any longer. All the code is kept as text in separate files.
posted by Chocolate Pickle at 12:07 PM on July 15, 2009


...which are all made by grown men.

What the hell!! Surely women are responsible for developing just as many of the mindless iphone apps out there. This is just the kind of sexist.... OOOOOOOOOOH!!! FARTS!!!!!!

Okay nevermind.
posted by Kabanos at 12:21 PM on July 15, 2009


I'm rather well aware of how AS3 works, Chocolate Pickle. Note my use of the word "we". ;-)

I do think it's an interesting recurring pattern, though...

coding is hard -> new system with visual metaphor where simple code tied to objects -> simple code is too limiting -> updated version makes code gets too complicated -> code gets externalized -> coding is hard -> ...
posted by argh at 12:50 PM on July 15, 2009


...what Mindstorms 2.0...

Ah, I only have 1.0 - I quickly gave up on the default software and started using some of the free/open-source alternatives (plus the COM components).
posted by jkaczor at 1:01 PM on July 15, 2009


Stagecast Creator also teaches programming, but without syntax at all. The user creates objects and manipulates their behavior on screen, and the system generalizes that behavior.
posted by CheeseDigestsAll at 1:18 PM on July 15, 2009


First Scratch, then Nodebox, then Python or Processing, depending on if little programmer's interests are towards doing things with data or complicated graphics.

"Little programmer" can also be replaced with a MA-level art student. I've taught this, badly.
posted by Free word order! at 2:07 PM on July 15, 2009


Huh, I didn't know there were other Python books for kids. I'm just starting out using this one, after doing poorly at learning Commodore Logo, BASIC, Pascal, PHP, and Perl, in that order. (I sure did rock ass at Apple Logo, though.)
posted by clavicle at 2:23 PM on July 15, 2009


Amazing.
posted by greytape at 2:51 PM on July 15, 2009


But does it come with Gorillas?
posted by Pope Guilty at 8:19 PM on July 15, 2009


No, but you do have to mount a scratch monkey before using it.
posted by Crabby Appleton at 8:22 PM on July 15, 2009 [3 favorites]


*lights match*

Yeah, well this is what Ruby coulda been!

*runs*


*enjoys the fireworks*
posted by Johnny Hazard at 11:35 PM on July 15, 2009


OMG All these links to kid friendly programming. I'm getting out my lesson plan book!
posted by debbie_ann at 4:06 AM on July 16, 2009


My 9yo loves Scratch. He makes mini-games in it and takes some serious pride in each of his creations. It does lack some functionality and I've had him come up to me a few times saying "I want to do X, can you show me how?" - but it's cool that he understands what he needs to be able to do. It's been a great learning tool.

We even did a mock-up of one of his science projects (telegraph) in it prior to building it. Great fun!
posted by hrbrmstr at 5:44 AM on July 16, 2009


I love Scratch. My 10 year old daughter has had fun with it as have I. Highly addictive once you get into it.
posted by Outlawyr at 11:23 AM on July 16, 2009


Another Scratch family here. My 9YO has been using it for a couple years, he's making more and more sophisticated projects with it. Highly recommended.
posted by Scoo at 1:50 PM on July 16, 2009


I introduced it to my 5yo last night, and she's hooked; first thing this morning: "Daddy, can I do some more Scratch today?". So much happier than with playing the endlessly annoying Dora flash minigame.
posted by nonspecialist at 3:05 PM on July 16, 2009


« Older The Smiler   |   On The Importance of Overdraft Protection Newer »


This thread has been archived and is closed to new comments



Post