|
| 1 | +# Algorithm Arena |
| 2 | + |
| 3 | +A platform for running DSA coding-challenge events for a community, built around a |
| 4 | +challenge → submission → manual review → scoring lifecycle. This glossary fixes the |
| 5 | +vocabulary for **questions, answers, and scoring** — the area most prone to drift now |
| 6 | +that questions come in more than one shape. |
| 7 | + |
| 8 | +## Questions |
| 9 | + |
| 10 | +**Question**: |
| 11 | +A single prompt a participant answers, stored as a `Challenge` document. Every question |
| 12 | +has a `type`. All questions share difficulty, points, and `tags`. |
| 13 | +_Avoid_: Problem, task (except "DSA question", see below). |
| 14 | + |
| 15 | +**Type**: |
| 16 | +The discriminator on a question: `dsa`, `mcq`, or `written`. Determines how it is |
| 17 | +answered, graded, and displayed. Defaults to `dsa`. |
| 18 | + |
| 19 | +**DSA question**: |
| 20 | +A `type: dsa` question answered with code, run against test cases via Judge0, then |
| 21 | +manually reviewed. The original and only pre-existing question shape. |
| 22 | +_Avoid_: Coding challenge, algorithm problem. |
| 23 | + |
| 24 | +**Domain question**: |
| 25 | +The umbrella for `mcq` and `written` questions — interview-style questions about a |
| 26 | +subject area rather than code. Lives in a standalone pool, not in a Question Set. |
| 27 | +_Avoid_: Theory question, quiz question. |
| 28 | + |
| 29 | +**MCQ question**: |
| 30 | +A `type: mcq` domain question with a fixed set of `options` and exactly one |
| 31 | +`correctOption`. Auto-graded server-side. |
| 32 | +_Avoid_: Poll, single-choice. |
| 33 | + |
| 34 | +**Written question**: |
| 35 | +A `type: written` domain question answered in prose, carrying a `modelAnswer`. The |
| 36 | +learner self-assesses against the model answer; a reviewer separately scores it. |
| 37 | +_Avoid_: Essay, long-answer, subjective question. |
| 38 | + |
| 39 | +**Question Set**: |
| 40 | +A weekly, deadline-bound collection of DSA questions with a target level. Domain |
| 41 | +questions are **not** part of any Question Set. |
| 42 | +_Avoid_: Assignment, batch, week. |
| 43 | + |
| 44 | +**Interview Prep**: |
| 45 | +The participant-facing area where the standalone domain-question pool is browsed by |
| 46 | +`tags` and answered. Distinct from Missions (the DSA/Question-Set area). |
| 47 | + |
| 48 | +## Answering & mastery |
| 49 | + |
| 50 | +**Submission**: |
| 51 | +A record of one participant answering one question — code, a selected MCQ option, or |
| 52 | +written prose — carrying a review status and the points actually awarded. |
| 53 | + |
| 54 | +**Mastery status**: |
| 55 | +A participant's per-question state, held in `DomainProgress`: `Unattempted`, |
| 56 | +`NeedsReview`, or `Mastered`. Independent of points. |
| 57 | +_Avoid_: Progress, completion, done. |
| 58 | + |
| 59 | +**Needs-review**: |
| 60 | +The mastery status of a domain question the participant got wrong (MCQ) or self-marked |
| 61 | +as not-yet-understood (written). Resurfaces after a cooldown. |
| 62 | +_Avoid_: Failed, incorrect, pending. |
| 63 | + |
| 64 | +**Mastered**: |
| 65 | +The mastery status of a domain question answered correctly (MCQ) or self-marked as |
| 66 | +understood (written). Still viewable, no longer resurfaced. |
| 67 | + |
| 68 | +**Self-assessment**: |
| 69 | +For written questions only: the participant's own *Got it* / *Review later* judgement |
| 70 | +after seeing the model answer. Drives mastery status, never points. |
| 71 | + |
| 72 | +**Cooldown**: |
| 73 | +The lock period before a Needs-review question may be re-attempted. Escalates by |
| 74 | +doubling per wrong/missed attempt (2 → 4 → 8 … days), capped once no points remain |
| 75 | +to earn. |
| 76 | +_Avoid_: Timeout, delay, wait. |
| 77 | + |
| 78 | +## Scoring |
| 79 | + |
| 80 | +**Full points**: |
| 81 | +A question's base award, derived from its difficulty (Easy/Medium/Hard). The starting |
| 82 | +value the MCQ decay halves and the amount a written approval grants. |
| 83 | + |
| 84 | +**Decayed award**: |
| 85 | +The MCQ points for a correct answer on attempt _n_: `round(fullPoints / 2^(n-1))`, |
| 86 | +dropping to 0 once it would fall below 5. Anti-farming device unique to auto-graded |
| 87 | +MCQ. |
| 88 | +_Avoid_: Penalty, discount. |
| 89 | + |
| 90 | +**Awarded points**: |
| 91 | +The points a Submission actually granted (a decayed award, full points, or 0) — as |
| 92 | +distinct from the question's full points. Recorded on the Submission. |
| 93 | + |
| 94 | +**Domain-mastered count**: |
| 95 | +A participant's tally of mastered domain questions, tracked separately from |
| 96 | +`solvedProblems` so domain badges and DSA badges stay independent. |
| 97 | +_Avoid_: Solved (that term is reserved for DSA `solvedProblems`). |
0 commit comments