You might want to check out "MindRover". It's old and harder to find now since the original website is defunct, but can still be found on Ebay or Amazon. Although game/mission oriented, it involved picking from a palette of robot components, putting them on a chassis, and then wiring them together. It was really well done for a game and could be used to explore simple to semi-advanced concepts. Some screenshots here: http://images.google.com/images?q=mindrover.
If you are looking for something a bit more serious with real world capabilities, you might want to check out FlowStone for Education. I have not used it, but I believe it is a visual programming environment ideally suited for robotics type work.
Last, although not software or simulation, I recently came across a comment on reddit by phblj regarding a technique for introducing programming, and I thought it was really good (and especially adaptable to robotics programming). Quote:
Great example of computers I did with kids: One kid got to be the
"program" and gave instructions on how to make a peanut-butter and
jelly sandwich, but they couldn't watch my actions. I was the
computer, and followed the instructions exactly. Hilarity resulted.
(Not taking lid off peanut bar, not getting bread out of box I had it
in). After a minute, another kid came up and tried. They got a little
further, but still floundered. "Put the peanut butter on the bread"
resulted in the jar sitting on the loaf, etc. It took several kids,
but eventually we got it. If you've got an assistant, have them write
the instructions as they're said, creating the "program."
You can get into explanations, then, but the thing that really stuck
was that the kids were each "smarter than a computer." But that
computers were really, really fast at following instructions. So they
needed to use their smarts and the computers speed, and...