1/13
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
|---|
No study sessions yet.
Abstraction
Ignoring unnecessary information about a problem to focus on the main features of it
Why is abstraction useful?
It is used to help focus on the essential parts of the problem
Decomposition
Breaking down a complex problem into smaller subproblems
Can be used to assign tasks to multiple people working on a problem simultaneously
Can lead to easier debugging
Divide and conquer
A method of continuously decomposing a problem until each subproblem is atomic
Why is decomposition useful?
Allows concurrent tasks to be identified, hence speeding up time for project execution
Allows teams to work together more easily
Pattern recognition
Identifying any form of patterns/correlation within problems
Can be used to apply similar approaches to different problems
How can pattern recognition be used for drawing an equilateral triangle in Pseudocode?
An equilateral triangle has 3 equal sides and 3 equal external angles
So, you can use iteration to repeat one step 3 times
Generalisation
Adapting a solution to a problem to fit for several similar problems
How can you generalise drawing regular polygons in Pseudocode?
External angles can be calculated using 360/sides
Use iteration to draw the side lengths and external angles (sides) amount of times
Logical reasoning
Using facts and evidence to reach a valid conclusion
Debugging
Finding the reason why something isn’t working as expected, then fixing it
How is debugging related to computational thinking?
Abstraction can be used to focus on the main problem
Decomposition can be used to decompose the problem to simplify a solution
Evaluation
Checking if a solution solves the problem it was designed to solve
What are some factors you should evaluate about a solution?
If the output is correct
If the solution works with different types of data
If there exists another solution which is “better”