Take the 2-minute tour ×
Parenting Stack Exchange is a question and answer site for parents, grandparents, nannies and others with a parenting role. It's 100% free, no registration required.

I am going to buy a PC for my kid as a birthday present, so I'm thinking how to use it educationally. Of course, an obvious choice is teaching him how to program.

I'm not asking what age should a kid be to start learning programming. I wonder what he should be able to do, in order to learn programming efficiently? What is the proper level of development for a kid to learn programming?

share|improve this question
    
How old is he/she though? –  nuc Mar 30 '11 at 10:28
    
@nuc - He's 7 in three weeks. –  Nikita Barsukov Mar 30 '11 at 10:33
2  
I think programming is rather more likely to teach your kid the things he needs than the other way around. But he'll need to be able to read/write and use a computer of course. Although there are programming style games that doesn't use text. –  Lennart Regebro Mar 30 '11 at 20:01
    
Is this more of a StackOverflow type question? Maybe like this: stackoverflow.com/questions/3088/… –  Justin Standard Apr 8 '11 at 0:27
    
I can wholeheartedly recommend ChipWits - it's a game where you combine icons to give an on-screen robot some instructions for moving around and picking up goodies. Kids can make very simple control circuits - and the circuits can be tremendously complex if you really dive into it. I played with this for years on a Mac when I was a kid; it's been ported to a Windows version now, but remains very true to the original. That's why it's black-and-white. –  Torben Gundtofte-Bruun Oct 20 '11 at 13:10

7 Answers 7

up vote 14 down vote accepted

As a programmer i would propose to you the following:

Abstract thinking, Pragmatic Thinking, Higher problem solving. Design Patterns ( Not programming in general but building. Building in sense of building, construction. Did you know that design patterns come from designing buildings and problem solving in engineering? )

Also i would recommend starting with the famous little programming language for kids: Logo. There are actually pretty good games to get your kid started.

But you can Google that so i wont bother copying in those results. Your main goal is getting his attention and getting him to think like a programmer, or at least start to think like one.

After that you can start with applying the knowledge to algorithm and lower problem solving and object oriented programming.

Also i would recommend using Mind Maps, since kids tend to remember shining colorful things better. :) http://en.wikipedia.org/wiki/Mind_map

Ohhh also... i forgot but this is might help to.

As i kid i loved automating everything. That's why I'm an automation test engineer today. It might be fun to show your kid how you can automate tasks. How you can manipulate the windows, and everything what you pc does. Also some real world interaction like OCR with a video feed perhaps. Or a basic motion tracking system with a cheap camera.

I think the kid would be very happy if for example he could spot if his parents are nearing his room. :) Or build a little lego robot and program a routine into him, like go get me milk. Which is difficult but get's him started and will have a goal too and a real life experience which is VERY important in the early years.

See : Lego Mind Storm: http://mindstorms.lego.com/en-us/Default.aspx

share|improve this answer
1  
I used to teach Logo (free download nowadays) to first graders. They need to know the alphabet, they need practice finding the letters on the keyboard, and they need to have a basic understanding of numbers. Most Logo "words" are only two letters long, and working with Logo teaches number concepts like angles and sizes. By age 9 or 10, kids can do some pretty amazing things with it. –  MJ6 Apr 11 '13 at 5:24
    
Learning how to read music sheets is very similar to learn how to read code. –  Per Alexandersson Jun 20 at 19:36

I am a coder, so I just encouraged my kids to 'help' me from an early age. At two or three years old they were on my knee watching me writing applications and generally hacking so as soon as I could free up a spare laptop I gave them a triple boot linux, solaris and windows box to play on.

Basic shell coding seemed simple from 4 or 5 years old, and have the eldest looking at Ruby on Rails - he's 10.

Of the three of them, my eldest is the only one who actually seems interested in developing games, but the experience the younger ones get is likely to be useful anyway.

The one rule I always did have though was that they use the laptop in the same room as me or my wife - I don't use any censorship software, but I'm there if they do come up against something unsuitable - and it makes for a pleasant working environment.

share|improve this answer
    
"Basic shell coding seemed simple from 4 or 5 years old" - could your kids already read and write at the age of 4? I can't imagine how you could program a computer without reading and writing skills. –  BBM Jul 25 '11 at 21:33
    
Yes - they could easily read simple words at 4. Computers use a very simple subset of words. –  Rory Alsop Jul 25 '11 at 22:06
    
That's really great how you encouraged your kids to help you and had them doing shell coding at 4-5. I'm curious, 4-5 seems very young for shell coding, I'd imagine they would've been programming Ruby on Rails by 5-6 then. Why so long for the jump from shell coding to web programming? –  at01 Aug 1 '11 at 22:01
    
