I have become very interested in playing with RoboCode as of late. Wikipedia sums it up pretty nicley:
Competitors write software that controls a miniature tank that fights other identically-built (but differently programmed) tanks in a playing field. Robots can move, shoot at each other, scan for each other, and hit the walls (or other robots) if they aren’t careful. Though the idea of this “game” may seem simple, the actual strategy needed to win is not. Good robots can have thousands of lines in their code dedicated to strategy. Some of the more successful robots use techniques such as statistical analysis or attempts at neural networks in their designs.
I do go on with my rants about Java however I have gone as far as proposing an in-house tournament between friends. I have even drawn up game types and rules for this tournament. This could prove to be a great introduction to programming for them and a lot of fun for everyone.
Also I get to crush their robots with great prejudice in robo-combat.