Learn to program by solving game puzzles
The idea is simple:
- a visual programming language
- different blocks correspond to different language constructs (say an if)
- the language is represented by a flow graph
- each level is a challenge to make the flow graph produce some result
To help guide the users, the program is interpreted visually, giving feedback as to how each construct is affecting the program state.
This is implemented in a prototype to showcase the idea in an Android application.