Curriculum Portal

Select a course.

arrow_back

Retrieval: 2.1 Elements of computational thinking

infoWhy this? Computational thinking is at the heart of Computer Science and provides the framework for solving complex problems in a logical and systematic way. Through abstraction, decomposition and pattern recognition, students learn how to break large problems into manageable parts, identify important information and develop solutions that can be automated by a computer. These skills are not only essential for programming but are also widely valued in fields such as engineering, science, business and data analysis. Developing computational thinking helps students become more effective problem-solvers and prepares them to tackle increasingly sophisticated computing challenges.

scheduleWhy now? At the start of the Algorithms and Programming component, students need a clear methodology for approaching problems before they begin designing algorithms or writing code. Computational thinking provides the foundation upon which all later programming and algorithmic concepts are built. By developing these skills now, students are better equipped to analyse requirements, design efficient solutions and justify their decisions throughout the course, including in the Non-Exam Assessment (NEA) project. Establishing strong computational thinking habits early ensures students can approach unfamiliar problems with confidence and structure as the level of complexity increases.

neurologyYou need to know

  • Abstraction is the process of removing unnecessary detail so that the important features of a problem or system can be examined more easily.
  • An abstraction represents selected features of reality rather than reproducing every feature of the real situation.
  • Abstraction reduces complexity, making problems easier to understand, model and solve.
  • The usefulness of an abstract model depends on whether it retains the details relevant to its intended purpose.
  • An abstract model may produce misleading results if important details or assumptions are omitted.
  • Inputs are the data supplied to a system or process, while outputs are the data or actions produced by it.
  • A precondition is a requirement that must be true before a process, algorithm or program component can run correctly.
  • Caching stores copies of frequently or recently accessed data so that later requests can be served more quickly.
  • Caching can reduce access time, network traffic and repeated computation, but it requires extra storage and may return outdated data if the cache is not updated correctly.
  • Reusable program components are self-contained sections of code, such as functions, procedures, classes or libraries, that can be used in multiple parts of a program or in different programs.
  • Reusable components can reduce development time, duplication and testing effort, while improving consistency and maintainability.
  • Decomposition divides a complex problem into smaller, more manageable components that can be solved separately.
  • The components of a problem describe the smaller tasks that must be addressed, while the components of a solution describe the algorithms, data and program modules used to address them.
  • A procedure is an ordered sequence of steps that performs a specific task, and a sub-procedure performs a smaller task within a larger procedure.
  • The order of procedural steps matters when one step depends on the result or state produced by an earlier step.
  • A decision point selects between alternative paths according to whether a logical condition evaluates to true or false.
  • Logical conditions use comparisons and Boolean operators such as AND, OR and NOT to determine which path through a program is followed.
  • Concurrency allows multiple tasks to make progress during overlapping periods, although they do not necessarily execute at exactly the same instant.
  • Concurrent processing can improve responsiveness, throughput and resource use when tasks are independent or spend time waiting for input or output.
  • Concurrency can introduce communication and scheduling overheads, unpredictable execution order, competition for resources and errors caused by unsynchronised access to shared data.

rocket_launchYou must be able to

  • Devise an abstract model by identifying its purpose, retaining relevant features and removing unnecessary detail.
  • Compare an abstraction with reality by identifying what has been represented, simplified or omitted and explaining the effects of those choices.
  • Identify the inputs, processing and outputs of a given system or problem.
  • Determine the preconditions for a solution by stating the data, resources and system states that must exist before execution begins.
  • Evaluate whether caching is appropriate by weighing faster access and reduced processing against storage costs and the risk of stale data.
  • Decompose a problem and its proposed solution into clearly defined components, including any reusable functions, procedures or modules.
  • Arrange the steps of a solution in a valid order, showing dependencies and identifying suitable sub-procedures.
  • Construct and trace decision logic by stating Boolean conditions and following the correct program path for given data.
  • Identify tasks that can proceed concurrently and evaluate the likely benefits and trade-offs, including dependencies, shared resources, synchronisation and processing overheads.


Revision Quiz

trophy Congratulations! You have completed the quiz.