There are two basic ways of teaching programming -- or pretty much anything, come to that. You can either start with the building blocks and build up, or you can start with some self-contained problems and then pull them apart. In practice, of course, you need to do both, so it comes down to a question of emphasis.
My preferred approach has always been to start by solving problems, as far as possible. Here are my reasons.
cross-posted at www.ictineducation.org
Terry Freedman is an independent educational ICT consultant with over 35 years of experience in education. He publishes the ICT in Education website and the newsletter “Digital Education."