Scratch is another option, much simpler than a ruby-based tool (it's fully visual) but dramatically more accessible. My 5 year old can't get enough of it; tonight we covered the Cartesian plane. Kids will probably outgrow it after a couple years since it has no means of abstraction, but it's superb at grabbing their attention.