ICDL Coding Principles study materials
ICDL Coding Principles study resources

ICDL Coding Principles (ICDL): Computational Thinking and Problem Solving

ICDL Coding Principles · Work through your exam, one topic at a time.

All guide sections

Computational Thinking and Problem Solving

What this domain covers

Computational thinking is a way of framing a problem so that a machine (or a person) can solve it reliably. Four ideas anchor it. Decomposition breaks a large problem into smaller sub-problems that can be tackled separately. Abstraction strips away detail that does not matter for the current task, keeping only the essential features. Pattern recognition spots recurring structure so one solution serves many cases. Algorithm design expresses the solution as an unambiguous, finite sequence of steps.

You must also read and reason about algorithms. Know that sequence is order of steps, selection is a decision (if/else), and iteration is repetition (loops). Be able to trace a short algorithm by hand with a table of variable values, and to compare two solutions for efficiency - fewer steps, less repeated work. Recognise linear search (check items one by one) versus a binary search on sorted data (halve the range each time), and understand that sorting first can make later searching cheaper. Flowcharts and pseudocode are notation, not code: a decision is a diamond, a process is a rectangle.

Traps to watch for

Do not confuse abstraction (removing irrelevant detail) with decomposition (splitting into parts). A question describing "ignore the colour of the car, record only its speed" is abstraction. Watch for algorithms that are correct but inefficient, and for traces where a loop variable is updated before rather than after the test. Always check whether a stated algorithm terminates.

Worked example

Find a name in an unsorted list of 100: linear search may need 100 comparisons. Sort once, then binary search needs at most about 7 comparisons - but sorting has a cost, so it pays only if you search repeatedly.