Those of us who believe in teaching programming at school level are often asked to give a rationale for it. This is especially the case in Girls' schools where elective courses in programming have a hard time getting the necessary numbers. The following is not a list of reasons to teach programming. Rather, it is an argument for starting the discussion with the question: "why not teach programming?"
A student who can program is able to:
- Design and bring a dream to reality. Computers make it possible to turn vision into reality. Making this happen on the screen requires no special equipment.
- Build interactive content. This takes students from consuming content to producing their own. We value this with the written word, why not do the same with on-screen content? Click here for more on interactive literacy.
- Understand how a computer works. "You don't need to know how a car works to drive it." True, but understanding how the car works has its own advantages.
- Participate in the future of ICT. Many students I speak to have no concept of what it takes to make an App for their iPod Touch. Being able to make one themselves empowers them to make things that others can use. They can evolve with the technology rather than simply be dazzled by it.
A friend recently told me that programming was not an expected skill. After all, it was not something that everyone did. This is true. The question is: Do we want our students to play catch up to what everyone does or do we want them empowered to go beyond that?