views:

886

answers:

11

My little girl wants to learn programming but she is still a little young. What would be the best approach to teaching programming to a 7 year old that still lacks a lot basic skills?

+1  A: 

I've heard a lot of folks talk about Alice from CM, but I found it kind of funny.

kenny
A: 

I think when it comes out, Microsoft's Boku may be a good start. LittleBigPlanet is simply an overgrown level editor compared to it. Maybe something like Batie, as it translates it to C#.

The Alpha Nerd
+4  A: 

This is a really tough question. When I was studying in school we had computers as a subject. we started with basic concept of input/output devices and so on. and then we started with basic programming using LOGO. It was fun playing with it and also a good learning. Maybe you can start with that. This is going to be a trial and error coz you never know what interest your kid will develop. My advice is be patient and go slow. Good Luck. Please post your experiences as well as time goes.

Viky
+1 - I have heard of children as young as 5 learning fairly complex recursive programming concepts (by themselves) from exposure to LOGO. If there is a physical 'turtle' drawing on paper, I expect that would be even more interesting for the kids.
frankodwyer
This is a good one. LOGO is a really cool introduction to programming just because it's very immediately gratifying. Nothing is worse for a child than long periods of typing before getting to see a result.
chaiguy
+2  A: 

Skills are not important. Long term interest is :)

A good way might to let her watch you work on programs, watch how you play with them, change them, make them do different things, and start to explain how to make them work when she asks. If she's curious how you did it, the chances are that she'll pick up basic skills pretty quickly.

PolyThinker
+13  A: 

Check out Small Basic from Microsoft. A really simple IDE and the language only has 15 keywords I think - it's made with kids in mind. http://msdn.microsoft.com/en-us/devlabs/cc950524.aspx

Also check out this article on Wired's How To wiki, which has a wealth of information: http://howto.wired.com/wiki/Teach_a_Kid_to_Program

dwynne
Programmable Lego is far more likely to induce enthusiasm of a child then programming LOGO. Small Basic seems good for 10+ or is that me not giving kids enough credit ?
Martijn Laarman
This is a LOT better then trying to teach her C#
Superdumbell
Bah I looked at this and it was no "simpler" than C# except that it can't do as much. The syntax is almost the same. It has a couple features that would be handy to anyone but isn't any more natural or obvious, imo.
chaiguy
The trick is that A: you don't have to learn a lot of complicated code to get decent animations and graphics on the screen and B: it lets you get started right away programming without worrying about classes ort object oriented programming or anything.
RCIX
+2  A: 

This is about computer science. Computer Science Unplugged is a set of school level teaching resources about computer science and programming.

yesraaj
+1 I know Tim Bell, one of the players behind Computer Science Unplugged and I've seen demos of some of the classroom resources. The one on Parity is quite cleverly dressed up as a sort of magic trick.
ConcernedOfTunbridgeWells
A: 

I am going to have to go with what a lot of us learned on as little kids...

LOGO

Geoffrey Chetwood
+5  A: 

Squeak is a smalltalk environment well suited for learning. Squeak is included on the "one laptop per child". See this video with Alan Kay showing how squeak can be used for teaching both science and programming. (Squeak appear at approx 12:20). This will also teach object orientation. More resources here - EToys is a sort of grownup version of Logo, a teaching tool that lets you graphically build block structured pprograms and animate the results on screen.

Rolf Rander
+5  A: 

Simply put, don't.

She is still very young and really should be spending a lot more time building up far more important skills. No 7 year old should spend endless hours on a computer writing software, despite what they want to do. When I was 7 I wanted to be a wrestler, when my girlfriend was young she wanted to be a plumber because that's what her Dad does.

I really do not see why parents choose to make their kids programmers, just because that's what they've chosen to do with their lives. What's wrong with kids just being kids until they can make an unbiased opinion on what they want to do with their free time?

Let her make friends, go out for food and birthday parties with her friends, go to boys houses and whatever else girls do. She's still very impressionable, and she'll obviously want to do what you do. Your task is to let her decide and not sugar-coat your job by giving her a toy IDE to play with.

The worst thing you could do to a 7 year old girl is alienate her from every one else she knows by getting her into something you enjoy. This'll most likely be an unpopular answer, but it'll be the same answer I'll be using on every other "how can I get my kid to be a programmer" article, so at least it'll be easy for me to find on my answers list.

EnderMB
Oh come on; there's no reason she can't have a life and be academic at the same time. Stick to basics and don't overwhelm her.
chaiguy
She won't have a life if you're dictating it. You should never push your own interests on a child because they're YOUR interests! Since when was programming an academic subject? She won't pass history class if she spends her time writing a shopping cart in Python.
EnderMB
Prorgamming is one good outlet for creative energy .. especially for if art is in minds, but not in hands (-:
Vardhan Varma
I hate this answer. I started programming at 9 and would have killed for a mentor at that age, much less my own father. If she wants that experience, let her have it. For once, a child's wants, her parents' and what's in demand in the real world all coincide!
Chris McCall
Of course she wants to try programming, her Dad is a programmer. Sometimes you've got to let kids decide what they want to do themselves. If you want your kid to learn programming then let them attempt it themselves and if they need help give it to them, but don't sugar-coat programming for her otherwise she's not really learning anything other than to pretend to program. It's as simple as that.
EnderMB
A: 

I also believe that it might not be the best idea. But simply denying it is also not a good solution. That will only make her want to do it even more, which she most likely will in secret. In the end this would only give you both painful times.

You must be careful. The Big Bad Thing that could happen is that this alienates her from her friends because she is spending to much time at the computer and not enough developing her social skills (which, I hope you agree, are way more important than computer skills).

I'm no expert in these things (hell, I don't even have kids of my own yet), but I think that limiting her time at the computer and making programming to be something "special" is the way to go. Also, keep watching how interested she is in it. If it gets boring, don't push it. Let her do it on her own terms, so it stays fun. But remember that there are limits to computer usage per day. This actually applies to computer games, web browsing, etc. Programming is not the only way how a computer can become an addition all too fast.

And lastly - I would adivse to consult a child psyhologist or something about this. A specialist, in other words.

That said, I'd recommend QuickBasic, because that's what I grew up on myself. But there probably are more appropriate (simpler) languages that I don't know about.

Vilx-
A: 

This came up on Slashdot recently. A few posters suggested HTML + Javascript and I'm inclined to agree. It's a real language, but more importantly, she will become the kid who can do cool stuff with MySpace / Bebo / whatever, rather than a social outcast.

fizzer
IMHO languages where you can simply draw things with one command are better for the VERY beginning. HTML might follow, but a little later.
Vilx-
Lol I still can't do Javascript. :P I think HTML is a good place to start though, because it gives them an understanding of syntax and text turning into something nice.
chaiguy
var JavaScript = JavaScriptExperance == true ? "Good for you" : "It's worth learning";
Superdumbell