In the last 10 years, I’ve seen a dramatic shift in elementary school education, with programming concepts rolled into core subjects like Science and Mathematics. I’m a big fan of this approach. We’re beyond the days of needing to just be computer literate. There’s demand for business professionals and other traditionally “non-technical people” to be more technical than just knowing how to use Excel. We are beyond the days of computer literacy and are in a world of computer proficiency. To help this transition, elementary and secondary schools are focusing more and more on STEM and computer education tools. The annual Hour of Code grows in size each year, and the depth of the exercises is always increasing.

Coding isn’t just for Software Engineers anymore: More and more professionals are leveraging Excel, PowerBI, SQL Server, JavaScript and more

There’s been an influx of products being marketed as “teaching kids to code.” Electronic toys that follow basic programmed instructions, board games, mobile apps, are attempting to help teach programming concepts — but unfortunately, they skip fundamental concepts, and the thinking approach. They teach a kind of “how” without properly establishing the “why.” Additionally, the toy aspect of educational tech-toys usually overpowers the educational aspect. They can be distracting or otherwise dilute concepts — the concepts become less engaging as they are not instructor driven. Finally, underfunded schools get left behind because of their limited access to these devices.

Coding is a very powerful tool to solve problems, but it’s not the only tool

Over the course of my next 7 articles I hope to define a different approach to teaching technical and engineering concepts with children of any age. They are all “offline” tech-less activities. No computers are needed at all. Instead they are engaging and instructor driven. All the exercises are ones I’ve done with children ranging from 3rd through 11th graders. There are individual and group activities designed to help establish the fundamentals of computer engineering, and in such a way that these concepts can apply beyond the world of computers.

Lastly, and importantly: it is not at all necessary for instructors to be familiar with the technical concepts being covered. While the exercises can be solved without guidance I usually help them towards asking the right questions. This series’ focus is not on writing code but how to solve common and everyday programming problems. Specific coding principles vary by language, but the approach is almost always the same. (In fact, even professional engineers present solutions in what’s called “pseudo-code” because much of engineering is about the approach and less about the details.)

My hope is that with this series students will not only better understand computers and what software engineering is all about, but they’ll also have a powerful framework for problem solving that can be applied in any area.

Watch this space.