Coding 2 Learn

Education and Technology Ramblings with a little Politics for good measure.

What exactly are we teaching anyway?

On Twitter, numerous education blogs and even on Hacker News, there have been more than a few debates of late regarding the education of students in Computer Science/Computing/Coding/IT. In the UK, in particular, the debate has been fueled by Lottie Dexter's "Year of Code'; a government backed scheme to encourage everyone to learn a little more Computer Science/Computing/Coding/IT this year.

The usual suspects have all weighed in on this debate.

There are those that consider Computer Science and Computational Thinking the very purpose of a modern education. They argue that without the ability to fully comprehend the Halting problem, no child could ever tie their own shoelaces without entering some sort of bizarre shoelace-tying infinite loop.

Then there are those that argue it is impossible for a student to understand any abstract Computer Science problem. In fact, children are incapable of writing code, finding an on switch, or even manage to sound out the words on a "C" is for "Computer" nursery school flash car. They make the case that we should give up now and all go back to making pretty pictures in Paint.

![C is for Computer]({filename}/images/GettingShitDone/FlashCard.jpg =300x)

The arguments seem, more often than not, to be focused on what name we give to the subject that we are teaching. In reality, of course, the name means very little. During a child's early years we teach them what we think they need to know and during the latter years we're subject to the whims of the exam boards and organisations such as Ofqual.

It is for this reason that I propose a radical reform of the name given to Computer Science/Computing/Coding/ICT, that I will hope will clear things up once and for all, and prevent any future arguments, back biting and bullying. From this day forward I intend to teach students "Getting Shit Done With A Computer".

Getting shit done with a computer is at the end of the day, what I'd like every kid to be able to do. Regardless of what you call my subject, I'll always teach students how to get shit done with a computer, as that's what I think they need to know.

I like my students to be able to recognise when the cable has been removed from the Ethernet port, and understand the reason why they have no network connection. I like my students to understand the basics of a file system and how to navigate it. I like my students to be able to use a spreadsheet, operate a database and write up a project. I like my students to be able to choose the right tools for the right job (The right tool being emacs and the right job being any job, always.). I like my students to be able to knock together little scripts that will recursively grab files out of a nest of directories, or as one enterprising young fellow did the other day, write a script that replaces all your files with this picture of Chuck Norris.

![Chuck Norris is the Internet](http://upload.wikimedia.org/wikipedia/commons/thumb/b/b1/Chuck_Norris%2C_The_Delta_Force_1986.jpg/834px-Chuck_Norris%2C_The_Delta_Force_1986.jpg =400x)

Along the way I'll teach them a little Boolean logic, some binary and maybe Big O notation. This isn't just high flung theory with no practical use though. I recognise that when you want to get serious shit done with a computer, these are important concepts to have at hand.

When all is said and done, if we could just lose the pathetic tribal mentality that causes some of us to identify with the moniker Teacher of Computer Science, or Teacher of Computing, or Teacher of IT, the students would benefit in the end, and we could all just get some shit done using our computers.