Comp Thinking PDF
Comp Thinking PDF
6
Computational thinking
computers. The thinking processes and approaches curriculum, but as pupils learn to use these in their
that help with computing are really useful in many computing work, you should find that they become
other domains too. better at applying them to other work too.
For example, the way a team of software engineers You will already use computational thinking in many
go about creating a new computer game, video editor different ways across your school.
or social networking platform is really not that When your pupils write stories, you encourage
different from how you and your colleagues might them to plan first: to think about the main events
work together to put on a school play, or to organise and identify the settings and the characters.
an educational visit. In art, music or design and technology, you will
ask pupils to think about what they are going to
In each case: create and how they will work through the steps
you take a complex problem and break it down necessary for this, by breaking down a complex
into smaller problems process into a number of planned phases.
its necessary to work out the steps or rules for In maths, pupils will identify the key information
getting things done in a problem before they go on to solve it.
the complexity of the task needs to be managed,
typically by focusing on the key details
the way previous projects have been Where does computational
accomplished can help.
thinking fit in the new
computing curriculum?
How is computational thinking
used in the curriculum? The national curriculum for computing puts
computational thinking right at the heart of its
Ideas like logical reasoning, step-by-step approaches ambition. It states:
(algorithms), decomposition, abstraction and
generalisation have wide applications to solving A high-quality computing education equips pupils
problems and understanding systems across (and to use computational thinking and creativity to
beyond) the school curriculum. There are many ways understand and change the world.1
to develop these in school beyond the computing
1
National Curriculum in England, Computing Programmes of Study 7
(Department for Education, 2013).
QuickStart Computing
8
Computational thinking
for themselves allows even very young children to In science, pupils should explain how they have
develop a mental model of how technology works. A arrived at their conclusions from the results of
child learns that clicking the big round button brings their experiments.
up a list of different games to play, or that tapping In history, pupils should discuss the logical
here or stroking there on the screen produces a connections between cause and effect; they
reliably predictable response. should understand how historical knowledge is
constructed from a variety of sources.
This process of using existing knowledge of a
system to make reliable predictions about its future
behaviour is one part of logical reasoning. At its Where does logical
heart, logical reasoning is about being able to explain
why something is the way it is. Its also a way to reasoning fit in the new
work out why something isnt quite as it should be.
computing curriculum?
How is logical reasoning In the computing curriculum, key stage 1 pupils are
expected to use logical reasoning to predict the
used in computing? behaviour of simple programs. This can include the
ones they themselves write, perhaps with a floor
Logic is fundamental to how computers work: deep turtle, or simple movement commands on screen
inside the computers central processing unit (CPU), in a program like Scratch, but it might also include
every operation the computer performs is reduced to predicting what happens when they play a computer
logical operations carried out using electrical signals. game, or use a painting program.
Its because everything a computer does is At key stage 2, pupils are expected to use logical
controlled by logic that we can use logic to reason reasoning to explain how some simple algorithms
about program behaviour. work and to detect and correct errors in algorithms
and programs.2
Software engineers use logical reasoning all the
time in their work. They draw on their internal
mental models of how computer hardware, the Classroom activity ideas
operating system (such as Windows 8, OS X) and
the programming language theyre using all work, Provide pupils with floor turtles and ask them to
in order to develop new code that will work as they make predictions of where the robot will end up
intend. Theyll also rely on logical reasoning when when the go button is pressed. Then ask them
testing new software and when searching for and to explain why they think that. Being able to give
fixing the bugs (mistakes) in their thinking (known a reason for their thinking is what using logical
as debugging see page 17) or their coding when reasoning is all about.
these tests fail. In their own coding, logical reasoning is key to
debugging (finding and fixing the mistakes in
their programs). Ask the pupils to look at one
How is logical reasoning used anothers Scratch or Kodu programs and spot
bugs. Encourage them to test the programs to
across the curriculum? see if they can isolate exactly which bit of code
is causing a problem. If pupils programs fail to
There are many ways that children will already use work, get them to explain their code to a friend
logical reasoning in their computing lessons and or even an inanimate object (e.g. a rubber duck).
across the wider curriculum. Give pupils a program of your own or from the
In English, pupils might explain what they think Scratch or Kodu community sites and ask them to
a character will do next in a novel, or explain the work backwards from the code to work out what
characters actions in the story so far. it will do.
Ask pupils to think carefully about some school
rules, for example those in the schools computer
2
National Curriculum in England, Computing Programmes of Study
(Department for Education, 2013). 9
QuickStart Computing
Acceptable Use Policy. Can they use logical turn right. You can think of this as an algorithm
reasoning to explain why the rules are as they are? as a sequence of instructions to get you to your
There are many games, both computer-based chosen destination. There are plenty of algorithms
and more traditional, that draw directly on the (i.e. routes) that will accomplish the same goal; in
ability to make logical predictions. Organise for this case, there are even algorithms (such as in your
the pupils to play noughts and crosses using satnav) for working out the shortest or fastest
pencil and paper. As they are playing, ask them route.
to predict their opponents next move. Let them
play computer games such as Minesweeper,
Angry Birds or SimCity, as appropriate. Ask them How are algorithms used
to pause at certain points and tell you what they
think will happen when they move next. Consider in the real world?
starting a chess club if your school doesnt
already have one. Search engines such as Bing or Google use
algorithms to put a set of search results into order,
so that more often than not, the result were looking
Further resources for is at the top of the front page.
Barefoot Computing, Logic: Predicting and Your Facebook news feed is derived from your
Analysing, available at: http://barefootcas.org. friends status updates and other activity, but it only
uk/barefoot-primary-computing-resources/ shows that activity which the algorithm (EdgeRank)
concepts/logic/ (free, registration required). thinks youll be most interested in seeing. The
Computer Science for Fun, The Magic of recommendations you get from Amazon, Netflix and
Computer Science, available at: www.cs4fn.org/ eBay are algorithmically generated, based in part on
magic/. what other people are interested in.
Computer Science Unplugged, Databases
Unplugged, available at: http://csunplugged.org/ Given the extent to which so much of their lives is
databases. affected by algorithms, its worth pupils having some
McOwan, P. and Curzon, P. (Queen Mary University grasp of what an algorithm is.
of London), with support from EPSRC and Google,
Computer Science Activities With a Sense of Fun,
available at: www.cs4fn.org/teachers/activities/ How are algorithms used
braininabag/braininabag.pdf.
The P4C Co-operative, a co-operative providing across the curriculum?
resources and advice on philosophy for children,
available at: www.p4c.com/. Helping pupils to get an idea of what an algorithm
PhiloComp.net, website highlighting the strong is neednt be confined to computing lessons. You
links between philosophy and computing, available and your pupils will already use algorithms in many
at www.philocomp.net/. different ways across the school.
10
Computational thinking
An example of this might be: go through the planning stage of writing a program,
repeat ten times: it is good practice for pupils to write down the
ask a question algorithm for a program, perhaps as rough jottings,
wait for a response a storyboard, pseudocode (a written description
provide feedback on whether the response of how a program will operate) or even as a flow
was right or wrong. chart (see below). This makes it far easier for them
to get feedback from you or their peers on their
algorithms before implementing these as code on
Where do algorithms fit their computers.
Pupil
responds
Is the
No Say thats
answer
correct? wrong
Yes
11
QuickStart Computing
chosen a number between 1 and 100 and they are Cormen, T., Algorithms Unlocked (MIT Press,
to guess what it is. Tell them that they can ask 2013).
you questions about the number but that you can Peyton Jones, S. and Goldberg, A. (Microsoft
only answer yes or no, and that they can only Research), Getting from A to B: Fast Route-
ask you one question per pupil. Finding Using Slow Computers, available at: www.
For the first go, ask the pupils to guess ukuug.org/events/agm2010/ShortestPath.pdf.
numbers randomly. Slavin, K., How Algorithms Shape Our World,
Next, using a new number, ask the pupils to available at: www.ted.com/talks/kevin_slavin_
guess the number sequentially from one, e.g. Is how_algorithms_shape_our_world?language=en.
the number one? and so on. Explain that this Steiner, C., Automate This: How Algorithms Came
is called a linear search. Allow them to have as to Rule Our World (Portfolio Penguin, 2013).
many goes as needed to guess the number.
Finally, using a new number again, explain how
to use a binary search. Explain to the learners
that they already know the number is less than
100, so suggest they ask, Is it less that 50?
Decomposition
then, Is it less than 25? or Is it less than 75?
depending on the answer. Tell the pupils to How do I solve a problem by
keep halving the section they are searching in
until the number is found. breaking it into smaller parts?
Afterwards, talk about which approach found
the number quicker. When they are familiar The process of breaking down a problem into smaller
with using a binary search method, replay the manageable parts is known as decomposition.
game using a number between 1 and 1000. Decomposition helps us solve complex problems and
Organise the pupils to sort a set of unknown manage large projects.
weights into weight order using a simple pan
balance, thinking carefully about the algorithm This approach has many advantages. It makes the
theyre following to do this, and then to think of a process a manageable and achievable one large
quicker way to accomplish the same activity. See problems are daunting, but a set of smaller, related
http://csunplugged.org/sorting-algorithms for a tasks are much easier to take on. It also means that
demonstration of this. the task can be tackled by a team working together,
Explain to the pupils that not all algorithms are each bringing their own insights, experience and
made of sequences of instructions: some are rule skills to the task.
based. Introduce rule-based algorithms by writing a
number sequence on the board, e.g. 3, 6, 9, 12 or
2, 4, 8, 16. Ask the pupils to work out the rule for the How is decomposition
sequence (adding 3, or doubling the number) and to
predict the next number. Explain that the rule for the used in the real world?
sequence is the algorithm and the process by which
they worked it out was logical reasoning. Decomposing problems into their smaller parts is
not unique to computing: its pretty standard in
engineering, design and project management.
Further resources
Software development is a complex process, and
Bagge, P., Flow Charts in Primary Computing so being able to break down a large project into
Science, available at: http://philbagge.blogspot. its component parts is essential think of all the
co.uk/2014/04/flow-charts-in-primary- different elements that need to be combined to
computing-science.html. produce a program, like PowerPoint.
Barefoot Computing, KS2 Logical Number
Sequences Activity, available at: http:// The same is true of computer hardware: a
barefootcas.org.uk/programme-of-study/use- smartphone or a laptop computer is itself
logical-reasoning-explain-simple-algorithms- composed of many components, often produced
work/ks2-logical-number-sequences-activity/ independently by specialist manufacturers and
(free, but registration required). assembled to make the finished product, each
12
Computational thinking
3
National Curriculum in England, Computing Programmes of Study
(Department for Education, 2013).
13
QuickStart Computing
14 4
Computational thinking and thinking about computing
(The Royal Society, 2008).
Computational thinking
From an early age, theyll become familiar M. C. Escher website, available at:
with repeated phrases in nursery rhymes and www.mcescher.com.
stories; later on theyll notice repeated narrative
structures in traditional tales or other genres.
In music, children will learn to recognise repeating
melodies or bass lines in many musical forms.
How does software
In maths, pupils typically undertake investigations
in which they spot patterns and deduce get written?
generalised results.
In English, pupils might notice common rules for As well as the above processes, there are also a
spellings, and their exceptions. number of approaches that characterise computational
thinking. If pupils are to start thinking computationally,
then its worth helping them to develop these
Classroom activity ideas approaches to their work, so they can be more effective
in putting their thoughts into action.
In computing, encourage pupils to always look
for simpler or quicker ways to solve a problem or Tinkering
achieve a result. Ask pupils to explore geometric There is often a willingness to experiment and
patterns using turtle graphics commands in explore in computer scientists work. Some elements
languages like Scratch, Logo or TouchDevelop of learning a new programming language or exploring
to create crystal flowers (see pages 2627). a new system look quite similar to the sort of
Emphasise how the use of repeating blocks purposeful play thats seen as such an effective
of code is much more efficient than writing approach to learning in the best nursery and
each command separately, and allow pupils to reception classrooms.
experiment with how changing one or two of
the numbers used in their program can produce Open source software makes it easy to take
different shapes. someone elses code, look at how its been made
Organise for the pupils to use graphics software and then adapt it to your own particular project
to create tessellating patterns to cover the or purpose. Platforms such as Scratch and
screen. As they do this, ask them to find quicker TouchDevelop positively encourage users to look at
ways of completing the pattern, typically by other programmers work and use this as a basis for
copying and pasting groups of individual shapes. their own creative coding.
Help the pupils to create rhythmic and effective
music compositions using simple sequencing In class, encourage pupils to play with a new piece of
software in which patterns of beats are repeated. software, sharing what they discover about it with
Ask the pupils to experiment with number one another, rather than you explaining exactly how
patterns and sequences using Scratch or other it works. Also, look for ways in which pupils can use
programming languages. Can they work out a others code, from you, their peers, or online, as a
general program which they could use to generate starting point for their own programming projects.
any linear number sequence?
Creating
Programming is a creative process. Creative work
Further resources involves both originality and making something of
value: typically something that is useful or at least
Barefoot Computing, Patterns, available at: fit for the purpose intended.
http://barefootcas.org.uk/barefoot-primary-
computing-resources/concepts/patterns/ Encourage pupils to approach tasks with a creative
(free, but registration required). spirit, and look for programming tasks that allow
Isle of Tune app, available at: http://isleoftune.com. some scope for creative expression rather than
Laurillard, D., Teaching as a Design Science: Building merely arriving at the right answer.
Pedagogical Patterns for Learning and Technology
(Routledge, 2012). Encourage pupils to reflect on the quality of the
Pattern in Islamic art, available at: work they produce, critiquing their own and others
www.patterninislamicart.com. projects. The process of always looking for ways to
16
Computational thinking
improve on a software project is becoming common Many see pair programming as a particularly
practice in software development. Look for projects effective development method, with two
in which artistic creativity is emphasised, such as programmers sharing a screen and a keyboard,
working with digital music, images, animation, virtual working together to write software. Typically one
environments or even 3D printing. programmer acts as the driver, dealing with the
detail of the programming, whilst the other takes
Debugging on a navigator role, looking at the bigger picture.
Because of its complexity, the code programmers The two programmers regularly swap roles, so both
write often doesnt work as its intended. have a grasp of both detail and big picture. Working
in a larger group develops a number of additional
Getting pupils to take responsibility for thinking skills, with each pupil contributing some of their own
through their algorithms and code, to identify and particular talents to a shared project. However, its
fix errors is an important part of learning to think, important to remember that all pupils should develop
and work, like a programmer. Its also something to their understanding of each part of the process,
encourage across the curriculum: get pupils to check so some sharing of roles or peer-tutoring ought
through their working in maths, or to proofread their normally to be incorporated into such activities.
stories in English. Ask pupils to debug one anothers
code (or indeed proofread one anothers work),
looking for mistakes and suggesting improvements. Further resources
Theres evidence that learning from mistakes is a
particularly effective approach, and the process of Barefoot Computing, Computational Thinking
pupils debugging their own or others code is one way Approaches, available at: http://barefootcas.
to do this. Keep an eye on the bugs that your pupils do org.uk/barefoot-primary-computing-resources/
encounter, as these can sometimes reveal particular computational-thinking-approaches/ (free, but
misconceptions that you may need to address (see registration required).
pages 2829). Briggs, J., Programming with Scratch Software:
The Benefits for Year Six Learners (Bath Spa
Persevering MA dissertation, 2013), available at: https://
Computer programming is hard. This is part of slp.somerset.gov.uk/cypd/elim/somersetict/
its appeal writing elegant and effective code Computing_Curriculum_Primary/Planning/MA_
is an intellectual challenge requiring not only JBriggs_Oct2013.pdf.
an understanding of the ideas of the algorithms DevArt: Art Made with Code, available at: https://
being coded and the programming language youre devart.withgoogle.com/.
working in, but also a willingness to persevere with Dweck, C., Mindset: How You Can Fulfil Your
something thats often quite difficult and sometimes Potential (Robinson, 2012).
very frustrating. Carol Dwecks work on growth Education Endowment Foundation toolkit,
mind-sets suggests that hard work and a willingness available at: http://
to persevere in the face of difficulties can be key educationendowmentfoundation.org.uk/toolkit/.
factors in educational outcomes. Encourage pupils Papert, S. and Harel, I., Situating
to look for strategies they can use when they do Constructionism (Ablex Publishing Corporation,
encounter difficulties with their programming work, 1991), available at: www.papert.org/articles/
such as working out exactly what the problem is, SituatingConstructionism.html.
searching for the solution on Bing or Google (with
the safe search mode locked), KidRex or Swiggle, or
asking a friend for help.
Collaborating
Software is developed by teams of programmers and
others working together on a shared project. Look
for ways to provide pupils with this experience in
computing lessons too. Collaborative group work has
long had a place in primary education, and computing
should be no different.
17