Computing – the fourth science

This was a facebook post, but I’d like to expand on it here:

I’ve just checked our school leavers’ destinations for last year. We had 16 going into medicine, pharmacy, dentistry, pharmacology or veterinary science.

We had ten going into software engineering, computer science, AI, robotics or related subjects where Computing would be an essential or near-essential skill (including one Maths/Physics pupil in there).

I have been very generous in what I consider a “medical” subject and quite strict on the computer-relates ones. We’re looking at something not that far away from a 1:1 relationship between the two overall, depending on how you view the courses.

Image courtesy of Wikipedia
Image courtesy of Wikipedia

Not even considering how useful basic Computing would be for anyone doing engineering, chemical engineering, bio-tech, or indeed the medically-related subjects… would someone kindly explain to me why parents still think their children “have” to do Biology, Chemistry and Physics to get into Medicine et al? Especially when university entry requirements haven’t asked for this triplet for many years?

Yes, I’m selling my own subject. I just want to know why I need to when the advantages of it are so flipping obvious to so many pupils.

I was speaking to a parent recently who finished her PhD a short while ago and she can’t understand why Computing isn’t encouraged more by schools. Her subject was Genetics and there was no way she could have done the work she did without the aid of computers and knowing how to use them.

Yes, there’s a definite gap between “using a computer” and “knowing how it works and how to program one”, but there’s also a big common ground where the skills picked up would be useful for so many other areas of life/study.

Take the Software Development Process, for example. It teaches how to approach a large problem, break it down into smaller ones, plan each section appropriately, distribute these small problems to multiple people (if required), get the parts made, test them thoroughly, document everything, evaluate the finished product and maintain it afterwards.

This procedure can be applied to so many other skills: essay writing, laboratory experiments, household projects, business plans… it just needs a little bit of tweaking. To the best of my knowledge, with the exception of CDT/”techie” we’re the only subject that teaches this structured approach to problem-solving. Not only do we teach it, it’s entrenched in the ethos of computing and forms the framework of the course from junior years right through to senior. It’s not just an exam topic.

Computers are in use in all walks of life and knowing how they work helps you when you’re dealing with them. If you know what they can do and roughly how they do it, then it makes it easier for you to communicate to an expert exactly what you require if the actual task is outside of your skill set. This would be incredibly useful for those doing any scientific university course as they rely so heavily on information-gathering and, indeed, automation of experimental procedure. Automated and monitored by, of course, computers.

We’ve had pupils who’ve told us in their first year that they’re not taking Computing because they’re going into Medicine and their parents have said that Computing is pointless. This angers me. A good Computing pass further up the school is as valuable as any other for university entry and equally as useful for getting onto Medicine. In First Year you don’t even know what your child’s strengths truly are and by telling them they won’t be taking the course at certificate level in two years you’re hamstringing them – they won’t try, so they won’t achieve their potential. It becomes a self-fulfilling prophecy.

You could be pushing them to do a subject they struggle at, when they could be a natural nerd who could get a far easier “A” in Computing… and still get onto a medical course at university.

Computing is a science. In fact the course – right through from the beginning of the certificate route in schools to the end – has recently been renamed “Computing Science” in Scotland to reflect this. What more do we need to do to make parents, and indeed those within schools who sort out the timetable, realise that Computing Science is comparable to the “classic” sciences in terms of academic value?

