Have you ever thought about, or do you teach coding? Is it one of those things that you know will benefit your students, but because you have no formal training in digital technologies, you are fearful of jumping in the deep end - what if I sink instead of swim? Well, in this short(ish) post, I hope that I can belay some of those fears you may have, and get you and your students into creating some code, or at the very least, trying some activities that will get them thinking about coding.
Why Would I Teach Coding - I'm Not an IT Teacher?
If you want to look at it from some sort of dictatorial position, being able to code, is being able to control people. Think about the people (developers) who create the apps you use. They know how to code, which means that you are kind of at their mercy, expecially if you do not know what they're putting into their products behind the scenes - into the code that makes the app function.
How do you know that the app you downloaded this morning is not now, yes, right now, storing all your passwords and sending them to a server in another country so that some underground mercenary army can use your next paycheck to help fund their attempts to overthrow the president of yet another poor country? You don't, do you? (How many of you stopped reading just then to delete all the thrid party apps you downloaded in the past twenty-four hours?! LEt me know in the comments if you did!)
Now, there's a very good chance you are not having your passwords stolen as you read this, and there's an even better chance that you are not being controlled by the developers of the apps you use (at least not in the literal sense), but you are being controlled in a manner of speaking, because the definition of control is summed up as having the power to influence or direct people's behaviour or the course of events. Could you dig into the workings of your favourite app and change it so that it operated more to your liking? No. Then you are, in essence, being controlled by the ideals of the developer. You are using their product, the way they intended you to use it, not necessarily the way you intended to use it.
Let me expand a little further on this. I use, as a part of my role as a teacher, a Learner Management System, or LMS. It's essentially an online portal, where I can administer the classes I teach each semester. I can upload lesson plans, assessment tasks, link to educational content, and pretty much whatever else I deem any particular class requires to have a rich learning experience, thereby increasing their knowledge. I also deliver grades via this system, and students can use it to ask questions and have me, or another student answer them. Pretty neat, all in all.
I find, however, that the markbook does not really cater to my needs. It does not have the functionality that I would really like. The LMS is not specific to the country I teach in, and so I find it particularly frustrating that I cannot accomplish different objectives within the markbook. You see, I'm being controlled (in an inadvertent manner, sure) by the developers of this LMS. Now I can change all of this. I can turn the books (pardon the pun) on this LMS, or at least the markbook side of things, because I can always code one that will more suitably fit my needs. Can you?
I'm a firm believer that in today's technologically advanced climate, there are those who can code, and those who can't, and the divide between these two groups is increasing at an (almost) exponential rate. Technology is moving forward faster than you can imagine, and new methods of creating and controlling technology are being devised continually. This is why there has been such an increase in the demand for students learning to code.
When I was at school, it used to be called programming. Sounded kind of nerdy, and only attracted the stereotypical types who wore think glasses, had pocket protectors (as functional as they may have been), and sported a nifty set of braces that made them talk like they were underwater and had a mouth full of marbles. Today, it's called coding. Much more hip, or lit, if you will (if you read one of my previous posts, you'd get this!)! Children as young as pre-school age are learning how to code, and parents will now actually seek out particular schools based upon their coding curriculum, as opposed to forty (why do we drop the 'u' - 'four' has one, why not 'forty'?) years ago when they would be finding schools with the best sport's programs.
Being able to code is a highly sought after skill. In fact, in Australia, the Digital Technologies curriculum is based, in part, upon the idea that job advertisements between 2012 - 2015 were showing an increase in demand for digital literacy by up to 212%. The same report also predicts that digital literacy will be demanded 650% more frequently in the future Australian workforce, and that by 2021, over 5 million workers will need the skills to configure and use digital systems, while over 1 million workers will be needed to build digital technologies.
You see, we're losing the need for more people who simply consume technology. We need people who can create, not just technology, but the programs that run this technology. Think about the leaps society has seen in just the past few years. Mobile phone advances, autonomous vehicles, machine learning, robotics, and the list could go on. The world needs people who can make these items work, and to do that, they need to be able to code.
So What Are The Benefits?
Well, apart from the freedom that being able to code gives you (remember the mercenaries that are just itching to use your hard earned cash to overthrow an entire government?) there are many benefits to learning to code.
One of my favourites, is that students will quickly develop analytical skills. They will learn to look at a problem and disseminate it into smaller, more logical chunks, so that they will be able to develop better solutions. Analysis is great for students who wish to formulate a better understanding of something, and this skill can be used not just during IT classes. They can take this into their other subjects and use it to assist them in being more critical (in the good sense of the word) of the content they are being taught. For example, picking a subject at random, a student who has developed excellent anayltical skills in IT could transfer this skillset to English, where they can better anaylse a novel, pulling apart the plot, or characters, and reporting on them with much greater insight - you're welcome English teachers!!
They will also learn very quickly how to problem solve, and as you are no doubt aware, this is a skill that has been dwindling in students over the past decade or so. You will be surprised, however, that when you shove a small coding task in front of them, how quickly a student will pick up on the idea that they can solve problems by actually making multiple different attempts. I've seen numerous students, who are normally challenged by the desire to simply throw their hands up in the air at the first sign of a difficulty, meticulously spend hours working through a problem in a piece of code, tenaciously reading each line, trying to find why it isn't working.
What about after school? Learning to code will open doors to some amazing employment opportunities for our students. I think I've already covered the notion that governments are looking for developers of technology, not just consumers, so by learning to code, students will be creating a plethora of post-school pathways for themselves. There are more and more employers looking for skills, like the ones mentioned above, that coding helps to foster. I could list a variety of careers that students could go into after knowing how to code, but you could easily find this information using Google. Here's a link to a site dedicated to Careers with STEM. I found this in a mere matter of seconds.
While there are still a lot of benefits we could cover her, I did say at the commencement of this post that it was going to be short(ish), and I feel it is already blowing out, so I'm going to cover just one more. Fun.
That's right. It's actually fun to code. That's all on this point - it's pretty self explanitory.
But I Can't Code...
So, by now I'm hoping that you're champing at the proverbial bit, gagging to get back into your classroom and have a go at coding with your students. But there's a problem. I can't code, I hear you wail in despair, but don't. All is not over. There are plenty of fun activities you can do to teach coding concepts to students without actually touching a computer at all. What's that you say? I don't need a computer to teach coding? But I thought the whole idea of coding was to be using a computer. Well, that's ideal, but you can do without if needed.
One activity I use for first-timers, which introduces them to algorithm development, without being overwhelming, is having them select an everyday activity, such as brushing their teeth, or making a sandiwch, or even, tieing their shoelaces (it doesn't matter what it is, it just needs to be something that has a process and can be repeated over and over again).
Once they have chosen their activity, they need to write a set of instructions on how to complete the process. I specify that they must be precise in the instructions they give because anyone who reads their notes may have never performed the activity before, and that they must include detail, for the same reason.
What the students don't realise, and you can explain this at the end of the activity, is that they are actually learning how to write a set of instructions, just the same as a programmer would write for a computer. You can then extend this lesson into other Computer Science activities, or simply leave it as a stand alone idea that you could further develop when you're more confident.
I have also used an activity that allows students to begin to understand the idea of binary numbers which is the number system that uses only 0's and 1's. In this activity, you could have students make bracelets, or necklaces, by threading coloured beads.
Simply print out sheets (or use an online tool such as this) that has the alphabet written in binary, and then colour-code the 1's, 0's and spaces (for example: red for 1, blue for 0, and black or space). Students can then thread their coloured beads to create a wearable 'secret' message in binary.
Again, a great and fun activity, because students are learning the concepts of Computer Science, and if you're not comfortable getting stuck into coding with them, just yet, you can be introducing the ideas anyway.
That's It Folks!
As I conclude here, I hope that this has been, in some way, a beneficial read for you. I especially hope that you have been enthused by some of the ideas here and are now compelled to get your students programming. It can be challenging, but what in life, that is rewarding, isn't a challenge?
If you happen to be a teacher, and you do employ any of these ideas in your classroom, I would love to hear all about it. Drop me a comment below and share your experience. If you're not a teacher, and you have something to share, you are equally welcome to comment, or ask anything.
As always, thank you for reading, and I look forward to hearing from you.
Join us @steemitbloggers
Animation By @zord189