Rubric — Assignment 1 (20 marks)

Applies to Assignment 1. Marks are per criterion; use the band descriptors, not gut feeling. Award half-bands where genuinely between.

Task 1 — Decomposition (5)

BandDescriptor
5Tree covers the whole task; every leaf is genuinely small; assumptions are stated, specific, and marked for impact; the marked assumption is defended.
4Tree complete but one leaf is really two subproblems, or one assumption is vague ("assume normal things").
2–3Major leaf missing (e.g. the bonus decision) or assumptions absent; the shape is visible but not executable.
0–1A single undecomposed step, or the tree restates the scenario in other words.

Task 2 — Rules as pseudocode (6)

BandDescriptor
5–6All rules present and ordered correctly (discount applies to the whole purchase; bonus requires ≥ 2 purchased); boundary values right (5 credits, 8 attendances); outputs named; every purchase-size answer traceable to the rules.
3–4Rules present but one boundary wrong, or the discount applied per-credit instead of per-purchase, or bonus tested before the purchase size is known.
1–2Rules ambiguous where the scenario was precise, or Python used but doing the thinking invisibly.
0The scenario restated; no executable precision.

Task 3 — Decision and flowchart (5)

BandDescriptor
5Flowchart reaches one recommendation; every branch is reachable; the contested branch is annotated with a genuine two-sided disagreement.
4Correct chart; the "contested" branch annotation is decorative (no real alternative given).
2–3Chart has an unreachable branch or a missing exit path, or the recommendation contradicts the task-2 rules.
0–1No chart, or arrows into nowhere throughout.

Task 4 — The hostile friend (4)

BandDescriptor
4A concrete input where intuition and rules diverge; both answers derived; the rule change that would flip the verdict identified.
3Concrete divergence found but the rule change is vague.
1–2Asserts the friend is wrong/right without a concrete input.
0Not attempted.

Cross-cutting adjustments