1.4b Computational Methods

Thinking Abstractly and Visualisation:

Abstract thinking, in computer science, pertains to the ability to grasp and reason about concepts and systems without getting tangled up in the gritty details of their implementation. This necessitates the skill to examine problems from a perspective identify patterns and connections and devise solutions that can be applied across various contexts.

In the realm of computer science visualization refers to the process of creating representations of data, algorithms, or systems with the aim of facilitating comprehension and analysis. This may involve crafting diagrams, charts, graphs, or other visual aids that emphasize patterns or relationships within the data or system being examined. Visualization serves as a tool, for computer scientists since it enables them to uncover trends or anomalies that might otherwise go unnoticed and potentially lead to insights and discoveries.

Examples:

  • Maps - Focus on important characteristics of geographical content while removing unnecessary detail.

  • Baking a cake - Following only the required steps in order to make the batter and cook it. You are not analysing the effects of different mixes or oven temperatures.

  • Driving a car - While driving a car, you are abstracting the workings of the vehicle and focusing on the simple controls: accelerator, brake, and steering wheel.

Thinking Ahead:

Thinking ahead in computer science means anticipating future problems and designing flexible and adaptable software solutions that can accommodate change. It requires an understanding of system architecture and design principles to prevent technical debt and reduce development costs.

Thinking Procedurally and Decomposition:

Thinking procedurally in computing involves breaking down complex problems into manageable steps, while decomposition is the process of breaking down a system into smaller modules. Both skills are essential for computer scientists to develop algorithms and software that can solve complex problems efficiently.

Examples:

  • Building shelves - You break down the problem into separate tasks: measuring the space, creating a blueprint, gathering materials, and assembling the shelves.

  • Making a cup of coffee - Separate tasks to complete the overall goal: fill and boil kettle, put coffee grounds in a mug, collect milk from the fridge, pour water, and add milk.

Thinking Logically:

In the realm of computer science, logical thinking entails the capacity to analyze and deliberate based on a set of guidelines, principles, or circumstances. It involves utilizing logic to examine and assess arguments as well as determining the validity or falsehood of a given statement or conclusion. Logical thinking holds significance, in software design and implementation as it guarantees efficient code that is devoid of errors. Moreover, it plays a role, in problem-solving by empowering computer scientists to devise algorithms and strategies that are not only effective but scalable.

Examples:

  • All squares are rectangles -> All rectangles have four sides -> All squares have four sides.

  • All people are mortal -> You are a person -> You are mortal.

  • All trees have trunks -> An oak tree is a tree -> The oak tree has a trunk.

Thinking Concurrently:

Thinking concurrently in computer science refers to the ability to design and implement software systems that can perform multiple tasks or processes simultaneously. This requires an understanding of parallelism and concurrency, as well as the ability to manage shared resources and coordinate the execution of multiple threads or processes. Concurrent thinking is essential for developing scalable, high-performance software systems that can handle large amounts of data or users and is becoming increasingly important as modern computing architectures become more complex and distributed.

Examples:

  • Speed radar - Collecting the speed of the vehicle and the registration plate at the same time.

  • Computer - Downloading files and streaming audio at the same time.

Last updated