Best Practice

The computing curriculum: It’s about real-world problems

The computing curriculum is not all about coding, but this perception and the ‘geeky’ stereotype might put students off. Terry Freedman offers practical ideas for how you can dispel these myths and engage students in computing study

Are students put off studying computing because it sounds a bit “geeky” and nowhere near as exciting and interesting as the (old) ICT curriculum? In other words, are your students asking: “Is computing all about coding and not much else?”

The answer, of course, is no! One of the reasons that computing has a bad name is that it seems to have nothing much to do with ordinary problems. There is also a perception that it is mainly nerdy boys who are attracted to it (which in my experience tends to put girls off the subject).

This means that when you are drawing up your schemes of work, and especially when you are trying to convince students to take up the subject as an option, you must make sure it is not only relevant, but exciting.

In this article we will look at the following:

  • What does the computing programme of study actually say? Is it really all about “coding”?
  • Some examples of real-world problems that, on the face of it, have little or nothing to do with computing.
  • Some ideas you can try in order to bring computing to life.

The programme of study

The first step in this journey is to go back to basics: what does the programme of study itself have to say? Although many people keep referring to the new “coding” curriculum, the national curriculum is very clear that the programme of study for computing is not all about programming.

For example, the section on key stage 3 specifies that students must: “Undertake creative projects that involve selecting, using, and combining multiple applications, preferably across a range of devices, to achieve challenging goals, including collecting and analysing data and meeting the needs of known users.”

And that they be taught to: “Create, reuse, revise and repurpose digital artefacts for a given audience, with attention to trustworthiness, design and usability.”

And to: “Understand a range of ways to use technology safely, respectfully, responsibly and securely, including protecting their online identity and privacy; recognise inappropriate content, contact and conduct, and know how to report concerns.”

Those three paragraphs easily put the lie to the assertion that the new curriculum is just about coding. Even the basis for the programming, which admittedly does form the bulk of the programme of study, has its roots in real problems: “Design, use and evaluate computational abstractions that model the state and behaviour of real-world problems and physical systems.”

This means that you are expected to teach students how computing can be applied to everyday problems. An easier way to think about this is to go right back to the start of the programme of study, in the section entitled “purpose of study”: “A high-quality computing education equips pupils to use computational thinking and creativity to understand and change the world.”

The key phrase there is “computational thinking”, i.e. thinking through problems in a particular sort of way.

There are four aspects of computational thinking, and it is worth reiterating them here because you can have your students examine real-world problems through any one or more of these lenses:

  • Decomposition or breaking the problem down into smaller parts.
  • Pattern recognition or seeing where apparently different problems are similar in some respects.
  • Abstraction (involves ignoring extraneous detail).
  • Algorithms (devising step-by-step solutions).

Computational thinking in the ral-world

The leaky pipe: Anna Shipman kept having a flood in her flat. Various plumbers came and went, and did something — until the next flood. But then someone came along who might have been a software engineer or a programmer in a previous life. He systematically and methodically tested each element in the piping and guttering that could be the source of the leak. In other words, he was applying the principle of decomposition.

You can read the full story online (see further information for this and all other links) but the conclusion that Anna comes to is interesting: “Everything would be better if it was a bit more like software development. Craftsmen should be more like software developers.”

The magic of medicine: How are magicians like medical programmers? According to Professor Paul Curzon, magicians aim to divert your attention from the important detail while the people who write the software for medical appliances, on the other hand, need to do the opposite: they need to bring people’s attention back to the detail at the crucial moment. In computational thinking terms, magicians use an algorithm to get the results they want, and the same kind of thinking can be applied to designing medical devices.

The Computer Science for Fun website states: “Misdirection is one way a magician misleads. It relies on the fact that we can only focus our attention on one small area at a time. Instead of drawing a person’s attention away from things that matter, with software, their attention should be drawn to those critical things. For example, if a nurse mistypes a dose into a machine, then before starting the infusion, you want the nurse’s eye drawn back to the screen, not away from it, using the magician’s tricks, so they check the dose.”

You can read more about this idea in the booklet Machines Making Medicine Safer and you can read more about the relationship between magic tricks and computational thinking on Computer Science for Fun.

Cross purposes: When Alan Turing was recruiting people to work for him at Bletchley Park, to crack the Nazi Enigma codes, he wanted people who could complete The Times crossword in just a few minutes – no mean feat. But what’s the connection between deciphering a code, and doing a crossword? The answer is that both involve a language, codes and assumptions. This theme is explored further in a review of the recent book about the history of crosswords, entitled Two Girls, One On Each Knee (7).

Ideas for bringing computing to life

Apps for Good: An obvious way of getting students to apply themselves to real-world problems is to have them identify some problems and then work on a solution. That way, they will be designing programs to meet a real, identified need. If this approach appeals to you, then consider taking part in the Apps for Good programme. It doesn’t cover the whole of the programme of study, so you could also opt to just use the materials instead.

Project-based learning: A project-based learning approach involves setting a problem – or telling your students to identify a problem – and then collaborating with other students to solve it. You stipulate that each solution must address programming (designing an app or writing a program), digital literacy (e.g. the interface should be user-friendly), and e-safety (e.g. privacy). You could combine this with the Apps for Good idea.

Legal and ethical issues: If a driverless car kills someone, who is responsible? Should most of us be worried about robots taking over our work (apparently, 49 per cent of jobs will be taken over by robots in the next few decades)? How can we solve the problem of sexting? What is the internet of things, and what are its potential benefits and pitfalls?

Local opportunities: Do a web search for “Digital <your area>”. What opportunities are there for getting involved in local businesses/events/competitions around the area of coding and digital skills? You may be pleasantly surprised.

Hello Lamppost: Look at the Hello Lamppost project (see further information). What was good about it? How could it be used for a more serious purpose? Could we reproduce it (perhaps on a smaller scale) in school?

Make a self-referential game (or other code): For an example, see the game Untrusted, where you change the game itself by programming it. How might this kind of self-referential approach be applied in real life, or in serious games? I created a self-referential spreadsheet game once, where you had to solve challenges in the spreadsheet in order to learn how spreadsheets work.

Create a game: In fact, you could ask your students to create a game to teach younger kids how to code. Educator David Luke found that getting kids to create a game helped them to learn – see his article Creating A Game: A positive impact on learning?

Get together with others: How is computational thinking and programming applied in other subjects? When I was head of ICT and computing, I asked one of the science teachers to give my department training in relational databases, because she had interesting – and different – examples of how they could be used.

Careers: What careers are open to people with a knowledge of computing? Not just coding, but problem-solving skills? Answer: most jobs these days. It may be worth emphasising the problem-solving aspects in order to attract students who relish a challenge and can see how the skill may be useful in a job.

Creating resources: There are quite a few interesting resources on the web, as well as useful information about computing. What if one of your projects was to get your students to create a resource pack for particular topics, such as conditionality, complete with explanations of what it is and how to use the resources?

Blogs: Set up a class blog and designate one student per lesson as the class scribe. His or her job is to write a blog post about the lesson that anyone who missed the lesson can refer to in order to catch up. As we all know, having to explain something ourselves is a good test of whether we know what we are talking about!

Conclusion

Not all of these ideas are “exciting” per se, but they are challenging. In my opinion, getting students engaged is a crucial step in building up their enthusiasm.

Links and further information