Total: 60 marks ( 35 individual marks + 25 team marks)
See the sections below for details of how we assess each aspect.
1. Project Grading: Product Design [ 5 marks]
Evaluates: how well your features fit together to form a cohesive product (not how many features or how big the features are) and how well does it match the target user
Evaluated by tutors
Based on the product features.
2. Project Grading: Implementation [ 20 marks]
2A. Code quality
Evaluates: the quality of the parts of the code you claim as written by you
Evaluation method: manual inspection by tutors + automated-analysis by a script
Criteria:
-
At least some evidence of these (see here for more info)
- logging
- exceptions
- assertions
-
No coding standard violations e.g. all boolean variables/methods sounds like booleans. Checkstyle can prevent only some coding standard violations; others need to be checked manually.
-
SLAP is applied at a reasonable level. Long methods or deeply-nested code are symptoms of low-SLAP.
-
No noticeable code duplications i.e. if there multiple blocks of code that vary only in minor ways, try to extract out similarities into one place, especially in test code.
-
Evidence of applying code quality guidelines covered in the module.
2B. Effort
Evaluates: how much value you contributed to the product
Method:
- This is evaluated by tutors.
- The score could be further moderated by this question answered by team members.
Admin Peer Evaluations → Questions used for Evaluating Implementation Effort
Uses the Equal Share +/- N%
scale for the answer
3. Project Grading: QA [/ 10 marks]
Evaluated by tutors.
Based on,
- the robustness of your product
- the quality of test cases
4. Project Grading: Documentation [/ 15 marks]
Evaluated by tutors
Based on the quality of your UG and DG, adjusted based on your individual contribution to the UG/DG.
5. Project Grading: Project Management [ 5 + 5 = 10 marks]
5A. Process:
Evaluates: How well you did in project management related aspects of the project, as an individual and as a team
Based on: tutor/bot observations of project milestones and GitHub data
Grading criteria:
- Project done iteratively and incrementally (opposite: doing most of the work in one big burst)
- No e.g., the product is not working at all by the milestone deadlinemajor mishaps at v1.0, v2.0, and v3.0 milestone deadlines.
- Good attempt to use of at least some Git and GitHub features (e.g., milestones, releases, issue tracker, PRs)
5B. Team-tasks:
Evaluates: How much you contributed to team-tasks
Admin tP → Expectations: Examples of team-tasks
Here is a non-exhaustive list of team-tasks:
- Setting up the GitHub team org/repo
- Necessary general code enhancements
- Setting up tools e.g., GitHub, Gradle
- Maintaining the issue tracker
- Release management
- Updating user/developer docs that are not specific to a feature e.g. documenting the target user profile
- Incorporating more useful tools/libraries/frameworks into the product or the project workflow (e.g. automate more aspects of the project workflow using a GitHub plugin)
Based on: peer evaluations, tutor observations
Grading criteria: Do these to earn full marks.
- Do close to an equal share of the team tasks (you can earn bonus marks by doing more than an equal share).
- Merge code in at least four of weeks 7, 8, 9, 10, 11, 12