11 thoughts on “Computing – the fourth science”

  1. “Computing is a science.”

    Oh, no. No, it fucking isn’t.

    Please, please don’t ever say that ever again. You are wrong. You are badly, terribly, awfully wrong, and you are doing a massive disservice to students if you promote this canard. As are the dribbling cretins who renamed that course.

    Unless you are doing actual peer-reviewed, published research to push the boundaries of our knowledge of computing, then you are not doing science.

    Otherwise, if you are strongly promoting an engineering mindset, then what you’re doing is “engineering”.

    And if you’re not pushing rigorous engineering principles with every ounce of your will, then all you’re doing is “pissing about with computers”, and killing the job prospects of your students. Oh, sure, they’ll get jobs… but they won’t last the six month trial period unless their managers are just as incompetent.

    I’d never want a “computer science” graduate for design, coding, maintenance, management, admin, or indeed any computer-related task other than… um… no, I got nothing. I guess if I concussed them with a brick, I could use them as a doorstop? Nah, I’d just use the brick. Data-entry, maybe?

    Full rant here: http://dewimorgan.livejournal.com/55840.html

  2. Read your post and fair cop on the semantics. However, try selling “engineer” to the parents of some kids and they just think of oily overalls. Computing needs all the help it can get in the marketing front and if that takes a teeny inaccuracy in its nomenclature then so be it.

    After all, if the people to whom the description really matters, such as yourself, are happy with the content of the course and the students’ skills within it then the name is inconsequential.

  3. Well, it’s not just semantics: the use of engineering vs science is reflected in the skills taught. Comp Sciers get taught all sorts of cool theory that’s irrelevant in real life, and nothing practical.
    If you’re teaching even ONE of the engineering skills I mentioned in my post, then your students are doing infinitely better than any CompSci student I’ve yet met. In which case, great, and I want to take your course myself, because many of those are skills *I* have trouble with!

  4. Having looked through your list we cover a fair few of them. How well they’re taken on board by pupils is another matter! One of the issues I have at present is that they’ve taken 60% of one course, 60% of another and crammed them into one new course… while changing the assessment and tuition methods into more time-consuming ones. Obviously not a great combination. Also, do note that I’m teaching at school level so we don’t have time/resources to go into huge depth on some of these topics. I’ve also included some whch *were* covered on the old Advanced Higher (equivalent to university first year) course – no idea what’s on the new one, which we’ll begin teaching in a few weeks, as they’ve not deigned to provide us with that information yet.

    The ones we cover / encourage / explain:

    logbooks and methodical records of our works.

    documentation of everything we’ve designed, how it works, what decisions we made, and why we chose that way.

    commenting our code.

    understanding that no code can be perfect, that we will unavoidably have errors in our code, and how to write rugged code that will survive this.

    designing modular code for maintainability and reusability, and worrying about performance tuning as the last step.

    knowing and understanding the algorithms involved and how they scale (O-notation) so that we *never* need to worry about performance tuning.

    systematically designing our code, in writing, using some predetermined process, rather than just plunging in and writing it ad hoc. Requirements and specifications documentation.

    designing around unit testing, not just writing code then checking that it compiles and runs, and calling that testing.

    seeing a project to completion, not just working on the sexy bits that are new to us (scientist thinking) and then dropping the project unfinished because we got bored.

  5. Hoooo…leee…crap.

    I wanna be in school again 🙁

    Also, sincere apologies, as I appear to have been preaching to the choir, here. I guess it’s not all doom and gloom in education for computing, and the syllabus doesn’t just get crafted by people who think Pascal and Fortran are cutting edge.

    Happy! 😀

  6. Currently we, as a school, use (through 7 school years): PHP, SQL (both starting next year), Python, JavaScript, Scratch, Logo, VB and BYOB. We’re looking at alternatives, such as app building tools or Greenfoot. They’re a reasonable spread, handle the differing age groups and cover the skills they pupils need to demonstrate to pass their courses.

    I *think* universities focus on Java as the primary language these days, but the key thing is that they teach *how to program*. The language, as I think you said before, is irrelevant and the right one should be chosen for the right job. Hopefully by using a variety throughout school we’re demonstrating this.

  7. @Dawi Morgan unfortuantly it is a Science – my Degree
    Compuer Games Programming BSc (Hons) (Sc = Science) i would agree in principle it should be a BEng but it’s not,

    Secondly are you aware that at the point this article was wrote it is in Primary school as part of the curriculum from Year 3

    Year 3 = Turtle
    Year 4 = Scratch
    Year 5 = HTML / CSS
    Year 6 = Python

    I hate the fact that year 6 are given python, python is a C equivalent language in all it takes is an email with a .py script from a and you have a virus running on a network in a school it just fucking stupid python is to damn powerful / dangergus for a year 6 to be messing with

  8. Hey Martin. A fair point – I have a BSc in… something to do with computers as well. Can’t remember the actual title! Computing with Information Technology? Something like that.

    Yeah, England seems to have jumped on the “everyone who uses computers needs to know how to program” bandwagon along with Scotland, which is all well and good at a junior age. After all, it teaches the breakdown of problems, logical progression and so forth. Unfortunately, they’ve also done away with Information Systems in Scotland in the last two years which was, essentially, Computing for people who can’t program. It focussed more on digital media and databases – also challenging, but a different skillset. Now, they’ve cludged the two together making the only school-level Computing qualification inappropriate or excessively difficult for many who would otherwise have taken it.

    We opted for Python as our core language for the certificate courses as so many of the resources available are written for it (along with other reasons). VB was causing too many problems with pupils confusing variables with object properties and it’s a pain sharing part-written programs as they’re not a simple single-file script. You need all the project bumph as well. We’re always looking for alternatives, though… but by then it will mean rewriting course materials. Again.

  9. OK, before anything else… you got to do a degree in computer games? You JAMMY BASTARD! I hope they taught at least some of the management and design methodologies people hype and tout in the boring IT industries where they don’t actually care about the bland e-product they’re writing, so they have to make it seem fun by thinking up new forms of non-waterfall development and non-procedural design.

    Good thing there are games degrees now, the games industry desperately, and I mean *desperately* needs to combat the glut of hobbyist-turned-coders with some properly trained coders.
    And yes, that means giving them real languages to train in. I kinda sympathize with sysadmins who’s first priority is security, but unless they prevent any external machines, phones, disks or thumbdrives connecting to the school network, they’ve got way larger problems than letting people code in a non-sandboxed language.
    I don’t think people could teach woodworking with padded plastic saws, so the woodwork teachers just have to mop up blood every now and then, and computing’s not really that different (eh, I’m probably way behind the times, woodworking is probably part of the “humanities” subject now, and it’s all virtual interactive 3D chiselling sims…).

Leave a Reply

Your email address will not be published. Required fields are marked *