Thinking Procedurally

  • “Thinking procedurally” is a core concept in computational thinking which involves solving a problem by breaking it down into a sequence of steps or procedures.

  • It is essentially a methodical approach that makes complex problems manageable by setting and implementing smaller, more comprehensible tasks.

  • The concept leans heavily on the use of algorithms – step-by-step sets of instructions to solve a specific problem.

  • It can include employing control structures such as sequence, selection, and iteration within the algorithm’s design.

  • Sequence is the order in which instructions are executed, always following in a head-to-tail manner.

  • Selection introduces decision-making into an algorithm, allowing the execution to follow different pathways based on a certain condition.

  • Iteration, or looping, allows a set of instructions to be executed multiple times. This may be a set number or until a condition is met.

  • Understanding data types and data structures is also essential in procedural thinking. Data types dictate what type of data can be stored and manipulated, whilst data structures organise and store data.

  • Procedural decomposition involves breaking down a problem into sub-problems or procedures. Each sub-problem accomplishes a specific task and contributes to the solution of the main problem.

  • Modularity, the division of a software system into separate modules, is a key concept in procedural thinking.

  • Testing is an integral part of the process. All individual procedures should be systematically tested before they are combined and tested as a whole.

  • Procedures should be designed not only to solve the problem at hand but also to be reusable in solving similar problems in the future, promoting code efficiency and maintainability.

  • The final step in thinking procedurally is review and improvement. This might involve refining the procedure to make it more efficient or adapting it to solve a slightly different problem.