My son and I want to start getting into robotics (probably starting with mindstorm). I'd like to encourage him into programming. Is there a way I can put the two of these together? Alternatively, if you had these interests/goals as requirements, how would you solve them?
At least back when I was doing mindstorms stuff (pre-NXT), there were a number of projects that would let you compile alternative languages into mindstorms bytecode, therby giving you a rather more capable environment than LEGO's. I used NQC[1], some quick googling suggests it's been succeeded by NXC[2] for the newer NXT mindstorms stuff.
I wouldn't say it's necessarily a good idea to jump right into a language like this though - even LEGO's normal graphical mindstorms environment will still serve to teach basic programming skills, and it's probably more approachable for a novice.