Why not make them start in machine language, I mean since they need to learn how everything works before they can program in the language they choose right? I find it somewhat funny that C and C++ are the default "starting point" languages to learn programming when there are still lower-level languages than these. I see no problem with starting out at a higher level language and going from there, part of programming is having enthusiasm and being able to play around. By starting with easier languages, a person's interest may better be captured and can lead to more self-learning, the way I see it, the natural progression is to want to learn the harder, lower-level stuff as you move along in a development career anyways.