Draining The Life Out of Computer Science?

We all know that coding is the future, and that many of the jobs will involve some form of coding/scripting. But, Computer Science at…

Draining The Life Out of Computer Science?

Coding Like It Was The 1980s … So Where’s Machine Learning, Cybersecurity, Data Science, and IoT?

We all know that coding is the future and that many of the jobs of the future will involve some form of coding/scripting. The Cloud, too, with its GitHub infrastructure, open-source code, and its vast array of services, provides a way to break out of our stand-alone machine model of our computing world. But, Computer Science at school is not doing well just now. In the UK, it struggles to get into the Top 10 subjects at school and also has an 80%/20% male/female gender balance (and which rises to 85%/15% for Higher Computer Science in Scotland).

The first sight of Computer Science at school is often the usage of Microsoft Office, and where we then drag them into learning structure charts and pointing them to the creation databases in Microsoft Access. This is a 1980s model of our computing world and bares little resemblance to the future (and potential) of software.

We have thus been left with a legacy of IT Systems, and in trying to match the syllabus at school onto something that matches to university entry. But universities don’t really care that much about the subject, and it’s often not required as entry into Computer Science courses.

But surely Computer Science is now more important than just getting kids into Computer Science courses? It will build new economies, it will stimulate our new businesses, it will drive improvements in our public services, … and this isn’t about creating software engineers any more, it should be about training our future clinicians, our business leaders, and our government champions … in fact, everyone! Every child should leave school to see the potential of data science, cybersecurity and how our digital world is evolving.

Just now, I am loving software development. I am freed from the closed systems of the past, and for me, it is an open world full of GitHub, JavaScript, and Python and where coding is fun again. I can be creative, and build things in minutes that used to take years. I can share code easily and take code from others. I now don’t have to write face recognition software or integrate libraries from costly software packages. I just add a few lines of Python code and integrate with the greatest machine ever created — The Cloud.

This new world is not about Microsoft Access, DLLs, desktop computers, BASIC, and Microsoft Windows. It’s about being free and the integrating with the Cloud. I can instantly install things with “pip”, “apt” and “npm” and I am not locked down by any local restrictions. It’s about Linux, and where the only GUI we see is our development environment, but under the hood, it’s all just commands and scripts. It’s about Cloud systems that build amazing infrastructures. It’s about a few lines of standard code that can speak to me in any language that I want, or that can recognise whether someone has a beard or not.

Coding is fun again! With Python and The Cloud, the world of data is at our fingertips, and we must show our kids this potential.

A new world is thus evolving and computer science feels like fun again. But when I look at what is being taught at school, I feel that life has been drained out of the subject. Here is an outline of the “newly updated” syllabus for the N5 subject in Scotland:

  • Software Design and Development: Analysis and Design; Data Types and Structures; Programming Constructs; Standard Algorithms; Testing; Evaluation.
  • Computer Systems. Data Representation; Computer Structure; Translation of High-Level Languages; Environmental Impact; Security Precautions
  • Database Design and Development. Analysis and Design; and Implementation, Testing and Evaluation
  • Web Design and Development. Analysis and Design; Web Content and Standard File Format; Factors Affecting File Size; HTML; CSS; JavaScript; and Testing and Evaluation.

I think this syllabus takes a wonderful subject and extracts all the interesting and engaging bits out. In fact, it wouldn’t be out-of-place in the 1980s. If I was given this syllabus to teach, I would turn it down in an instance, and ask to go and teach English. Overall, it’s as if The Cloud never happened!

Where’s the wonderful world of cloud computing? Where’s machine learning and AI? Where’s the potential of distributed ledgers and in creating new financial infrastructures build on trust? Where’s investigating data privacy and digital signing? Where’s the new world of IoT and of sensors and smart cities? Where’s the physics of gaming? And, especially, where’s data science?

Surely we should be switching our next generation onto the future, and show them how they can become architects of building a new world, and not switch them off with the legacy of our old digital world? To teach children how to create a structure chart and in creating HTML tags will lose another generation.

Shouldn’t we be asking our kids to take open-source health and social data around deprivation, and get them to use Python to analyse data? Shouldn’t we get kids to write a few lines of code and connect to the Microsoft/AWS Cognitive Engines, and get them to analyse faces, speech, and text? Where is the showing kids that cryptography could build a new world? Why shouldn’t kids learn the basics of public-key encryption at school? A few lines of Python code can show kids how we can encrypt data. In a world of GDPR, data privacy and protection must be a core part of what we teaching at school.

Unfortunately, the world of data at school still seems to be stuck in creating databases in a Microsoft Windows world, and the world of coding is unable to get itself out of the 1980s view of the stand-alone computer. Our world is open now, and the tools are all there, and which can run on a £10 device.

Why not get a R-PI for our kids and get their families involved in coding with them? To stick kids in front of a computer screen and get them to create a database in Microsoft Access is just switching off another generation to the potential of this open data world. It’s now a world that is command and script-driven that builds its software from the Cloud, and has little concept of the legacies of the past.

The subject, unfortunately, still wants to be a feeder for computer science in universities, and still doesn’t see itself as an equal to all the other ‘important’ subjects. Why not teach our kids a bit of coding on a Raspberry PI? Why not teaching them Linux from an early age? Why not get them to use Python in the same way that we used a calculator? Why not standardise our coding across all our schools, and support directly from industry professions? For one school to be running Visual Basic and another running Java, is a recipe for poor standards.

In fact, dump exams and stick to a standard curriculum and retrain teachers who have a passion for building things and have a core knowledge around a related area. A GitHub for standard code, for all the schools in Scotland, run off Python, would be a great start, and then families could help support their kids. A school would then just need minimal resources to run classes, and the code would run on any device that they had — especially for labs full of Raspberry PIs and sensors, rather than boring old desktop computers running Microsoft Windows. Industry professionals would then be able to contribute to the GitHub and provide advice on good practice, and relevant code examples and data sources.

If the computer science class taught kids how to convert to text into speech for the different languages of the world, the classes would be full, and kids would learn that computer science now integrates with every single subject that they take. Why shouldn’t they take their lessons from maths, and code complex methods — such as Pythagoras and simultaneous equations — into a few lines of Python? They will see how software makes things so much better, rather than being a boring subject.

As long as the syllabus is written as a 1980s viewpoint of computing, we will be stuck with a subject that switches kids off, and, especially not in addressing the current gender in-balance. We need a spark for computer science at school, and get kids thinking about the new world that is evolving, and it’s built on new foundations. After all, they will be the ones that will mostly be affected by the software world we are creating. It is full of risks but has great potential.

We perhaps need root-and-branch reform for Computer Science in our schools, and from an early age get kids to build and test things? Let them be creative, and see the barriers, along with the potential. Don’t ever show them how to use Microsoft Access or PowerPoint!

As long as we are stuck with a 1980s viewpoint of software development, we will not be preparing our kids for the new world. These new worlds will not be built on bricks and mortar, but on software and run through GitHub. We will then integrate our code with the most amazing machine ever created — The Cloud!