Should schools teach coding? Ours does.
A year ago our school decided to revamp its IT program. We decided that Microsoft Office belonged in the classroom, in context, and not as a disjointed activity. We renamed IT lessons “Computer Science” and we put a syllabus together. We decided to teach coding. These were our reasons for doing so.
- In five years, everything will be a computer: Fifteen years ago, computers were just that, computers. Then our phones became computers that we could carry in our pockets; our watches followed. As chips get cheaper and smaller, everything will become a computer, from our fridge to our earrings. Our children will live in a world dominated by computers: knowing what these do and how they do it will give them an edge over people who don’t.
Yes, but: people buy cars and still have no idea how they work. Why are computers any different? Making apps is becoming easier and easier, no coding knowledge needed. People need to know how to use computers, but not necessarily how they work.
Good point, but: computers can be hacked. They have viruses. They have spyware that steals user data. I know how to protect my Internet passwords because I know how hackers manage to obtain those. This allows me to make good choices about security. I can find suspicious processes in my computer. I can troubleshoot. A lot of this requires extensive knowledge of a computer’s operation. When your car breaks, you go to the mechanic. This is different: this is about avoiding damage in the first place. Finally, you drive your car twice a day. Your computer is right there with you, always. All your personal and financial information is in there. Do you really want to relinquish this power to a group of experts who do not have your well-being as their priority?
- Coding saves you time: That’s what coding is about. You want something done. Doing it is a pain. You get a computer to do it for you. Every time you use a formula on Excel, you are coding. People who know how to code are people who can get a computer to work for them.
Yes, but: learning to code takes time. At the end, it just does not pay off. How many hours do we need to spend coding in order to get a tiny advantage in a possible future?
Good point, but: this is the eternal debate. Spend ten minutes figuring some new technology out so you can save 2 minutes every time you perform a task? Well, it depends on how often you perform that task. Coding is a skill that can be used in a range of situations. Chances are that the time you will save in the long run will vastly outweigh the time you spent learning.
- Coding makes you better at problem solving: coding is all about computational thinking. It is about taking a problem and breaking it into chunks, then breaking those chunks into logical steps. This is a skill we want our students to have. As a physics teacher, I continually see students staring at a problem where they have everything they need, but still cannot put it together. Continual exposure to this technique will make students more likely to apply it in other areas.
Yes, but: there is no evidence that this transfer will occur. For all you know, students could get better at problem solving in computer science but not transfer any of these skills elsewhere.
Good point, but: it’s not true that there is no evidence for this. In How people learn, the authors explain that transfer does not happen automatically, but is more likely to happen if the skills we want transferred are applied in different situations. Students are already learning these skills in other subjects and computer science provides another, radically different situation to do so, therefore making transfer more likely. Secondly, that’s why in our school we visit coding concepts in radically different environments, from game coding, to using Minecraft, to building robots. This will also make the transfer of skills from computer science to other subjects more likely.
- Coding teaches you to learn from your mistakes: we keep telling our students that failure is good, that failure teaches you something. But students don’t listen to us. However, when students code this fact is unavoidable: programs are born through trial and error. Nothing ever works on the first try. The only way to get a program to work is to gather as much information as you can from your mistakes. You need the mistakes if you want to progress. It doesn’t get any better than that.
Yes, but: honestly, I cannot come up with anything to say against this. It’s just that clear to me.
- Coding makes you more accurate: how many times has a student given you a wrong answer and then said: “but you know what I meant!” Well, the computer doesn’t know what you meant. The computer doesn’t care. If you don’t write exactly what you mean, the computer doesn’t understand. This helps students see the value of accuracy: you can’t assume the computer will know what you mean and neither will your teacher. A comma in the wrong place will ruin your sentence. The wrong adjective will create the opposite reaction you’re looking for. You’re welcome, language teachers!
Yes, but: again, how do you know these skills will transfer?
Good point, but: didn’t you read the answer to 3?
Summarizing, we are expecting coding to have a noticeable effect on our students’ problem-solving skills, as well as on their general accuracy and logical thinking. Whether this will actually work remains to be seen, as this is our first year of full-fledged computer science. More information to come!