If you program and have ever looked at a block-based language such as Scratch you might not have been impressed. The immediate impression is that it isn't programming. If you have tried to teach ...