Example 1 — Recognize the model
EasyProblem
A class sees this computing situation: students compare two ways to find a name in a list and explain which method uses fewer checks as the list grows. How should a student decide whether Merge Sort is the right model?
Solution
-
Identify the target of the reasoning.
The target might be a problem, data representation, code state, system component, user need, or stakeholder.
-
List the process or relationship that matters.
Merge Sort is useful when the problem asks for an algorithm explanation with input, output, invariant or rule, termination condition, and efficiency tradeoff stated.
-
Apply the recognition test: Am I judging the steps of a method for correctness, termination, edge cases, and efficiency as inputs change?
This separates merge sort from code implementation and one successful test.
-
State the evidence that would prove the answer.
A trace, test, diagram, input-output pair, or impact argument prevents a vague answer.
Answer
Use Merge Sort only if the task is asking for an algorithm explanation with input, output, invariant or rule, termination condition, and efficiency tradeoff stated and the situation passes the recognition test. Otherwise, choose the nearby model that better matches the computing structure.
Takeaway: Model choice comes before definitions. The same words can belong to different CS ideas depending on the problem structure.