Tuesday, 10 September 2019
Thursday, 13 June 2019
Why coding matters
By Simon Peyton Jones, Chair, National Centre for Computing Education
In his March 2019 blog post, Andreas Schleicher, Director of Education at the OECD, asks “Should schools teach coding?”, somewhat misreported in the press as “Teaching children coding is a waste of time, OECD chief says”. But it’s a good question.
Let’s start at the beginning. Technology moves fast. To equip our young people to flourish in a world of change, we therefore strive to give them a foundational understanding of the world that surrounds them, and an intellectual toolbox that equips them to deal with successive waves of technology. For that reason, the new computing curriculum in England, introduced in September 2014, establishes computer science (not just coding, and with computational thinking at its core) as a foundational subject that all children learn, alongside maths and natural science, from primary school onwards. The previous Information and Communications Technology (ICT) curriculum was focused on, well, technology. The new curriculum is focused on ideas and principles. As the famous aphorism puts it “computer science is no more about computers than astronomy is about telescopes”.
But if computer science is not about computers, what is it about? It is the study of information, computation, and communication. Take information, for example: suppose I show you a picture of the French national flag, and one of the Mona Lisa, and ask “which picture contains more information?” What does that even mean? A way to make the question more precise might be “Suppose I dictated instructions to you over the phone; which picture would take longer for you to reproduce?” Clearly the Mona Lisa has more information in this sense: it would be a slow and painstaking job for me to dictate instructions to reproduce it at your end, even rather approximately. So we have begun to speak of information as a measurable quantity; we start to think about how tightly we could compress data before transmitting it; and how we could detect, and perhaps correct, errors made during transmission. All this is called information theory; it is part of computer science; it has a substantial body of theory; and it has immediate practical consequences.
What then, is the role of coding or programming (the terms are roughly equivalent) in computer science? Coding is not the message of the new computing curriculum: it is its medium. Coding is the labwork of computer science: it motivates, illuminates, and brings to life the dry bones of theory. Without programming, computer science would be a dry, theoretical husk of a subject. Imagine a music lesson where the students only studied the rules of counterpoint or the structure of sonata form, but never brought them to life by performing or composing such music!
But that’s not all: programming is more than mere medium. As Fred Brooks put it “The scientist builds in order to study, but the engineer studies in order to build”. Most of the body of knowledge is organised around the challenge of building ever more ambitious edifices of software, and have them actually work and be useful. Programming is the very stuff of computer science.
Coding is phenomenally creative. The same Fred Brooks wrote “The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures.” When a child does a science experiment, she is seeing physical principles at work, coming to life in front of her eyes. But if she does the experiment right, we know what will happen. In contrast, when she writes a program, no one knows what will happen. The programmer brings into the world a new creation, formed from an infinitely malleable substance, which does something new, conjured from the mind of its creator. We are not limited by the strength of wood, or the budget of the school workshop: in programming we are limited only by our own (in) ability to manage the complexity of our creation.
Coding offers immediate, tangible feedback. No need to wait for the teacher to mark your English essay; in computing, the program runs, or not, and remorselessly exposes the logical errors in your thinking. When hunting a bug in a malfunctioning program, we form a hypothesis about what is wrong; we formulate tests that will confirm or refute that hypothesis; in the light of the results of those tests we refine the hypothesis, and so on – it is the scientific method in action. Even for students who will never explicitly “program” again, programming teaches understanding and reasoning skills that are needed by everyone: business innovators (identifying the need/potential), scientists (working with data, developing computational models of scientific processes), of those procuring software (eg for the NHS, to know what is possible, what they should be looking for, what is good and what bad) or end users (because one must always have a notional machine model of what a piece of software is doing).
All that – but in addition, of course, programming is a tremendously useful and marketable skill. In every corner of business, and every part of our daily lives, there are programs, and they all need to be written, modified, fixed, and stitched together. There is tremendous demand for skilled programmers, who command high salaries as a result.
And yet, and yet. There are two risks here. First, the risk that we confuse the medium with the message. I fear a future prime minister giving a speech saying “The new computing curriculum has been a great success: every child leaves school fluent in Python”. What a disaster that would be! The computing curriculum is focused on ideas and principles, not on a particular technology like Python. Yes, some of those ideas (sequence, iteration, choice, abstraction) are directly embodied and brought to life in Python, but Python is just one embodiment among many, not the thing itself. Once pupils have learnt to code in one language they should be able to quickly teach themselves others built on the same concepts, and also recognise those same concepts appearing in the wider world that surrounds them.
The second risk is that we may forget that the school computing curriculum is for the many not the few. I certainly hope that the education our young people receive will inspire some of them to be the software developers of the future. But many more will become lawyers and plumbers, hairdressers and doctors. They all learn the elementary principles of natural science, and similarly should learn the elementary principles of computer science. And, just as mathematics appears in primary schools mainly in the guise of arithmetic, so computer science will appear mainly in the form of simple programming. Just as no one confuses arithmetic with the manifold glories of mathematics, so we should not confuse programming with computer science.
Returning to Schleicher’s blog post, he says “The risk is that we will again be teaching students today’s techniques to solve tomorrow’s problems; by the time today’s students graduate, these techniques might already be obsolete. We should instead focus on the computational thinking that underpins these techniques, and that students can use to shape the technologies of tomorrow. ” Fair enough - and indeed computational thinking is already explicitly at the core of the English national curriculum from start to finish. But teaching programming is emphatically not “teaching today’s techniques to solve tomorrow’s problems”. Programming is computational thinking incarnate, brought to life, made tangible, executable, and useful. It provides a powerful way to practice and so develop those computational thinking skills, and understand them deeply. People occasionally say “in the future computers will program themselves”, but I believe they are mistaken – we will simply increase the ambition of the programs we write.
So yes, to answer the question, we should teach our children to code. But we should do so not as an end in itself, but rather as a powerful and effective means to motivate, illuminate, and exemplify the underlying principles of computer science. There is no more intellectually exciting, creative, or practically useful subject. I want to convey to our young people a visceral sense of that richness and creative possibility, and by far the best way to do so is share with them the joy and beauty of programming.
Thursday, 16 May 2019
Tuesday, 9 April 2019
Tuesday, 6 November 2018
Monday, 10 September 2018
Thursday, 12 July 2018
Child safety on Fortnite: parent factsheet
Fortnite is an online video game where players compete to be the last person standing in a post-apocalyptic world. The most popular version is Fortnite: Battle Royale, which sees up to 100 players pitted against each other to stay alive on an island. Players can build and demolish structures, and collect weapons, supplies and armour to help them along the way.
Players shoot each other using a range of lethal weapons, but the brightly-coloured, cartoon-style graphics and lack of bloodshed mean it doesn’t feel too gory or graphic.
To play, the age recommendation is 12 and above due to ‘mild violence’, although you don’t have to provide your age when creating an account, so younger children can still log on easily.
Fortnite: Battle Royale is free to download on PC/Mac, Xbox, Playstation, Nintendo Switch and iOS devices (Apple phones and tablets). It’s coming to Android soon.
It has about 45 million monthly users worldwide including the England football team, who reportedly played it in their World Cup downtime.
What are the concerns?
You may have seen news reports or heard concerns raised about the:
· Communication between players: a chat function allows players to talk to each other either over a headset and microphone, or using messaging. Children could use it to speak to strangers, or it could put them at risk of cyberbullying
· In-app purchases: players can build up large bills on their parents’ accounts by buying cosmetic items like outfits for your character and better-looking weapons (otherwise known as ‘skins’)
· Addictive nature of the game: anecdotal stories tell of children staying up all night to play, or falling asleep in lessons after playing for too long. Some commentators attribute this to the communal feel of the game – you can play with your friends – and the game is different every time you play, keeping it fresh
What safety options are available to parents?
Use the parental controls on the gaming device
Most devices allow you to set time limits on game play, set age limits for content, and restrict in-app purchases.
Visit the website ‘ask about games’ for links to detailed instructions on the device your child uses – the site covers Playstation 3, Playstation 4, Xbox 360, Xbox One, Apple and Android phones, and Nintendo Switch.
www.askaboutgames.com/advice/parental-controls
The battles in Fortnite last around 20 minutes. When trying to limit your child’s screen time, make the most of this natural stopping point. Set a limit in terms of matches rather than hours and minutes, or set time limits in 20 minute increments.
Turn off the voice chat feature
Speak to your child to make sure they know this feature exists, and encourage them to use the options below if they encounter someone who is offensive or inappropriate.
You can disable the voice chat function in the game if you:
· Open the settings menu (the 3 lines on the right-hand-side of the screen), then choose the ‘cog’ icon
· Select the ‘audio’ tab
· You should be able to turn off ‘voice chat’ by tapping the arrows next to it
You can also ‘mute’ individual players in the game by:
· Pausing the game
· Hovering over the player you wish to mute
· Selecting the mute button (a loudspeaker icon)
Make sure your child knows how to report inappropriate behaviour
You or your child can report players who make them uncomfortable using the in-game feedback tool (located in the main menu).
You can also use the ‘support’ section of the Epic Games site (the makers of Fortnite). You’re asked to select the platform you play the game on, the game mode you’re playing, and then you can select ‘report player’. You can provide more detail such as the player’s name, and attach a screenshot.
Support, Epic Games
https://fortnitehelp.epicgames.com/customer/portal/emails/new?b_id=9729&q=email+us
https://fortnitehelp.epicgames.com/customer/portal/emails/new?b_id=9729&q=email+us
What else can I do?
Further tips
· Download and play the game to help you understand it
· Talk to your child about what they’re doing online, and make sure they know they can talk to you about anything that has upset them
· Check your bank statements and gaming system account balance regularly to look for in-app purchases you’re not happy with, and to make sure your child isn’t getting around any passwords you’ve set up
More sources of support
· Non-profit organisation Internet Matters has put together 5 top tips to manage children’s screen time.
https://www.internetmatters.org/hub/guidance/5-top-tips-to-manage-childrens-screentime/
· The National Society for the Prevention of Cruelty to Children (NSPCC) has a range of resources for parents on internet safety.
https://www.nspcc.org.uk/preventing-abuse/keeping-children-safe/online-safety/
https://www.nspcc.org.uk/preventing-abuse/keeping-children-safe/online-safety/
· The NSPCC has also teamed up with O2 to offer advice to parents. You can call their free helpline on 0808 800 5002, or make an appointment with an O2 Guru in an O2 store.
https://guru.secure.force.com/O2DeskStoreLocator
https://guru.secure.force.com/O2DeskStoreLocator
Sources for this factsheet
‘Fortnite chat raises stranger danger fears from NSPCC’, BBC News, 3 May 2018
https://www.bbc.co.uk/news/technology-43988210
https://www.bbc.co.uk/news/technology-43988210
Fortnite: all you need to know, Net aware, from the NSPCC and O2
https://www.net-aware.org.uk/news/fortnite-all-you-need-know/
https://www.net-aware.org.uk/news/fortnite-all-you-need-know/
Subscribe to:
Posts (Atom)