The game I bought yesterday, which almost made me forget my bedtime, is called Human Resource Machine.
I'm in at least two minds with this.
Quick description, it's a puzzle game by the guys that did World of Goo. In it you play a guy / girl in an office, and you have to solve problems. These involve a conveyor belt labelled "IN" that has boxes with numbers / letters on them, and another conveyor belt marked "OUT". You're tasked with moving the boxes around, some should go from IN to OUT, some need to be discarded, some need to be combined, some might have to be reordered.
You have a list of commands at your disposal that you drag&drop into the right order to form a program. Since the boxes are random and change every time you (re)start a level, you need to find a general solution. Once you think you've got it right, you hit play and your guy / girl starts performing the actions. It all looks rather cute and adorable.
It starts out quite easy, with a very limited selection of commands available. Soon the problems become more complex, and an incentive is added to try and solve them in as few steps as possible, or with as few commands as possible.
Now, for the most part I'd say the game is a lot of fun. It doesn't teach you coding, but it gives you a general idea of the kind of thing that goes through a coder's head. Like, cutting a problem into little pieces that can then be individually solved, and generalizing the problem in such a way that your solution works all the time, and not just for a specific set of inputs.
Now what's difficult with this game IMO is the fact that the problems become more complex, but the tools you get don't keep up. When I quit and went to bed yesterday, I was thinking about how to do a fibonacci sequence. Thing is, you only have addition/substraction, increment/decrement 1, and a jump to, jump when 0, and jump when negative. Any if..then..else, or for/while loops you might need, you'll have to construct from those tools. Sure possible, but it's very fiddly. At this point, the game stops being about finding a solution to a problem, and instead becomes about trying to keep track of your own spaghetti code. (also, I want my recursion ffs!)
I do believe this is all intentional though. It wouldn't take much to introduce those concepts, but it'd make the game more abstract too. This way it stays closer to an assembler like complexity.
Then again, I haven't actually finished the game, so I'll see if they do introduce new things later on ...