My Son is 2 yrs old, and I want to start teaching programming at 5.
2-3 work on reading 3-4 work on basic math 4-5 work on basic algebra (w/tools like dragon box of course)
5+ start programming strat - find an open source game - start playing it with my son - after a while start modifying the code with my son
To sum it up in one sentence... get your child emotionally invested in the environment before trying to show him how to manipulate it.
It might backfire. In many (but not most) cases the child actually gets to resent this kind of "education" instead of loving it.
It's great to want them to love reading books, love mathematics, love music, love science and encourage thinking, but a life-long passion for these good things is only guaranteed if they choose them.
Postpone your plan 3 years (5-8 instead of 2-5) and IMO it will be 10 times better.
I enjoyed it too, my only objection is that it might actually put them off entirely instead of making them love it if it's presented to them when they're not ready (and I think 4-5 is too young).
Rule #1 for me is to never assume what my child is capable or incapable of learning.
Rule #2 do not force learning and figure out how to make it enjoyable.
I have already started teaching him how to read. Most mornings I ask him if he wants to play letters. If he says no we do something else. If he says yes I practice with him. It started out learning to recognize the word CAT. After one week it turned into learning about 12 words. Now it consists of practicing his vowel sounds. Typically we play this game for about 5 minutes. I always do this in the morning because that is when he is the most open to learning. We use a dry erase board so somewhere around the 5 minute mark it degenerates into doodling pictures of cats, dogs, mommy and daddy. Sometimes he wants to try and trace the letters on the board. The best part is, even when letters is over and we are drawing, he is still learning. So I do not believe that I am in danger of turning him off to the joys of learning.
He is already playing dragon box. He can play up to the 13th level by himself at which point he starts asking daddy for help. He usually asks for daddy's phone about once a week to play dragon box. His favorite part is when the dragon gets bigger. Then he yells "It got bigger daddy! :)"
Assume nothing, try everything and you will discover amazing things.
I typically take the Feynman route... http://thenearbypen.blogspot.com/2009/11/feynmans-father.htm...
You'd be surprised how much of the 'complicated' stuff sticks, and comes back at a later time when they have an Aha! moment and it all clicks.
By the way, I've learned sooo much doing this, e.g. I've recently discovered that Pluto isn't a planet anymore... :p