PRS161 - 5 - Computational Thinking
PRS161 - 5 - Computational Thinking
COMPUTATIONAL
BELGIUM CAMPUS – PROBLEM SOLVING
THINKING
Computational thinking is all about trying to think like a
computer. In this section we will investigate the types of thinking
required to be logical which will allow for solutions to become
structured and well-defined.
Revision
1. What is bias? Name 2 examples.
Defining
Computation
al Thinking
As with critical thinking, there are several
definitions for computational thinking. One
of the most popular definitions are from
Furber (2012):
COMPUTATIONA
L THINKING
What parts of life would benefit from a more
computer-based approach? What aspects of
life would be easier if it was digitized?
COMPUTATIONA
L THINKING
How would you go about solving these problems?
You have a collection of all the words in a dictionary. A person trying to find a word
is very orderly and is always going to start searching word by word from the start of
each letter. How could you reorganize a dictionary to make it easier to find a word if
someone was methodically going word by word and speed was not an issue?
© BELGIUM CAMPUS 2022
© BELGIUM CAMPUS 2022
6
COMPUTATI
ONAL
THINKING
How would you go about solving these problems?
COMPUTATI
ONAL
THINKING
How would you go about solving these problems?
You have ten coins. Nine of them weigh the same amount.
One is lighter. You have a balance scale that you can use to
weigh the coins. How would you find the lighter coin by
using the scale the fewest number of times?
ALGORITHMI
E VA L U AT I O N ABSTRACTION MODELLING
C THINKING
When we evaluate, we When we take anything from Taking an object, person, Algorithmic thinking builds
consider the effectiveness real life and create a simpler place, or concept and on logic and focuses on a
and efficiency of a solution. version in another format, creating a version that process or sequence of
we are using abstraction. ignores certain details, is instructions/steps to achieve
One format of abstraction is modelling. a certain goal.
known as modelling.
Logical
thinking
We’ve covered logical thinking in detail. It
revolves around using facts and coming
to conclusions through reasoning.
Finding a
pattern
Decompositi
on
We’ve used several types of analysis to find
the various components. The concept is
much broader than it seems, however.
Evaluation
Is it effective? Does it actually solve the problem?
Abstractio
n
When we look at real life situations, it is
often complicated by many factors that are
often irrelevant to the actual problem.
When we create a version that removes or
hides these details, it is known as
abstraction. Do I need to know how a
combustion engine works to drive a car?
Modelling
When we perform abstraction on an object, process, person,
place, or concept, we are modelling it. Abstraction can be seen
as the superordinate method with modelling being a
hyponym. Modelling is exceptionally useful for problem-
solving since we can create versions on paper or digitally.
Algorithmi
c thinking
With algorithms we are looking at a stepwise
approach; a sequence of instructions. These need to
be delivered in a very specific manner to ensure
optimal efficiency and effectiveness. What would the
instructions for these be?
• Making coffee
• Replacing thermal paste on your CPU
• Passing your driver’s license
• Graduating summa cum laude
• Playing Twinkle Twinkle Little Star on a musical
instrument.
Algorithmi
c thinking
Writing instructions that are clear and
unambiguous can be challenging. There are a
few things we need to beware of:
INTUITION VS PRECISION
We must be careful to not make assumptions.
You might think something is obvious. Add
some salt. If a recipe required this, and you
were an experienced chef, you’d likely know
how much salt to add. But we need precision,
accuracy, and detail. How much salt is
“some” salt?
Algorithmi
c thinking
Writing instructions that are clear and
unambiguous can be challenging. There are a
few things we need to beware of:
AMBIGUITY VS DEFINITENESS
Each step in your algorithm must be precisely
defined. Each step should have one and only
one meaning. If I said, add some spices, that
would not be clearly defined since there are
many kinds of spice.
Algorithmi
c thinking
Writing instructions that are clear and
unambiguous can be challenging. There are a few
things we need to beware of:
RANDOM VS SEQUENTIAL
Each step needs to follow in a certain order. First
you add the flour and then you add the eggs. In
some cases, the order will matter and in other
cases it won’t. For example, mixing dry
ingredients vs putting something in the oven. The
dry ingredients can often be mixed in any order
but putting it in the oven needs to happen at a
certain stage of the baking process.
Algorithmi
c thinking
Writing instructions that are clear and unambiguous
can be challenging. There are a few things we need
to beware of:
CONDITIONS
At some points your algorithm could fork depending
on a certain decision or condition. For example, let’s
say I am making coffee. I would follow the standard
steps but before I add milk, I would need to check
something first. If the coffee is a cappuccino, I need
to steam and froth the milk. If it is an americano, I
should not add any milk.
Algorithmi
c thinking
Writing instructions that are clear and
unambiguous can be challenging. There are a few
things we need to beware of:
ITERATION
If you were making the same cup of coffee for 4
people, you would be repeating an entire set of
instructions. Iteration is repetition. When you are
repeating the same subset of instructions. If you
are adding sugar, that is also iteration (if you take
2 or more sugars).
Algorithmi
c thinking
How does Instagram decide what to show on your
explore page? How does Twitter know which ads
to show you? These are all algorithms. Let’s
practice algorithms.
REFERENCES
Beecher, K., (2017). Computational Thinking : A Beginner’s Guide to Problem-solving and Programming. Swindon, UK: BCS, The
Chartered Institute for IT. Available at: https://search.ebscohost.com/login.aspx?
direct=true&db=nlebk&AN=1530763&site=ehost-live.
Furber, S. (2012). Shut Down or Restart? The Way Forward for Computing in UK Schools. London, UK: The Royal Society.
Guenaga, M., Eguíluz, A., Garaizar, P., & Gibaja, J. (2021). How do students develop computational thinking? Assessing early
programmers in a maze-based online game. Computer Science Education, 31(2), 259–289.
https://doi.org/10.1080/08993408.2021.1903248
Kale, U., & Yuan, J. (2021). Still a New Kid on the Block? Computational Thinking as Problem Solving in Code.org. Journal of
Educational Computing Research, 59(4), 620–644. https://doi.org/10.1177/0735633120972050
Metcalf, S. J. et al. (2021). Assessing computational thinking through the lenses of functionality and computational
fluency. Computer Science Education, 31(2), pp. 199–223. doi: 10.1080/08993408.2020.1866932.
Unless stated otherwise, all images sourced from www.unsplash.com and www.pexels.com.