This post first appeared on Edutopia.
We teach kids how to write by first immersing them in stories and literature. We should adopt this same approach to teach coding and programming. In fact, this is something I already do: giving every child a background in coding that allows those who are interested and motivated to proceed with programming at a higher level.
My students make apps for iPhone and iPad and put them up on the App Store. Building a well-designed app can be daunting and time-consuming, requiring programming knowledge as well as user interface and user experience methodologies. That’s why we engage our students from the start in a process of designing apps to help others — a process in which coding and programming are essential, but secondary to developing empathy and process-oriented design skills.
Our approach, called Coding By Design, begins with solving real problems for real people. We start with a design thinking approach to creating an app, then proceed to a prototype, multiple iterations based on real feedback, and finally a top-down approach to solving the coding problems and puzzles inherent in app development.
Coding is traditionally taught backward, starting with the smallest line of code: “hello, world!” Many students give up before they ever learn more complex things like graphics and interactions. This is like teaching someone to build a motorcycle by starting with the tiniest gear. The part is completely disconnected from the whole. Few would even get to the point of building one component of the motorcycle, let alone the whole machine. If you want to interest someone in the hard work of building a motorcycle, you should probably take them out and let them fall in love with the experience of riding a motorcycle. Then you can work your way down through the major components.