Computer science educators have generally gravitated toward teaching programming using easier languages of the day under the assumption that the students would be more receptive to them. But are the students’ long-term interests really served by this approach? Doesn’t using the socalled easier languages for teaching programming amount to teaching serious musical composition with a banjo? Even more fundamentally, what do we mean by teaching programming? It is important to explore these issues given the critical role played by software in all facets of human existence today.