Have been keeping myself up at night playing Cargo-Bot. The game was created on an iPad, using Codea. I have found the game a lot of fun and like the way it teaches you programming techniques. The one thing I noticed right away is that you can solve a puzzle but not get the full number of possible stars (three out of three) for your solution. You only get full points for solving the puzzle in the fewest number of steps.
I am still in the tutorial section. The tutorials are puzzles that show you different techniques you can use in the game. Also like that when you have a solution you can record it then save the recording as a video. The game below is an example of one of the tutorial solutions.
This would be a great game for a math class or a programming class. Hopefully I can incorporate it within my programming elective in Middle School next year.