62 practice questions
What are the four key components of computational thinking?
easyHow does decomposition help in large software projects?
easyExplain how decomposition applies when building a school management system.
mediumWhy is it useful to identify reusable components when decomposing a problem?
mediumWhich of the following best defines 'decomposition' in computational thinking?
easyExplain the relationship between decomposition and top-down design.
mediumWhich of the following is NOT typically considered a benefit of decomposing a problem before solving it?
mediumA team is asked to build a quiz application. Suggest three sub-problems the overall problem could be decomposed into.
mediumWhich type of diagram is commonly used to show how a problem has been decomposed into modules and sub-modules?
easyExplain how decomposing a program into smaller modules can make debugging easier.
mediumGive an example of abstraction in a real computing context.
mediumWhat is a computational model?
mediumWhich of the following is the best example of abstraction?
mediumWhat is memoisation and how does it relate to abstraction?
hardA mapping app models a city as a graph: junctions are nodes, and roads are edges with weights representing travel time. Explain how this is an example of abstraction.
mediumIn computational thinking, a 'model' is best described as:
easyExplain the difference between abstraction and decomposition, even though both involve simplifying a problem.
mediumAn operating system provides a simple 'save file' function, hiding the complex details of how data is physically written to a hard drive's sectors and tracks. This is an example of:
mediumExplain the difference between procedural abstraction and data abstraction, giving an example of each.
hardA weather forecasting program uses a simplified mathematical representation of the atmosphere, ignoring minor factors that have little effect on the outcome, to predict tomorrow's weather. This is best described as:
mediumExplain what "thinking procedurally" means.
mediumWhat is the difference between concurrent and parallel execution?
hardWhat is meant by "thinking logically" in computational thinking?
easyWhat is the Halting Problem and why is it significant?
hardGive two features that distinguish tractable from intractable problems.
hardWhich type of computational thinking involves identifying the inputs, outputs, and any constraints of a problem before designing a solution?
easyWhat is meant by "thinking procedurally" when solving a problem?
mediumExplain what "concurrent thinking" means and give an example of a real-world system where it is important.
hardA programmer caches the results of a slow database query so repeated requests for the same data are answered instantly. Which element of computational thinking does this best demonstrate?
mediumWhat is meant by "thinking logically" in computational thinking?
easyA queue management system at a supermarket must handle customers being served at multiple checkouts at the same time, and a self-checkout being temporarily out of service. Identify which computational thinking technique addresses each scenario.
hardExplain why "thinking ahead" includes considering how a solution will cope with larger amounts of data in the future.
mediumWhat is pattern recognition in computational thinking?
easyHow is pattern recognition applied in image recognition?
mediumExplain the difference between decomposition and pattern recognition, using a real-world example for each.
mediumExplain how recognising patterns between a new problem and previously solved problems can help when designing an algorithm.
mediumAn email program automatically identifies messages as 'spam' based on common features shared with previously identified spam messages (e.g. certain words, sender patterns). This is an example of:
mediumA programmer needs to arrange a list of student records by exam score. Explain how recognising this as a 'sorting' problem helps them solve it.
mediumWhich of the following is the best example of pattern recognition in everyday computing?
easyExplain how recognising that a problem is a 'graph traversal' problem (such as finding a route between two locations) can help a programmer design a solution.
hardWhat is the key difference between pattern recognition and abstraction in computational thinking?
mediumDiscuss how pattern recognition might be used by a streaming service to recommend films to a user.
mediumWhat is a heuristic algorithm and when is one used?
hardDescribe, using the example of solving a maze, what is meant by 'backtracking' as a problem-solving strategy.
mediumBacktracking is best described as a strategy that:
easyA program is trying to place numbers 1-3 in a row such that no two adjacent numbers are the same, as part of a previous failed attempt. Explain, step by step, how a backtracking algorithm might explore placing values into the first two positions if placing 1,1 fails the constraint.
hardWhich of the following problems is most commonly associated with being solved using a backtracking algorithm?
mediumExplain how backtracking differs from a simple 'brute force' approach that tries every possible combination.
mediumBacktracking algorithms are often naturally implemented using which programming technique/structure, due to the need to 'undo' choices and return to a previous state?
mediumExplain why backtracking algorithms can become very inefficient for large problems.
mediumWhile solving a maze using backtracking, a program reaches a junction with three possible paths. It follows the first path, which leads to a dead end. What does the program do next?
mediumDescribe a real-world (non-maze) example of a situation where 'backtracking-style' thinking โ trying an option and undoing it if it does not work โ could be applied.
mediumExplain what is meant by 'data mining'.
mediumWhat is the main purpose of data mining?
easyA supermarket analyses data from customer loyalty cards to find that customers who buy nappies often also buy beer. Explain how this is an example of data mining, and how the supermarket might use this information.
mediumWhich of the following techniques is commonly used in data mining to group similar items or customers together based on shared characteristics?
mediumDiscuss one ethical concern raised by organisations using data mining on customer data.
hardWhat is the key difference between routine 'data processing' (e.g. updating a customer's address) and 'data mining'?
mediumExplain what is meant by 'market basket analysis' and how it relates to data mining.
mediumWhich of the following industries commonly uses data mining to analyse customer behaviour and improve services?
easyExplain the role of 'big data' in enabling modern data mining techniques.
hardA bank uses data mining on transaction data to identify unusual spending patterns that may indicate stolen card details. This is an example of using data mining for:
mediumRemoving unnecessary detail so only what matters for the solution remains. Representational abstraction builds a simplified model of reality; abstraction by generalisation groups things by shared characteristics so one solution handles many cases. A London Underground map is an abstraction โ connections and order of stops matter; real distances, road layout and scenery do not.
Computing is built from stacked abstractions: a programmer uses a high-level language without thinking about machine code; the language uses the OS without thinking about the hardware; the hardware uses logic gates without thinking about electrons. Each layer trusts the one below to "just work".
Decomposition breaks a large problem into smaller sub-problems that can be solved independently. A top-down / modular design refines the problem into modules, each as a subroutine, then combines them. Benefits: work can be shared across a team, modules are reusable and individually testable, and the structure is easier to understand and maintain.
Identify the points in a problem where a decision must be made, the condition that drives each decision, and how each outcome changes the flow of the solution. Clear logical structure (sequence, selection, iteration) is what makes an algorithm correct, predictable and traceable.
Problem: build a quiz app - display a question (module) - read and store the answer (module) - check the answer / score (module) - move to the next question (module) - show the final result (module) Each module is designed, coded and tested on its own, then assembled โ top-down design.
Concurrency can reduce total run time for tasks that split into independent parts, and keeps a program responsive (e.g. the user interface stays usable while a download runs in the background). Drawbacks: not all problems can be split; results from separate parts may need recombining; and shared data must be synchronised to avoid race conditions (where the result depends on unpredictable timing) โ adding complexity and overhead.
HELPS: downloading 10 independent files
โ 10 tasks run at once, finishing far sooner.
DOES NOT HELP: computing the 100th Fibonacci number
by the simple recurrence
โ each value needs the previous one, so the steps
must run in order โ no parallelism possible.