How To Teach Kids Programming From Scratch!

Is there a child in a developed country that doesn’t interact with a computer in some fashion everyday? Probably not. Yet still, many of these kids have only a vague idea of what makes a computer tick. It also appears that, for the most part, kids don’t get into the inner workings of programming until secondary school.

Why is that? If children can learn second and third human languages by their teens, why not programming as well? Here’s an excellent development tool that truly is for kids of all ages.

Scratch

scratch logo   How To Teach Kids Programming From Scratch!Developed at MIT for kids ages 8 and up, Scratch is a new programming language that is very visual in nature. The basic logic statements are shown and the programmer can then drag them into place and type in new variables. I had a program going in about 20 seconds! And if you’ve ever seen me code, you know that’s miraculous.

Okay, so it’s only a funny looking dinosaur that takes a few steps, says ‘Hello’ and then plays a soundfile that says ‘Doy-doy-doy’. It entertained me for at least 15 minutes. Doy-doy-doy, hee hee!

dino program   How To Teach Kids Programming From Scratch!

Seriously though, take a look at the code. Anyone who can read English can figure out roughly what is going to happen and how to make it happen.

programming components   How To Teach Kids Programming From Scratch!

There are a ton of configurable statements you can use to make just about any kind of program you want. Look at the categories – each category has several components that are completely customizable for your needs.

You can also use sounds and images already included in Scratch, or you can record or import your own. The images, or sprites as they call them in Scratch, and sounds are broken down in easy to identify categories. This is great for kids! Or me! Check out these puppies.

different sprites1   How To Teach Kids Programming From Scratch!

Scratch also comes preloaded with a bunch of complete programs, so you can see what’s possible with this package. This also introduces the concept of code reuseability to kids since they can take a program that already exists and bend it to their needs or wants.

Check out part of the program for Virtual Dog. Yes! A virtual dog! Your grammar school gum-chewers can now create life!

virtualdog2   How To Teach Kids Programming From Scratch!

Scratch also has a pretty extensive online community with even more resources for download and other Scratch programmers willing to lend a hand.

My son, the 7-year old Lego king, has been showing some interest in programming lately. I’m thinking this is the way to go.

What do you think? Have you tried Scratch or other applications for young programmers? I’d really love to hear about it.

The comments were closed because the article is more than 180 days old.

If you have any questions related to what's mentioned in the article or need help with any computer issue, ask it on MakeUseOf Answers—We and our community will be more than happy to help.

45 Comments -

0 votes

Sam

I don’t get these kid programing languages. Kids are smarter than you think. They can learn C++ or any other programing language.

0 votes

adoh

No. This was torture in school.

0 votes

Vladimir A Marchenko

+1

0 votes

Guy McDowell

Scratch was meant for 8 year-olds. 8 year-olds could maybe learn C++, if they were gifted and had a burning desire to program.

Scratch is more for those kids that are curious about programming or for parents and teachers that want to introduce programming to kids who might not think they could program. Like I said, my 7 year-old is average and I bet he could do a decent program on this with just a day or two of messing around.

0 votes

nick

As sam said, kids are capable of learning a ‘real’ programming language and will, most likely, be far more excited about doing so. When you’re a kid you don’t want to do kid things, you want to do grown up things.

0 votes

apc

Not sure I agree. Yes my kids (one 8 & one 11) want to do adult things – but spend lots of time playing around and doing very kid type things as well. What they say and what they do don’t always line up.

I think the immediacy of this looks to have real appeal – trying to explain analysis of the operational characteristics of the real world is too big a first step.

The other part of this is the teacher – I know the teach who does IT at my kids primary school. Great teacher, but the idea of even a simple language like VB being taught is frightening. This looks like it is much more within reach.

0 votes

John

More to the point, if the kid is motivated to learn to program, the gimmick doesn’t matter. In my experience, what does matter is immediacy of results: Anything C-like requires too much explanation or “just shut up and do it” to make a simple program.

So, Scratch is decent, but you’d probably be just as well served with Logo, BASIC, Ruby, or Python, each of which has less overhead.

