I think teaching children at a young age is the best thing you can do as they pick it up so fast, it becomes part of them and they just go through life believing that's just the way it is suppose too be.
There was a show on Discovery or Learning Channel years ago where they proved that children could assimilate information in huge amounts before they could even speak. Showing a page with a few hundred dots on it the children could count and give the answer in a split second.
After seeing that I realized that teaching them younger was the way to go. I also tried this with a Martial Arts class and taught some of the little guys multiple attack technics just to see if they could do it. I was blown away with what I saw.
Children can learn at an awesome rate and I think putting them to work on learning these types of things keeps them out of trouble.
My own kids I do this with. If they have time to get into trouble, well they have time for another class or community service.