Computer Science
Chapter 9 - Algorithm design and
problem-solving
9.1 Computational Thinking Skills
ICT Coordinator - M. Galal 1
Boys Section
Learning Objectives
9.1 Computational Thinking Skills
• Show an understanding of abstraction
-Need for and benefits of using abstraction
-Describe the purpose of abstraction
-Produce an abstract model of a system by only including
essential details.
• Describe and use decomposition
Break down problems into sub-problems leading to the
concept of a program module (procedure / function).
ICT Coordinator - M. Galal
Boys Section
2
Learning Objectives
9.2 Algorithms
Show understanding that an algorithm is a solution to a
problem expressed as a sequence of defined steps.
ICT Coordinator - M. Galal 3
Boys Section
9.1 Computational Thinking Skills
Watch this video and find out about Computational Thinking: What Is It? How Is It Used??
https://www.youtube.com/watch?v=qbnTZCj0ug
ICT Coordinator - M. Galal 4
Boys Section
• 9.1 Computational Thinking Skills
• Computational thinking is the step that comes before programming.
It’s the process of breaking down a problem into simple enough steps
that even a computer would understand.
• For example consider a simple activity like brushing your teeth. At first
it sounds like a simple enough task, but in fact, brushing your teeth
involves many simple steps. First, you’ll need a toothbrush and
toothpaste. You’ll need a sink with cold water. You’ll need to put the
toothpaste on the brush. Don’t forget to turn on the water and run
your brush underneath. As you see, such a simple activity actually
involves many steps, if you miss one step or put one out of order you
might end up with a huge mess!
ICT Coordinator - M. Galal 5
Boys Section
There are four key skills in computational
thinking:
• Abstraction
• Decomposition
• Pattern Recognition
• Algorithm Design
ICT Coordinator - M. Galal 6
Boys Section
ICT Coordinator - M. Galal 7
Boys Section
9.1 Computational Thinking
Skills
Abstraction – the process of extracting information that is essential, while ignoring what
is not relevant, for the provision of a solution.
Abstraction involves extracting information that is essential while ignoring
what is not relevant for the provision of a solution, only including what is
necessary to solve that problem.
Watch this video and find out what is Abstraction?
https://www.youtube.com/watch?v=jV-7Hy-PF2Q
ICT Coordinator - M. Galal 8
Boys Section
9.1 Computational Thinking Skills
9.1.1 Decomposition :The process of breaking a complex problem into smaller parts.
Before computers can solve a problem, the problem and the ways in which it can be
resolved must be understood.
Decomposition helps by breaking down complex problems into more manageable parts.
Watch this video and find out about decomposition
https://www.youtube.com/watch?v=rxsYpP2-omg
ICT Coordinator - M. Galal 9
Boys Section
9.1 Computational Thinking Skills
9.1.1 Decomposition
Watch this video and find out about decomposition
https://www.youtube.com/watch?v=4Ub85T9ybBs
ICT Coordinator - M. Galal 10
Boys Section
9.1 Computational Thinking Skills
9.1.2 Pattern
recognition is used to identify those parts that are
similar and could use the same solution.
Watch this video and find out about Computational thinking pattern recognition
https://www.youtube.com/watch?v=SC30MuyK1-8
ICT Coordinator - M. Galal 11
Boys Section
When writing a computer program, each final part is defined as
a separate program module that can be written and tested as a
separate procedure or function, as shown in Figure
ICT Coordinator - M. Galal 12
Boys Section
Writing algorithms that provide solutions to problems
There are several methods of writing algorithms before attempting to program a solution.
Here are three frequently used methods.
1-Structured English is a method of showing the logical steps in an algorithm, using an agreed subset of
straightforward English words for commands and mathematical operations to represent the solution. These
steps can be numbered.
ICT Coordinator - M. Galal 13
Boys Section
2- Pseudocode is a method of showing the detailed logical steps in an algorithm, using keywords,
identifiers with meaningful names and mathematical operators to represent a solution. Pseudocode
does not need to follow the syntax of a specific programming language, but it should provide
sufficient detail to allow a program to be written in a high-level language
ICT Coordinator - M. Galal 14
Boys Section
3- A flowchart shows diagrammatically, using a set of symbols linked together with flow lines, the
steps required for a task and the order in which they are to be performed. These steps, together with
the order, are called an algorithm. Flowcharts are an effective way to show the structure of an
algorithm.
ICT Coordinator - M. Galal 15
Boys Section
ICT Coordinator - M. Galal 16
Boys Section
ICT Coordinator - M. Galal 17
Boys Section
ICT Coordinator - M. Galal 18
Boys Section
ICT Coordinator - M. Galal 19
Boys Section
ICT Coordinator - M. Galal 20
Boys Section
ICT Coordinator - M. Galal 21
Boys Section
ICT Coordinator - M. Galal 22
Boys Section
ICT Coordinator - M. Galal 23
Boys Section
ICT Coordinator - M. Galal 24
Boys Section
ICT Coordinator - M. Galal 25
Boys Section
ICT Coordinator - M. Galal 26
Boys Section
ICT Coordinator - M. Galal 27
Boys Section
ICT Coordinator - M. Galal 28
Boys Section
ICT Coordinator - M. Galal 29
Boys Section