On the upside, Scratch is mostly event-driven, which is a sensible way to get kids to understand how everyday computers work, rather than the payroll mainframe model.

0 votes

Guy McDowell

I think your point of view on this is right on.

I looked at some of the IDE’s for Ruby and SmallBasic, VisualBasic and such and they are not kid friendly. Well, at least not for someone under 10.

Let’s face it, most adults don’t even know their applications come with help files, let alone kids knowing that. Then there is trying to interpret what the jargon means. With Scratch, there is none of that. You don’t have to learn syntax, you just get to thinking in almost a pseudocode manner.

I could imagine a kid playing with Scratch for a few months and then wanting meat-and-potatoes. That’s when I would point them at Ruby, BASIC or more advanced languages.

0 votes

Titanium Pen

I used it at school several years ago, and I don’t like it. You can’t make complicated things with it. So yeah, right, Scratch is meant for 8 year-old kids.

Rather spend some time learning a difficult programming language than learning a program that can only be used by kids.

0 votes

perihan

hi.ı want to learn something.is scratch being used in schools and What are the consequences if it is used?

0 votes

Michael Littman

I’d be interested to know what sort of complicated things you felt you couldn’t do. I’ve been finding Scratch to be an excellent language for writing interactive programs.

0 votes

macobex

Very nice idea. This is a good introduction for kids, just to have a quick background about programming. I think with this language kids will probably have a grasp on what is programming all about.

0 votes

Richard Monson-Haefel

I actually have four kids and the oldest is 7 and is showing interest in computers. He’s no rocket scientist and is only starting to learn to read and write. I think its redicioulus to assume he could learn C++ at this point. I suppose if you have a “gifted” child that may be possible but what about the other 99% of kids?

No. Something like this program is more appropriate. The first programming language I learned had you program a cursor to go through a maze. It was very simple, not very useful beyond making a cursor go through a maze, but its what got me hooked on programming.

Richard

0 votes

Jan Zumwalt

About every two years someone re-invents the wheel… Does “Turtle” or “Logo” mean anything to anybody? Also kids programming language, phrogram.com Scrtach appears to be simular with a updated flashy front end – hmmm may be the windows 7 team was helping….

0 votes

Alfonso J. Ramos

Let me show you Alice: http://www.alice.org/
And by the way, what’s good on this style of languages is the drag and drop way to code, the no-need of learning a syntax and that you can see results at once. It’s a step beyond what Logo did on this way. I know people that are able to think on complex solutions but just are not likely to sit to write them, take out the kid style graphics, put some top concepts as generics and stuff, and puff! you’ll get anybody to be a nice operative programmer.

0 votes

Duncan

It looks quite good; I’ve been a coder for some 27 years, starting at the age of 11. I taught myself the BASIC that came with the Sincalir Spectrum, then quickly moved to z80 assembler.
I now have three children, the older two (10 and 7) have both been ‘programming’ using Alice99 for a couple of years, and really enjoy it. I would consider Alice to be a similar but perhaps more advanced version of Scratch; it also uses a script language which can either be put together using building blocks like scratch, or you can delve into the python-like code behind the macro blocks presented. So far my children have stayed with the building blocks, but I doubt my 10 year old would struggle much with the code..

Still, thanks for the heads up, there’s still my 5 year old who would love to play with a virtual dog!

0 votes

james

Seems fairly uneccessary to me. Any kids that want to program at that age will do anyway, the ones that don’t (like me) will just get into it at high school or even college. Kids should concentrate on doing what they do best, climbing tree’s, falling over, running around and most importantly developing social skills through interaction with their peers.

0 votes

Ben

I can’t really see the point in something as abstracted as Scratch. Possibly as a tool for teaching algorithms… Like Duncan, I learned to program on a zx spectrum (and also on a BBC Master at school,) and moved onto 6502 assembler as soon as i realized that you couldn’t get enough speed out of the BASIC interpreter if you wanted fancy graphics… Unfortunatly, there dosn’t seem to be anything like an old-school basic language any more, any language you can do anything useful with quickly needs an understanding of concepts beyond simple variables, loops and tests.

