0% found this document useful (0 votes)
91 views

Emaz Kareem (10-F) - Problem Solving and Algorithm Design

The document discusses various aspects of computational thinking and software development. It defines the key components of computational thinking as abstraction, decomposition, and algorithm design. It also discusses problem solving steps, abstraction with an example, how decomposition and pattern recognition help in software development, and defines an algorithm and how it is represented.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
91 views

Emaz Kareem (10-F) - Problem Solving and Algorithm Design

The document discusses various aspects of computational thinking and software development. It defines the key components of computational thinking as abstraction, decomposition, and algorithm design. It also discusses problem solving steps, abstraction with an example, how decomposition and pattern recognition help in software development, and defines an algorithm and how it is represented.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

1. What are the components of computational thinking?

Ans)​The components of computational thinking are:

1) ​Abstraction​, (2) ​Decomposition ​and (3) ​Algorithm design​.


2. What are the various steps involved in problem-solving?
Ans) The first step of problem-solving is to ​understand the problem​. To do so first all
the relevant data must be gathered to understand the problems and the circumstances
present. If it's solvable, then the complex problem can be divided into smaller modules
and further solved separately for better efficiency. The next step is to ​Construct a plan
to solve the problem​. This is done by checking whether this type of problem has been
solved before. If that is so, then the plan is adapted according to the developer’s needs
and suitability. Some complications can even be resolved using mathematics. The third
step is to ​implement and apply the plan​ while making sure that at each stage what is
being done is correct. Lastly the developer has to ​check for errors and look for
improvements in the current plan​. The solution must be checked whether it's correct. It
has to be productive and reusable for the future.
3. What is abstraction? Explain with an example.
Ans) Abstraction is similar to generalization rather than something concrete. In software
engineering Abstraction is the simplified version of something technical like an object in
a program. The purpose behind abstracting data is to reduce the complexity by
removing unnecessary information or temporal and physical details. This allows the
user to focus on details which are more important while developing a program and
running numerous computer operations etc. To explain this concept better let's take a
common daily life example. Which is making coffee using a coffee machine. All you have
to do is provide the water, the coffee beans, switch on the switch and choose the kind
of coffee you need. What we do not need to know is how the machine is working
internally to brew the coffee, neither do we need to know the heating temperature or
the amount of ground coffee beans. Another big example is that the driver doesn't have
to know the internal working/ inner mechanism of the accelerator or the brakes to be
able to drive the car.
4. How is decomposition helpful in software development?
Ans)Decomposition is helpful in software development when making codes. It is
beneficial to break down the code into smaller chunks as it saves a lot of time: the code
for a complex program could run to many lines of code. If a mistake was made it would
take a very long time to find the error. Another benefit of decomposition is that it
allows programmers to easily copy and reuse useful chunks of code for other programs.
Also to solve sophisticated problems in programs by decomposing it based on different
characteristics, disciplines, and functionalities results in increased computational
efficiency. This is the case as the programmer or developers gets a clearer,
well-organized and characterized picture of the overall program which allows him to
focus on separate modules with greater precision and accuracy. This ultimately helps in
error-tracking as mentioned before and allows the program/software to be modified.
5. How does pattern recognition save time and effort in software development?
Ans) Pattern recognition involves finding the similarities, patterns or shared
characteristics among small, decomposed problems that can help us solve more
complex problems more efficiently. This saves time and effort as the same solution can
be used for each similar occurrence and pattern found in problems. Also it can help
derive a better and revised solution instead of spending your effort in coming up with a
new solution which may even not turn out to be as perfect as the revised solution
mentioned previously. Lastly decomposed problems can be put to use to easily trace
similar errors in other parts of the program when a pattern is identified, it allows
programmers to prevent from taking similar actions that had led to errors previously.
6. What is an algorithm? In what forms, is it represented?
Ans) An algorithm is the set of logical steps or instructions needed by the computer to
reach a specific goal or to solve a specific problem by breaking it down. An algorithm
specifies only the tasks that are needed to be carried out in a chronological order,
starting with start and ending with end. It is represented in the form of pseudocode
which is a semi-programming language that describes the steps in an algorithm using
simple words and mathematical operators . Another form used is a diagram known as
flowchart that depicts the steps graphically using standard symbols to represent the
different types of instructions and order to be followed to perform a task. This also must
have a clear start and ending which is indicated by terminator symbols (Start and End).

You might also like