Mandatory Programming Education

I recently read this article at InfoWorld which discusses the idea of requiring students at the middle or high school level to learn how to program. The author, Neil McAllister, cites the increasing need for basic computer literacy in our technology-dependent world. While I agree that computer literacy is of critical importance today, I don’t entirely agree that courses on programming are the way to get there, at least not the way programming courses are taught currently.

There are plenty of programming concepts that can help someone understand how computers work, but there are just as many (if not more) that will not. Learning about linked lists (a topic that was covered in my own high school programming class) will not unlock any of the mysteries of using a computer more effectively. Understanding the concept of a boolean value and how such values are the building block of everything a computer does, on the other hand, could very well help someone see more clearly how complex things like operating systems and spreadsheet applications function.

I think the main thing that gives programmers and advantage over other people in relating to computers is that their knowledge of programming concepts and constructs allows them to guess at what a program is doing “behind the scenes.” In situations where a program is not behaving normally or throwing numerous prompts at the user, a programmer usually has an idea of what the program might “want” in order to get it to return to normal operation.

The key, then, to using programming as a tool for teaching computer literacy is to separate the concepts that provide insight into the workings of computer hardware and software from the ones that simply teach you how to write code. Basic concepts like if, then, and else statements, for loops as well as more complicated structures like stacks and queues can help explain the normal functions of a computer. The code required to implement a stack is not important in that context.

About Adam Platt

Adam Platt is a technologist with more than a decade of experience across the full stack. His passion for technology and penchant for rendering complex technical ideas into simple terms have made him an in-demand speaker. His resume includes BriForum, the PowerShell Summit, teaching engagements and more.

He is one of the 10 types of people who understand binary and he can solve a Rubik’s Cube.

About Adam Platt

Adam Platt is a technologist with more than a decade of experience across the full stack. His passion for technology and penchant for rendering complex technical ideas into simple terms have made him an in-demand speaker. His resume includes BriForum, the PowerShell Summit, teaching engagements and more.

He is one of the 10 types of people who understand binary and he can solve a Rubik’s Cube.