Gamification of programming

Hello. Today, as many others I presume, I greatly enjoyed the Turing Machine Google doodle. In the process I realized a couple of things.

One: embarrassingly, I never really fully wrapped my head around the concept of a Turing machine. But the doodle allowed an enjoyable environment to experiment it, learn, and appreciate what they are.

Two: After seeing such an example I realized how much room there may be in Gamificating (no idea if that's the word I want) programming. I.E. framing game play elements around programming and its concepts to make the act of learning less painful, more enjoyable, and more compelling.

To borrow the first line in the Wikipedia page:

Gamification is the use of game design techniques, game thinking and game mechanics to enhance non-game contexts.

I'm currently imagining having an environment or even an unadulterated computer game which can use situations or puzzles to introduce programming concepts and eventually to encourage experimentation. In the Turing machine Google doodle I was a little disappointed that there were only two sets of puzzles and it didn't give you room to start manually placing instructions. On the good side I was already having all sorts of ideas of things I could do beyond what the puzzles showed, so maybe mission accomplished. Because even if a game only fostered enough excitement for someone to jump into python/c++/whatever to begin designing their own programs then it would have been successful.

Below I've included links to the Wikipedia entry and to an episode from a web show called Extra Credits which speaks on the topic of Gamification, it's relevance in today's world, the benefits, and the downfalls.

I have heard of core wars, just haven't got into it yet. Haven't looked through the list you posted yet but using core wars as an example I see it more as a game with programming as a premise than turning programming into a game. I'd recommend watching the episode I posted on gamification and if you have the time look through the Turing machine Google doodle. You'll notice in the doodle they do a good job of introducing concepts slowly to teach you how it works. I learned more about turing machines playing through that doodle for an hour than I have through all the rest of my reading combined.

What I'm imagining is possibly making a game where you have python commands on one side of a window and the output on the other. Maybe even having the game work like the doodle and you have simple commands that you can toggle between to give the program vastly different behaviors. In addition to that as the player progresses then they can be given the ability to place commands where they wish out of a 'tool set'. And finally of course breaking into writing real code blocks so solve the problems.

Core wars is more like chess where you need to know what you're doing before coming to the table. I'm shooting for something more like Mario/Halo/many other games that could be named that start you out with a fairly minimal set of skills and let you learn and expand off that.