Assignment 1 Marking Rubric
Total: 100 marks (scaled to 30% of unit grade) Group Project: R Package Development – Rock, Paper, Scissors
1. Functionality of play_rps() (20 marks)
Excellent (17–20) - All requirements satisfied. - Correct logic for win/lose/draw across multiple rounds. - All strategies implemented correctly, including at least one stateful strategy. - Fully robust to edge cases; input/output exactly matches specification.
Good (13–16) - Gameplay correct for typical inputs; minor inconsistencies. - Strategies implemented but one may be incomplete.
Satisfactory (9–12) - Basic gameplay works but fails for some edge or mixed cases. - Limited strategy robustness.
Poor (1–8) - Incorrect outcomes or broken logic. - Strategies malfunction or missing.
Not attempted (0) - No meaningful implementation.
2. Code Quality and Design (20 marks)
Excellent (17–20) - Clean, modular, readable code with appropriate helper functions. - Good separation of concerns. - Efficient vectorisation where appropriate. - Sensible data structures. - No seed-setting in package code; randomness handled properly.
Good (13–16) - Mostly modular; occasional duplication. - Some vectorisation.
Satisfactory (9–12) - Limited modularity; large blocks of logic embedded in one place. - Overuse of loops where vectorisation is feasible.
Poor (1–8) - Monolithic, unstructured, or hard-to-follow code.
Not attempted (0) - No coherent code submitted.
3. Documentation (roxygen2 + README) (15 marks)
Excellent (13–15) - play_rps() clearly documented with running examples. - README well-written and explains installation and usage. - Examples run without errors.
Good (10–12) - Documentation mostly clear; minor missing details.
Satisfactory (7–9) - Documentation incomplete, unclear, or inaccurate.
Poor (1–6) - Minimal documentation; examples missing or broken.
Not attempted (0) - No documentation provided.
4. Unit Testing (15 marks)
Excellent (13–15) - Comprehensive test coverage for gameplay logic, strategies, and edge cases. - Tests deterministic via setting seeds in tests only. - Clear organisation.
Good (10–12) - Several important behaviours tested; moderate coverage.
Satisfactory (7–9) - Limited or superficial tests; some randomness issues.
Poor (1–6) - Very little testing; major logic untested.
Not attempted (0) - No tests.
5. Package Structure and Build Quality (10 marks)
Excellent (9–10) - Package builds and installs without error or significant warnings. - Passes R CMD check with zero errors and warnings - Proper structure, DESCRIPTION, and NAMESPACE.
Good (7–8) - Minor notes or warnings.
Satisfactory (5–6) - Noticeable structural issues; multiple notes/warnings.
Poor (1–4) - Package fails check or builds incorrectly.
Not attempted (0) - Package does not build.
6. GitHub Usage and Commit Practices (10 marks)
Excellent (9–10) - Regular, meaningful commits from all members. - Clear, accurate commit messages. - Evidence of collaboration.
Good (7–8) - Mostly regular commits; messages acceptable.
Satisfactory (5–6) - Irregular commits; vague or mixed-quality messages.
Poor (1–4) - Sparse commits; poor documentation of work.
Not attempted (0) - No meaningful commit history.
(Individual commit‑based penalties applied separately as per assignment instructions.)
7. AI Use Statement (5 marks)
Full marks (5) - Clear, honest explanation of AI use, including prompts/examples. - No evidence of unacknowledged use.
Partial (2–4) - Statement present but incomplete or unclear.
Zero (0) - No statement OR unacknowledged AI use detected.