Computational Thinking

Computational thinking is the mental skill of turning a messy, real-world problem into something precise enough that a machine with no judgment or common sense can still carry it out correctly, and it is a skill taught independently of any specific programming language because the thinking happens before a single line of code gets written. Decomposition is the first move: breaking a large, intimidating problem into smaller pieces that are each individually solvable, the same way a chip design team breaks "build a processor" down into front-end logic design, physical layout, verification, and fabrication rather than tackling the whole thing as one undifferentiated task. Pattern recognition comes next — noticing that a new problem shares structure with one already solved, that searching for a name in a sorted list of a million names is the same underlying problem as searching for a word in a dictionary, so a solution developed for one transfers directly to the other without starting from scratch. Abstraction means deliberately ignoring irrelevant detail to focus on what actually matters for the problem at hand: a program that calculates shipping cost doesn't need to know the color of the package, only its weight and destination, and a good abstraction is precisely the skill of knowing which details are safe to throw away without changing the answer. Algorithm design is where these pieces combine into an actual precise, step-by-step procedure — not vague intent like "sort the list" but an exact, unambiguous sequence of operations that produces a correct result every time it's followed, for every valid input, not just the examples that happened to come to mind while designing it. Pseudocode is the tool computational thinking typically gets written down in before any real code exists: structured, language-agnostic, plain-language steps (`IF x is greater than y THEN swap them`) that let a person design and check an algorithm's logic without getting distracted by a specific programming language's exact syntax rules, semicolons, and punctuation. The reason this topic sits this early in the curriculum, before programming fundamentals, is deliberate: the single most common reason a beginner's program doesn't work isn't a syntax mistake, it's that the underlying plan was never actually precise enough to execute correctly in the first place, and no amount of syntax knowledge fixes a plan that was vague from the start.

Messy real-world problem
e.g. find the fastest delivery route
Decomposition
split into smaller solvable sub-problems
Pattern recognition
spot structure shared with problems already solved
Abstraction
discard details that don't change the answer
Algorithm as pseudocode
exact, unambiguous steps, language-agnostic
Ready to translate into real code
next topic in this series
Abstraction: Keep Only What Matters A shipping-cost calculator only needs two of these five facts everything true about the package color: dark blue weight: 4.2 kg packed by: warehouse 3 destination: zip 94103 order timestamp: 14:02 gift-wrapped: no what the abstraction keeps weight: 4.2 kg destination: zip 94103 everything else is discarded a good abstraction is choosing correctly what to throw away
Pseudocode: Logic Before Syntax Plain-language steps, checked for correctness before any real code exists FUNCTION find_largest(list): largest = list[0] FOR each item IN list: IF item > largest THEN largest = item END IF END FOR RETURN largest END FUNCTION no semicolons, no language-specific punctuation — just the exact logic

Every single topic later in this series — data structures to hold the pieces an algorithm operates on, algorithm analysis to judge whether a design is actually good, programming languages to finally translate pseudocode into something a compiler accepts — is downstream of getting this one step right first, which is exactly why it comes before any of them.

Take computational thinking further

Ask the copilot about this term, or have our engineers assess it against your process.