2.1 Algorithms
Master the three core pillars of computational thinking. Learn how to logically break down, design, and iteratively refine algorithms to solve complex problems.
Part 1: Thinking & Design
2.1.1 Computational Thinking
Understand Abstraction, Decomposition, and Algorithmic Thinking. Visualise problem breakdown using structure diagrams.
Start Thinking logically2.1.2 Algorithm Design
Trace variables, fix syntax & logic errors, and understand flowcharts, pseudocode, and inputs/processes/outputs.
Design & DebugPart 2: Searching & Sorting
Part 3: Algorithm Trace & Mastery
Bubble Sort Predictor
Predict the state of an array after a single pass of the bubble sort algorithm. A common 4-mark exam question.
Predict LogicTrace Table Mastery
The ultimate guide to algorithmic tracing. Learn the systematic process for tracking variables across complex loops.
Master the TraceSudden Death Cards
High-stakes sorting. One logical error in a swap decision and the challenge restarts.
Enter Danger ZoneThe Blind Sorter
Sort hidden values using only a scale. Tests your understanding of comparison logic.
Start WeighingSwap Predictor
Construct a list that requires an exact number of swaps to sort. Harder than it looks.
Predict SwapsThe Librarian
Master alphabetical sorting. Apply the bubble sort algorithm to string data sets.
Sort BooksMerge Sort: Split It
Visualise the recursive split. Drag numbers to isolate them into individual lists at the bottom of the tree.
Start SplittingMerge Sort: Merge It
Rebuild the sorted list. Move items from the sub-lists into the parent containers using sorted comparison logic.
Start MergingAlgorithm Blitz
High-speed micro-stepping. Answer as many split/merge logic questions as possible under the clock.
Enter BlitzInsertion Challenge
A drag-and-drop mastery lab focusing on correct position insertion logic.
Launch Challenge2.1.4 Unit Diagnostic
Challenge your computational thinking. A 20-question J277 benchmark covering decomposition, abstraction, and all standard algorithms.
Start DiagnosticExaminer's Eye
Spot the mistakes in poorly written student exam papers.
Unit 2.1 Capstone Knowledge Check
1. What is the fundamental purpose of an algorithm?
2. Why do computer scientists design algorithms before writing any actual program code?
Extended Essay (AO3 Evaluation)
Stretch (8 Marks)"Evaluate the benefits to a software development team of decomposing a complex system into sub-programs before designing the algorithms." (8 marks)
Concurrency: By decomposing the system into distinct sub-programs, the development team can work on different modules concurrently, drastically reducing overall development time.
Manageability: Complex problems can be overwhelming. Decomposition reduces complexity, making each individual sub-program easier to understand, design algorithms for, and subsequently code.
Testing & Debugging: Sub-programs can be tested independently. If a logic error occurs, it is localized to a specific module rather than the team having to trace through a massive, monolithic algorithm.
Reusability: Decomposed algorithms (such as a 'login verify' module) can often be reused in future projects without needing to be rewritten from scratch.