Problem solving and algorithm design Flashcards
What is computational thinking?
Computational thinking is a thought process involved in formulating a problem and expressing its solution in such a way that computers can effectively carry it out.
Why is developing software a complex process?
Because software development involves innovative thinking processes and complex testing procedures.
What are the components of computational thinking?
Abstraction
Decomposition
Algorithm design
What are the steps involved in problem-solving?
Understand the problem
Construct a plan to solve the problem
Apply the plan
Check for errors and look for improvements in the current plan
What steps are involved in understanding a problem?
We need all data to understand the problem. Then, we must check whether the problem is solvable. If it is solvable, a complex problem can be broken down into simpler modules.
What are the characteristics of a proper solution?
Error-free, efficient and reusable.
What is abstraction?
A component of computational thinking where certain non-essential characteristics of objects or systems are removed so that it is reduced to a simple set of characteristics.
List some examples of abstraction.
Variables and functions in programming. Layering in computer networks.
What is decomposition?
A component of computational thinking where a large problem is broken down into smaller chunks that can then be solved using computing.
What is pattern recognition?
A concept where similar problems are solved by reusing solutions.
What are the advantages of using pattern recognition?
Saves effort and time.
What is an algorithm?
A problem is broken into a series of logical steps called an algorithm.
In what forms, is an algorithm represented?
Flowchart and pseudocode
What is a flowchart?
A method of representing algorithms in pictorial form, depicting the steps and order to be followed to perform a task.
What is pseudocode?
A method of representing an algorithm using simple words and mathematical operators.