<p>DS1 built a website in 4th grade and quickly learned that html wasn't his passion. </p>
<p>DS1 started with programming his TI-83+ calculator when he was in 5th grade. He did games, study cards for math, etc. That used a variation of BASIC and his games were quite popular among his friends. Then he moved on to TrueBasic and VisualBasic, then C++, and then to Java. Like mathson, DS1 greatly prefers Java to C++. In middle school, DS's computer classes use LOGO in 6th, then moved on to TrueBasic. DS's programming in middle school focused on doing projects for science fairs. He'd learn a language to do the project. </p>
<p>For the long run, the best way to help your son tackle harder and harder programming is to keep the math skills moving with the CS. After a certain point, it becomes as much math as CS, and the ability to get through the math makes for better algorithms, etc.</p>
<p>I wouldn't expect an elem teacher to be able to teach programming. Even in specialized math/sci/cs middle school programs, there were problems with teachers who struggled to keep up with really motivated, self-directed kids. We found the best way to help DS1 was to stay out of the way and buy manuals when he asked. He takes CS classes at school, but 90%+ of his knowledge is self-taught, whether by figuring it out himself or through competition problems.</p>