Wednesday, November 11, 2009

Should we teach programming in schools?

When I went to Catholic High, there was a computer course.  But in this course, all we did, all year, was learn how to use Microsoft Office, and I felt like it was a big waste of time.  It's true, there is some merit to learning Word, Excel and Powerpoint, but I don't feel that they are something that you should need to take a class for.  I don't feel that they would take that long to teach either.  So, I was wondering what it would be like to teach common programming to all high school students.

To begin with, I'll admit that learning how to program is not a skill that any large part of society needs to know.  It's a very niche skill.  However, there are several programs out there, where, if the users has some idea of how to program, they can enhance their use of the program.  Excel and Word themselves support the use of macros, userscripts for the nicer Web Browsers can greatly enhance a person's use of the internet, and MMO players greatly benefit from the ability to use macros and addons.  Programming is moving from being a niche skill, that is mainly used in very large projects, to something that everyone can use in small ways to improve/make more efficient their life.

Furthermore, programming uses a type of thinking that many people don't exercise enough.  When you program, you have to first come up with a general solution to a problem.  This often involves identifying different parts of the problem, that when solved separately, can be stitched together to form a complete solution.  Then, once you have figured out how to solve it yourself, the programmer must translate the instructions to the computer.  Hopefully this would help foster growth in the problem solving area of their brain.  Of course, by the time they would be taught programming, it will be too late for many of them.  This, I feel, is a shame.

So, you may be wondering, what would be the best way to teach kids problem solving skills?  Personally, I think it's games.  Games, games, games.  Board games.  Card games.  Video games.  All games.  Shamefully, too many kids don't play games.  TV is easier.