Friday 5 July 2013

Coding Is A Hands-on Skill

I'm frustrated at how computer science seems to own coding.  In Ontario it is now an orphaned subject unto itself.  There is no way someone without a degree in computer science can teach coding, though coding isn't computer science any more than auto mechanics is theoretical physics.

This reminds me of the Big Bang Theory when Leonard's car breaks down.  He asks, "does anyone here know how internal combustion engines work?" and all the the scientists in the car laugh and nod.  He then asks, "can anyone here fix a car?" And all the heads go down and they say no.

Computer science is the theoretical end of a spectrum of coding that goes from hands-on hacking through professional coding and into academic research.  That only math quants who were looking for a second teachable pretty much like their first can teach it greatly limits its appeal to the general population.

Code.org agrees with me, as does Steve Jobs, as does Codeacademy, Khan Academy and many other online groups.  These organizations are proliferating because we are not offering our students meaningful access to computer programming.

If we're going to treat coding (as a part of digital fluency in general) like other basic skills (literacy, numeracy), then we need to free up coding from the bizarre limitations placed upon it by the Ministry of Education and computer scientists.

Can you imagine if all the autoshop teachers had to be theoretical physicists or engineers before they could apply that knowledge to repairing vehicles?  It's a ridiculous idea, yet that is precisely what we are doing with coding in Ontario schools.  There are many ways a teacher could approach computer programming, limiting it to an extreme, theoretical end of the spectrum doesn't respect the variety of people who get into coding, and it doesn't offer students that variety in the classroom.  Coding isn't a theoretically biased branch of knowledge, in fact I'd argue that coding has much more in common with stochastic technical skills.

We are killing a vital 21st Century fluency stone dead with arbitrary limitations.  Coding should be a technology course, it should be hands on, and it should work hand in hand with engineering (because that is what it is and what it does).  That it is artificially separated into a null space between mathematics and computer studies helps no one other than old school computer scientists, and there aren't many of them.  The irony is that many of the math teachers with comp-sci as a teachable don't want to teach it because they never kept up with it other than as a theoretical/academic course of study in university; they don't love coding, it was simply an easy way to extend their mathematical degree work.

Computer science, like theoretical physics, is a vital subject, but it's highly specialized and how we teach it should recognize that.  Coding is a skill anyone can learn, and should.