Monday, 10 December 2012

I Know How Cars Work, and So Do You

A few people have challenged my idea of universal computer science education with the following comment: "People don't need to know how cars work in order to drive them, why do they need to know how their computers work?" I think we actually know a lot about how our cars work, but before I get into that, let me clarify a little about what I mean by computer science. I'm not talking about every child learning the Java programming language in grade nine, or even grade eleven. Learning languages would likely be part of computer science education (although maybe Python would be a better choice than Java), but a focus on specific languages misses the point. Computer science is a discipline, with big ideas and fundamental understandings. Those are what we need to focus on and teach in school, using the tools that make the concepts most accessible (and fun) for our learners.

It's true, you don't need to be a mechanic in order to drive a car. Nonetheless, every elementary school student learns about simple machines. We teach the big ideas of mathematics in school to all students (I hope), but expect only a few grow up to be mathematicians. It speaks to our general illiteracy about computer science that the fundamentals aren't obvious to the general population, the way they are in the other disciplines we teach in school.

As far as driving a car goes, we do know how it works. Beyond knowing about simple machines, we know how a car will behave in a variety of situations. We rarely wish we could throw our cars out the window, the way we do our computers. 

We use our cars as extensions of our bodies. We are physically in synch with our cars when we are driving. We learn, spend months practising, and spend years refining how to coordinate our sensory input, movement, reaction, response and physical coordination with the functioning of our vehicle, to take best advantage of what it can do. It's a lot more than turning the key and pushing the correct buttons. If I drove my car without deeply understanding its behaviour in response to my input, if I was a passive user of my car rather than a driver, I would be a danger to myself and society. 

A computer is an extension of my mind. If I understand some basics about computer science, for example how programs work, how computers handle big data, and how networks interact, I can predict how an application will work, I can choose the right software to make my work efficient and productive, and I will know what to expect from my tools. People often use software in inefficient ways because they don't assume things about its design that would be obvious to programmers, or they don't understand how computers handle data. When there is a problem with computers, the frustration and misunderstanding that ensues is less when users understand a bit about computing. We need to bring our minds into synch with our computers the way our bodies are in synch with our cars. To do that, we need to know how computers work.

Computers, like language, shape and are shaped by what we do with them. Our relationships with computing machinery run deep, but our awareness and understanding of those relationships is often shallow. It's a problem we are just beginning to recognize. The solution is to teach computer science in schools.

2 comments:

  1. And so, by this logic, does the move to have cars that effectively drive themselves seem a bad move?
    When I was young my brother taught me how cars work by mending them and making me watch/help. I hated it but I have been eternally grateful as I have never been stranded as a result, able to spot the signs earlier than some of my friends. But now my car has been computerised to the point where I can no longer mend it myself and so it will be harder to show my kids first hand how suck, squeeze, bang, blow works.

    ReplyDelete
    Replies
    1. No, I don't think it's a mistake to have complex machines in our lives. It can be annoying when everything is sealed up and proprietary if you are the kind of person who likes to take things apart and figure out how they work.

      I think we also need to keep a bunch of stuff around that we can poke, fix, make and hack, though. We are, on the whole, in danger of selling our brains to Satan in exchange for an iPad. On the other hand, there's nothing wrong with a bit of candy in the context of a nutritious diet. We are, after all, living at a time when building a car engine fuelled by soybean oil is something a group of ordinary kids can learn to do in an after school club using the Internet and scrounged parts - with the right kind of support from caring adults.

      The maker and hacker movement is growing up in the midst of a pervasive number of "too complex" machines. It is a response to all the slick, specialized, sealed and expendable machines that we buy without thinking about anything too much, and later discard when something slicker comes along. The complexity of the stuff in our lives can make us feel disconnected and dependent. Breaking stuff down, putting it back together, modifying it and learning how stuff works is fun and makes us happy. Maker and hacker spaces are places of learning as much as anything else. The wonderful thing about this learning is that it is based in originality, creativity, collaboration and play. We all need this kind of education in our lives, kids especially.

      Delete