views:

411

answers:

13

I was wondering if it's a good idea to teach object oriented programming to my son? I was never really good at math as a kid, but I think since I've started programming it's given me a greater ability to understand math by being better able to visualise relationships between abstract models. I thought it might give him a better advantage in learning & applying logical & mathematical concepts throughout his life if he was able to take advantage of the tools available to programmers.

what would be the best programming fields, techniques and/or concepts? What approach should I take? what concepts should I avoid? what fields of mathematics would he find this benfits him most? He's only 2 now so it wouldn't be for another few years before I do this, (and even at that, only from a very high level point of view).

I thought I'd put it to the programming community and see what you guys thought?

Possible Duplicate:
What are some recommended programming resources for pre-teens?

+14  A: 

Get him interested in music instead. The rest will fall into place.

+1  A: 

Do it, especially if he likes computers ;) He is probably too young to start now but as you said in few years time it might work and it is really good think to do.

You can watch some lectures on youtube e.g COMP1917 by Richard Buckland to find a good way to teach people about computing in general.

Later you can start with OO programming and PYTHON ;)

Good Luck

Novitzky
@fuzzy - play nice - this aint that kinda question.
Sky Sanders
@fuzzy - I missed his age at the beginning but you take it to serious to vote it down :P
Novitzky
My son was regularly reading for comprehension by age 4 or 5, with video game strategy guides. This includes straight text off Gamefaqs, not just the pictorial guides. Remember, if it's for something the kid wants to do, it's a lot more likely to work.
David Thornley
+1  A: 

If he's ever into video games that would be an excellent approach. That is: game development. There's a ton of math that can apply to game concepts, right down to the simplest "Strength - Defense = Damage" type equations.

Also, player versus enemy and stats, etc, are a good source of teaching OOP concepts.

Oh, and it may very well be more likely to keep his attention

Bob
+4  A: 

You have a whole section for children here

David V.
+4  A: 

Definitely a good idea. There is a large area of research on what the best way to teach programming to different age levels is, and there are many techniques. Lego mindstorms is a nice platform to start at a quite early age, it can introduce many of the main programming concepts with fun results. By default mindstorms uses a graphical programming language which is appropriate for young learners, but it is possible to run Java and many other languages on it as they progress.

Another environment which is nice for teaching at a low level is Greenfoot, which introduces OO programming with Java using a games platform. It is very simply to get started creating some impressive games very early, which helps keep students interested. It is also an easy progression from Greenfoot to the BlueJ Java IDE which is a good introductory programming IDE.

The most important thing I think is to find an approach that they engage with and can be enthusiastic about so they'll embrace the maths and logic concepts as ways to achieve interesting results.

Tom Castle
A: 

I started programming at a fairly precocious age myself, around 8 or so. I was totally self-taught -- so that when I started learning it properly in Jr. High, I had a whole mess of very bad habits to unlearn. Teaching the kid correctly right out of the gate sounds like pure Win to me.

I haven't used it myself, but I've head Alice is good for this sort of thing. (Note: website appears to be down at the moment.)

And put me down as another "Hell yeah!" on the Lego Mindstorms. Legos are awesome by themselves. Legos that do stuff? Sweeeeet.

But no matter which way you go, keep the fun factor high. If this becomes a form of play, he'll likely be a ravenous learner.

BlairHippo
+1  A: 

Definitely teach your son programming. I believe programming to be an important life skill that can be used in any walk of life. From a baker to mathematician, all people can use the analytical mind that comes from programming training. Teaching a child programming can be as simple as learning how to break down complicated tasks into manageable slices. Or learning to never give up until you find a solution. Everybody should learn programming in some way or another.

Medran
Let's start with: everybody should learn to read, write, and speak in some way or another. Or how about: everybody should learn to differentiate fact and opinion in some way or another. Learning to program is pretty far down on the list for the whole of humanity! I'm happy when I get behind someone who has a "God Bless America" bumper sticker and can sucessfully negotiate a traffic signal...
DaveDev
+1  A: 

Try Scratch. It's geared for kids and makes an incredibly fun learning experience. It teaches the basic concepts, constructs, and logic of programming in a fun, hands-on way. It has all the brain-development benefits of programming without being dependent on any specific languages or platforms. And it's free!

froadie
+1  A: 

Start here: http://msdn.microsoft.com/en-us/beginner/ff384126.aspx#

zwi
That just looks like Logo.
Eno
A: 

@STing: Hah. That is so true. I got interested in music as a kid, and then I started coding :D

Yep, music. If he likes Lego, maybe that's a start? I think you can program that stuff to do quite cool things :D

Maister
+3  A: 

In Russia we have a really bad tradition - teaching children programming using some child-oriented speсial programming languages. LOGO WORLDS is very popular. But - the main thing is not to follow such tradition and not to use such languages, because is incredibly stupid and your kid will have a wrong inpression about programming. He`d never like it, if you use made-for-children languages. Sorry for bad English, I hope you understood my point.

You made a good point. And there's no need to apologise for your English. it's better than that of a lot of people I speak to on a regular basis!
DaveDev
A: 

What I'd do is just hand him a netbook loaded with Sugar.

If he has it in him, sooner or later he'll start tinkering and asking questions.
Then (and once he can read and write well enough) you can propose him to start little programming projects, like building games (or Sugar activities) for example.

Gonzalo
A: 

I'd say that it depends on his desire and passions. I wanted badly to learn how to program when I was in my pre-teens because I loved video games. My father being very supportive, but knowing nearly nothing about programming, bought me Direct X Programming for Dummies, a C++ compiler, and then let me do my thing. Unfortunately I hadn't a clue what I was doing, so I gave up after awhile. Since you've got a strong understanding of computer science, you will be able to help him succeed at an early age.

The key then is helping him to see the enjoyment that can be had in programming. That is something that you can start doing at a very early age. As he grows you can find out what he is interested in and show him how a knowledge of computer science/programming can benefit his interests.

Dream Lane