First let me share an interesting quote from a SIGCSE paper Digital gaming as a vehicle for learning:
During the past two years there has been a resurgence of interest in how to use digital games (e.g. video games, computer games and simulations) to support instruction in a variety of fields. The focus is on how to exploit the rich interactivity of 3-D, multiplayer virtual worlds. Computer science education has, for the most part, taken a different approach: rather than having our students play video games to learn concepts we ask them to build games to learn concepts.This supports what I said previously: the use of games in CS education tends to centre on creating them rather than playing them. Again, I don't think this is a bad way to learn — I just think that there is also potential in playing games to learn some of the trickier topics.
Without further ado, here is the list of games and related programs/resources that I've collected so far. I haven't experienced them all directly, so the accuracy depends on those who suggested them.
- CS Unplugged (not strictly games, but could be turned into games if desired)
- Game2Learn (research group that focused on building games that teach CS concepts)
- LearnMem1 (learn memory layout on a computer; can no longer find a link)
- World of Goo (someone suggested it might indirectly cover some CS topics)
- Manufactoria (sort of teaches Turing machines)
- ToonTalk (gradually introduces children to constructs behind programming)
- Karel the Robot (robot simulation that teaches programming)
- Lightbot (use programmer style logic to solve puzzles)
- 999 on Nintendo DS (knowledge of hex numbers required)
- Dr Brain games (Island of Dr Brain apparently had programming challenge)
- RoboZZle (makes use of stacks)