+1 for getting your kids to 'help' you. Spending time with your kids and giving them responsibility is a big step towards getting them interested for the right reasons. –  deworde Mar 4 '12 at 1:40

This might sound strange, but get him some source-code for simple games, show him how to type them up (or create them), and let him go at it.

That's how I got into programming at age 7 -- typing up game code from a Quick Basic book my dad bought me from somewhere. An intense 30 minutes of typing 10-100 lines of code, followed by hitting "run" and hours (ok, minutes) of glee.

That's a great solution because it ties effort into results. And what kid doesn't like games?

share|improve this answer

I started when I was 6 or so—I didn't have any particular pre-requisites, I just liked exploring (especially on the computer!). I actually found QBASIC on the computer myself, had no idea what it did or how to work it, and asked my father—I had no idea it was to do with "programming" or what that was—but he just showed me how you could tell the computer to 'do' things (at first adding numbers, then displaying messages, then asking for input and doing something with that ..), and it would do them for you! The very nature of being able to instruct something else (me! a six year-old!) was the hook.

Later, he showed me how to access the help files myself—that was invaluable. Now I'm a software engineer, with no experience other than my own.

Teach your child not to program, but to learn.

share|improve this answer
5  
+1 on the "to learn" comment, I love that! –  MichaelF May 13 '11 at 18:55

This link has been on my todo list for a while. http://www.qimo4kids.com/ You might find some interesting resources there. But to answer the question, I think that it is difficult to answer this as an adult. Our upbringing, which includes our programming learning process, differs completely. My daughters of two are understanding things I did not when I was two. Then there was gps. My father did things with computers, but on punchcards. Casette recorders are objects from the past. I am pretty sure that programming as we know it today, will not be the programming done by my daughters if they take the same profession as me. So my perpective is to provide my children with a computer environment that fits their. I have not checked it yet, but I guess gimo will do. I guess the programming learning progress will just follow. That is if they have interest in the matter. Could be that they prefer gardening in the end.

share|improve this answer
    
this isn't really an answer to the question, perhaps it would be better as a comment. –  David Mar 31 '11 at 1:42
    
You are so right. I have adapted the answer to make it an appropriate answer –  user35 Mar 31 '11 at 8:24

In addition to the other suggestions, I'd say make sure he can type relatively accurately. My nephew has an interest in programming, but his typing errors cause lots of problems and he gets pretty frustrated with it.

share|improve this answer
    
Frustration is part of the learning process. You should know how much frustration I went through (and sometimes still having) when it comes to programming –  user35 Mar 31 '11 at 8:25
    
Frustration with learning the structure of programming is one thing. Frustration with inability to type without spelling errors (which will cause all kinds of program or compile errors) is another thing entirely. If a kid can't type a sentence without mistyping words due to keyboarding errors, he (or she) will not be able to get to the "good" frustration of learning to code. –  alesplin Mar 31 '11 at 21:46

Maybe it would be easier for him to grasp the basic concepts, through some programming/educational games.

Some of them are:

Kodu

A visual programming language made specifically for creating games. Accessible for children and enjoyable for anyone."

Kinderlogo

Kinderlogo is an adaptation of Logo for young children, offering Logo's stimulating environment for creative exploration, problem-solving, and discovery for K-3 students and those with special needs.

Lego WeDo Robotics

Students will be able to build LEGO models featuring working motors and sensors; program their models; and explore a series of cross-curricular, theme-based activities while developing their skills in science, technology, engineering, and mathematics, as well as language and literacy.

Probably through games like these, he will be much more motivated, and it will be easier for you specially if you do not have a solid programming experience.

share|improve this answer
1  
Yes indeed. :) I just added Lego robotics to my comment to. I forgot about them, but generally they are the most fun things. :D I'm past 30 and still love to fondle with lego robotics. –  Hannibal Mar 30 '11 at 10:52
    
@hannibal Unfortunately I did not had any lego's when I was a child! I cant wait though for my son to grow up a little bit and start playing with him! Specially these robotic stuff seems so great! :) –  nuc Mar 30 '11 at 11:00
    
Ahh yes indeed. :) You will enjoy them very much. But be careful not to enjoy it more then your kid. :D Or get some for yourself to... :) –  Hannibal Mar 30 '11 at 11:06
    
Can't wait to check out Kinderlogo, and for the record my first grade class did well with vanilla logo. I'll have to dig up one of my old cassette tapes with the programs I wrote. –  David Mar 30 '11 at 14:34

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.