Programming is a way of thinking, not a rote skill. Learning about “for” loops is not learning to program, any more than learning about pencils is learning to draw.
During the past month at university, I’ve acted as a help teacher in the beginner programming course (“Object Oriented Programming using Java”). I’ve tried to push for a more wider understanding for programming: that the students should learn how to think programming – not just how to create a while-loop in Java. Far too many times I’ve seen the students get stuck on petty concepts in Java which isn’t relevant at all in the big plan. The tools to learn are often embarrassingly outdated and weak, and many fail the course. Programming and computer science is a new branch in education – it’s time to start developing modern techniques for teaching it more efficiently.