Well, you always have the programming games, like AT-Robots (http://necrobones.com/atrobots/). You program a robot to fight in an arena. There are many varieties in this genre, with many different "languages", but what I like with AT-Robots, is that it is assembly style, with interrupts and registers etc. In many ways, it actually feels like you are programming a cpu in that robot, interfacing with all the hardware.
I found it quite educational when I first came over it in my Uni days and actually submitted a crude first attempt in one of the arranged ladders.
The toolset is solid and without bugs (which cannot be said for all of these types of "games").
I think the whole thing is made in Turbo Pascal. There is a very nice graphical representation of the "fighting" between the robots.
Definetly worth checking out if you like pogramming games in general.
Cheers,
Chris
Without life, Biology itself would be impossible.