0 votes

Linden

I’ve been teaching an after school programming club this past year for kids from second through eighth grade using Scratch. I think it’s perfect for introductory programming.
Sixteen kids of all ages are together for two hours a week in a computer lab running around and developing social skills through interaction with their peers as well as kids much younger and older than themselves.
I generally give a 15 minute demonstration of a new concept and then turn them loose to discover on their own and from each other.
I am careful to use programming terms like method, event, property and array when describing how to use Scratch. This way when kids move on to more advanced languages the ideas will be second nature.
I am always amazed at the advanced programs these kids come up with.
Yes, Alice is good too, although a little more advanced and less accessible to beginners.
I have found that kids that didn’t think they wanted to program discoverd that they really enjoy it when using a tool like Scratch. To me it’s the Little League of software development.

0 votes

Duncan

In answer to Ben, there is FreeBASIC ( http://www.freebasic.net/ ) which is pretty good from what I remember (been a few years since I last looked at it, but the site gives the impression of movement).
I do see the point of things like Alice more than Scratch, since you can move into real coding, and see what the macro version translates into. Alice99 scripting was more python based, but Alice2 and later is more Java focussed (it was always written in Java tho’).

For myself, I’m a Delphi/FreePascal coder these days with asm thrown in for when it’s needed [and c# when my employer insists], and would probably take my children down that route if they wanted to do more coding – largely because it can be as high level as you want, or down to the metal, but at all times the structure is clear and it’s very readable. It shows order and logic, and there are ways to show somehing of how a computer works internally (memory management, how processes can be sped up, etc.)
When they have certain concepts nailed, then I’d direct them to C++ or Java. Having said that my eldest (daughter) is a very skilled ballet dancer, and so I would prefer she does what she is best at even if she does have a natural skill in manipulating virtual objects..

0 votes

Michael

To all of you “child geniuses” that at age 8 started out with step 1 of programming and then “got bored” and moved directly to step 12: get over it and yourselves! You are obviously in the top 2%, and your flaunting it and lack of consideration for the rest of the pack is annoying.

Being married to an elementary school teacher, I can tell you that this has applications WAY beyond programming. This is also very much about concepts such as cause and effect (great for language arts and science,) simple logic (excellent for math skills) and a few other lesser but still important concepts like planning and other “building blocks” thought processes. I’ll be pointing the wife at this.

0 votes

Mononofu

Well, maybe we don’t care about the other 99% percent, but if you want to get a good programming job, it’s just not enough to be avarage.
And therefore we don’t have to think about what “programming language” a normal child would be able to learn, as it won’t have a chance to get a decent (ie above avarage salary) programming job anyway.

0 votes

Guy McDowell

Chances are the kid won’t go into programming as a career anyway. I’m average and I did well with programming and IT in general. Heck I don’t even know my times tables by heart and I still did alright. Why? Because I have a solid grasp of logic.

0 votes

Ian

I want to reply to a comment where some guy starts(out of nowhere) telling people what age he learned programming and it was something ridiculously stupid like 4 1/2 and then I think he went on to say that average people deserve to die when some one pointed out that he must have skipped about half a dozen chapters from a programming book in order to do that. I will explain it that no one regardless of how intelligent you are would ever know why to write #include based off of how much faster you finished your math test in high school. There is a book with a title and all the information and definitions that any one could read. Intelligence does not matter at all.

0 votes

TS

It looks like a nice toy for a short time, but I expect the kids to reach the limits of such a concept pretty soon.

Thus, I think it would be better to use an easy-to-understand generic language (BASIC works well, although CS people tend to dislike it) and make sure that enough easy-to-use functions for animation, interaction and sound are available.
Thus, it would not be that much harder to learn, but once the convenience toy functions are no longer sufficient one can just continue with the “real stuff” rather than having to abandon the language and start from scratch again.

0 votes

Michael Littman

What is it that BASIC does that Scratch doesn’t?

0 votes

Nick S

I started programming in BASIC when I was 10, in 1979 that was pretty much all we had other than assembler for the Apple II. This drag and drop, point and click programming is the downfall of the art. What’s wrong with BASIC and LOGO?

0 votes

James

This is an awful program. Kids should learn to program properly. “Move 30 steps” tells me loads about programming. Not.

0 votes

josh

Scratch is great. It is easy for a kid to get started and has a very gradual learning curve to keep them interested and focused. It takes very little knowledge to make SOMETHING (think cat that moves across the screen), and once you have something you can keep playing with it to make it do more and more complicated things (cat bounces when it hits wall, cat screams when it hits dog, cat explodes when you enter the secret code on the keyboard).

I spent maybe a 1/2 hour with my 8-year old daughter just playing around and left her. When I came back she had figured out how to add sounds and make things move on her own. With each new thing she learned, she thought of more things to do until she had a pretty entertaining animation/game going.

The system is pretty capable. Eventually when you start to want to do really fancy things you’ll start to bump against it’s limits and have to get really creative about how to do something given the limitations (think trying to make a 3D game using only sprites), but this sort of creative thinking to get around system limitations sort of reminds me of some of the more interesting software projects I’ve had to write in real life. :)

Since then I’ve had several other nieces/nephews/friends get hooked after hearing how fun it was from my kids. It really is a great way to encourage kids to switch from *playing* video games to *making* video games.

BTW, I also bought the Scratch board which plugs into a USB port and lets your Scratch programs sense pretty much anything you can hook up wires to (think aluminum foil based buglar alarm). So far I’ve been more excited of the board than the kids, but I would have KILLED for something like this when I was that age.

-josh

0 votes

KPL

Has anybody tried Phogram, a successor to the original
and free Kids Programming Language?

How do the 2 compare?

0 votes

GRS

I’ll vote for LOGO. Aside from the simple turtle graphics and seeing visual feedback, the language is fairly sophisticated with a lot of capabilities borrowed from Lisp. There’s enough there for a gentle introduction plus moving on to more difficult challenges. The only problem is finding a decent, stable implementation.

0 votes

GL22

I tried Scratch coz i was curious about it. (I’m 21 years old btw) It’s fun, but i prefer SmallTalk. SmallTalk seems way better than Scratch… and they have similarities…. SmallTalk is also easy to learn.. Why Scratch when you can SmallTalk?

0 votes

NIcole

I’ve done a few workshops with middle school and high school students and I have to say that for students who have never programmed before and “thought” they had no interest in doing so, Scratch kept them occupied, engaged, and involved for the duration of these 3 hour workshops. As a former teacher, I was lucky to keep them engaged during a mere 45 minute class!

I think we make a mistake in thinking programming is only for a certain “type” of person. Scratch goes way beyond that because it develops critical thinking and problem solving skills. Kids don’t need to know more “stuff”, they need to know what to do with it and how to manipulate it to make something that hasn’t been seen or done before. Exposing them to Scratch, not as a programming introduction but as an exercise in developing higher order thinking skills, serves a much higher purpose than tying it to just computer science.

0 votes

perihan

someone can help me for my project? if there is,add my mail:tatlisekercim@hotmail.com

0 votes

Renee

I found this discussion while researching appropriate programming languages for my son. He is only 8 but quite gifted and scratch is just not cutting it. I have thought of having him learn c++ but it seems like it will not be gratifying to him in a timely manner. Computers are his first love and I would like to see him harness that interest into some solid learning. Any suggestions? I need something I can teach from home. FWIW I was a computer science major for three years but that was 20 years ago and I have not programmed since – so my knowledge base is ancient but I understand a bit more than the average so I will be able to help guide him.

0 votes

Linden

Renee,
My kids, 8 and 9 are in the same situation.
I would suggest looking at Alice.org if Scratch is not cutting it. Alice has a text only option where he can work directly in Java code as well as the visual interface.
For me the next step will be C# in the free Express edition. With the free XNA Game Studio they can write games to run on PC or XBox.