Using Programming Language Concepts to Teach General Thinking Skills (2008) [pdf]
While I think programming can be a good way to teach general thinking skills like perspective, clarity, precision, and abstraction, I'm dubious about the claim that it is the best way to do so (§2.1).<p>Perspective - does learning multiple programming languages engender more awareness of different perspectives than say, learning multiple foreign natural languages?<p>Abstraction - does learning programming languages develop better use of conceptual abstraction than say, mathematics?<p>Precision and clarity - does learning programming languages develop better precision and clarity than studying philosophy and logic?<p>These are all empirical questions and no empiric data is provided.  The lack of support in the argument for the conclusion given also hints that maybe learning programming isn't _the best_ way to learn clarity & precision after all.<p>Where I thinking learning to program stands out as superior is that it teaches a skill that is currently in high demand - programming.