Learning Java Through Violence
Joe writes: "Someone introduced me to a new game called Robocode and now I'm hooked as well as my 17 year old son. We are both learning Java while playing the game or I should say while building our Java robots. The game is setup to teach you how to handle events, how to create inner classes, and other Java techniques to build more sophisticated Java bots. I have a c++ background so I've been helping my son with his bots, but he's catching on very fast. It's turning out to be a cool and easy way to get the kid clued into programming and best of all its free." I'll bet if the little Logo turtles shot at each other, I would have had more fun programming as a kid.
Yes, robocode is not the first, see DMOZ's entry. Corewars was perhaps the most famous. Okay, now we can move on to talking about Robocode's merits instead of talking about its family tree.
When I was in 3rd and 4th grades, way back, we had Apple ][ and IBM PC Machines, and we were taught BASIC, and LOGO, both turtle and mathematic instructions. We had district-wide competitions. Computing was for more than teaching productivity software and reader rabbit-crap.
This is something that has been lost from the curriculum, and should be regained.
Joe's son is 17, and while still developing, I'd venture that any associations he's made with violence and good were made long before he reached this age. Give the kid and parent some credit, the kid is an adolescent and hasn't rejected hanging out with his Dad- they must be doing something right!
kuro5hin has a much more in depth look at robowars .
Can be found at: http://www.robocode.net/
http://www.cognitoy.com
And, of course, Loki ported it to Linux.
It's an incredibly addictive robot battle game. You generally build robots with a GUI interface, but for serious hackers there is an object oriented definition language called Ice that compiles into the same VM code as the GUI builder.
-John
Learning throgh RoboWar to produce advanced behaviour out of a slow and limited language was a great help when I later went on to dabble in embedded systems--the skill set required is very similar.
I have a positive modifier on Troll. When I mod someone Troll their karma should go UP!