Programming is a tool, and it should be thought as such: teach them how to tackle a problem with an algorithmic approach, e.g., how we can enumerate all possible combinations of who-seats-next-to-who in the classroom, using some constraints (Joe wants to sit next to Eddy)... whatever.
Teach a lazy kid how to make a computer work for him, and you've created a programmer. [Insert Bill Gates' quote here]
You may want to avoid clearly obsolete-wrong patterns ("GOTO is Evil"), but other than that, any language is good. Eventually, they'll find their language of choice, but they would likely keep the basic set of skills that built back when they learned.