Module Rubric

This rubric is used to assess each module at graded checkpoints (after modules 1, 3, 5, and 7).

Criteria

1. Functionality (8 points)

Does the module work as specified?

PointsDescription
8All features work correctly. Handles edge cases gracefully. No crashes or unexpected behavior.
6Core features work correctly. Minor edge cases may be unhandled. Rare minor bugs.
4Main functionality works but with notable bugs or missing features.
2Partially functional. Major features broken or incomplete.
0Non-functional or not submitted.

2. Code Elegance and Quality (8 points)

Is the code clean, readable, and well-structured? See the Code Elegance Rubric for detailed criteria.

PointsDescription
8Exemplary code quality. Clear structure, excellent naming, appropriate abstraction.
6Good code quality. Readable and organized with minor issues.
4Acceptable code quality. Functional but messy, inconsistent, or poorly organized.
2Poor code quality. Difficult to read, understand, or maintain.
0Unacceptable. Incomprehensible or no meaningful code submitted.

3. Testing (8 points)

Are unit tests and integration tests present, meaningful, and passing?

PointsDescription
8Comprehensive test coverage. Tests are well-designed, test meaningful behavior, and all pass. Edge cases covered.
6Good test coverage. Most important functionality tested. Tests pass. Minor gaps in coverage.
4Basic test coverage. Some tests present but incomplete or superficial. Tests may not cover key functionality.
2Minimal testing. Few tests, poorly written, or significant failures.
0No tests or tests completely non-functional.

4. Individual Participation (6 points)

Do commit histories show meaningful contribution from all team members?

PointsDescription
6All team members show substantial, balanced contributions. Commits reflect genuine work, not artificial splitting.
4All team members contributed. Some imbalance but all participated meaningfully.
2Participation imbalance is notable. One member dominates or one member's contributions are minimal.
1Severe imbalance. One or more members show little evidence of contribution.
0No evidence of team collaboration. Single contributor or no commits.

5. Documentation (5 points)

Is the code documented according to standard Python practices?

PointsDescription
5Excellent documentation. All public functions have docstrings with parameter and return descriptions. Type hints used consistently. Complex logic has inline comments. README explains module usage.
4Good documentation. Most functions documented. Type hints present. Minor gaps.
3Basic documentation. Some docstrings present but inconsistent or incomplete.
1Minimal documentation. Little to no docstrings. Code is difficult to understand without reading implementation.
0No documentation.

6. I/O Clarity (5 points)

Are inputs and outputs clearly defined and easily assessable?

PointsDescription
5Inputs and outputs are crystal clear. Easy to verify correctness. For ML modules, metrics are well-reported and interpretable.
4Inputs and outputs are clear with minor ambiguity. Assessment is straightforward.
3Inputs and outputs defined but require effort to interpret or assess.
1Inputs and outputs unclear. Difficult to determine what the module does or whether it works.
0No clear I/O specification. Cannot assess functionality.

7. Topic Engagement (6 points)

Does the module genuinely engage with the AI concept(s) it claims to cover?

PointsDescription
6Deep engagement with the topic. Demonstrates clear understanding. Implementation reflects core concepts accurately and meaningfully.
4Solid engagement. Topic is addressed appropriately with minor superficiality.
2Surface-level engagement. Topic is referenced but implementation does not demonstrate deep understanding.
1Weak engagement. Topic is named but barely addressed in implementation.
0No meaningful engagement with the stated topic.

8. GitHub Practices (4 points)

Does the repository demonstrate professional development practices?

PointsDescription
4Excellent practices. Meaningful commit messages, appropriate use of pull requests, issues tracked, merge conflicts resolved thoughtfully.
3Good practices. Most commits have meaningful messages. PRs used. Minor lapses.
2Basic practices. Commits present but messages often vague. PRs or issues underutilized.
1Poor practices. Commit messages uninformative. No PRs or issues. Repository is disorganized.
0No meaningful use of GitHub practices.

Scoring

Total points possible: 50