Note that project grading is not competitive (not bell curved). Given below is the marking scheme.
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/novel/interesting/difficult the features are) - how well it matches the target user
Evaluated by the teaching team
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.
3. Project Grading: QA [/ 10 marks]
Evaluated by the teaching team.
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/grading-script observations of project milestones and GitHub data
Grading criteria:
Project done iteratively and incrementally (opposite: doing most of the work in one big burst)
Milestones reached on time (i.e., the midnight before of the tutorial) (to get a good grade for this aspect, achieve at least 75% of the recommended milestone progress).
Good use of GitHub milestones mechanism.
Good use of GitHub releases mechanism.
Good version control, based on the repo.
Reasonable attempt to use the forking workflow at least for the early part of the project.
Good task definition, assignment and tracking, based on the issue tracker.
Good use of buffers (opposite: everything at the last minute).
5B. Team-tasks:
Evaluates: How much you contributed to team-tasks
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).
- Have your code merged in at least four of weeks 7, 8, 9, 10, 11, 12