A Different Approach to Teaching Kids and Teens to Code

Alishah Novin
HackerNoon.com
7 min readFeb 20, 2017

--

How do you teach 5th graders about Software Engineering concepts without getting too deep into any particular language? This is a question I’d been asking myself a few weeks in advance of attending a local school’s STEM (Science, Technology, Engineering and Mathematics) fair.

I’d toyed with one of the standard approaches — move an object from a starting point to a destination with a series of commands (“Move left, turn 90 degrees clockwise, etc.). There are plenty of board games (Robot Turtles, RoboRally) and online examples of this concept, and while it definitely presents a clear goal, I’ve always felt the only big take-away for children is that the order of your operations matters. Not only this, but in a more literal sense, challenging problems like movement and rotation as well as object collisions are over-simplified. This leaves children with the wrong impression of programming — that there’s a set of commands out there and you just have to put them in the right order. To me, it’s the difference between Scripting and Engineering.

To over-simplify, Scripting is about putting together a set of commands without having much understanding of what is going on “under the hood.” You can take it all for granted, essentially. Engineering is less about code, and more about concepts — understanding the how, what, and why. Engineering is about making assumptions, creating a solution based on those assumptions, but most importantly — ensuring your solution can handle when your assumptions fail.

--

--