Select an algorithm scenario to see its flowchart. Flowcharts use standard shapes: rectangles for processes, diamonds for decisions, ovals for start/end.
Decomposition Planner
Break a big problem into sub-problems. Click a problem to see its decomposition tree.
What is Computational Thinking?
Computational thinking (CT) is a problem-solving approach inspired by how computers process information. It is a fundamental skill for engineers, scientists, and designers — not just programmers. CT has four pillars: decomposition, pattern recognition, abstraction, and algorithm design.
Decomposition
Breaking a complex problem into smaller, manageable sub-problems. Building a robot? Decompose it into: power system, sensors, actuators, control software, chassis. Each sub-problem can be solved independently, then combined.
Pattern Recognition
Identifying similarities, trends, or repeating structures within problems. If you notice that traffic jams always form at certain intersections during rush hour, that pattern suggests where to focus engineering solutions.
Abstraction
Focusing on the important details while ignoring irrelevant ones. A subway map is an abstraction — it shows connections between stations but not the actual curves or distances. This simplification makes it useful for navigation without overwhelming detail.
Algorithm Design
Creating step-by-step instructions to solve a problem. An algorithm must be: unambiguous (each step has one clear meaning), finite (it must end), and correct (it produces the right result for all valid inputs). Engineers write algorithms for control systems, optimization, and automation.
Check Your Understanding
1. Breaking a complex problem into smaller sub-problems is called:
Abstraction
Pattern recognition
Decomposition
Iteration
2. A subway map that shows connections but not exact distances or curves is an example of:
Decomposition
Algorithm design
Pattern recognition
Abstraction
3. What shape in a flowchart represents a decision (yes/no question)?
Rectangle
Oval
Diamond
Circle
4. Which is NOT a required property of a correct algorithm?