Note that project grading is not competitive (not bell curved). CS2103T projects will be assessed separately from CS2103 projects. Given below is the marking scheme.
Total: 65 marks ( 55 individual marks + 10 team marks)
See the sections below for details of how we assess each aspect.
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:
Admin tP Deliverables → PE → Grading Instructions for Product Design
In addition, feature flaws reported in the PE will be considered when grading this aspect.
These are considered feature flaws:
The feature does not solve the stated problem of the intended user i.e., the feature is 'incomplete'
Hard-to-test features
Features that don't fit well with the product
Features that are not optimized enough for fast-typists or target users
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)
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:
Admin tP Deliverables → PE → Questions used for Implementation Effort
Admin Peer Evaluations → Questions used for Evaluating Implementation Effort
3A. Developer Testing:
Evaluates: How well you tested your own feature
Based on:
🤔 How much testings is enough? We expect you to decide. You learned different types of testing and what they try to achieve. Based on that, you should decide how much of each type is required. Similarly, you can decide to what extent you want to automate tests, depending on the benefits and the effort required.
There is no requirement for a minimum coverage level. Note that in a production environment you are often required to have at least 90% of the code covered by tests. In this project, it can be less. The weaker your tests are, the higher the risk of bugs, which will cost marks if not fixed before the final submission.
These are considered functionality bugs:
Behavior differs from the User Guide
A legitimate user behavior is not handled e.g. incorrect commands, extra parameters
Behavior is not specified and differs from normal expectations e.g. error message does not match the error
3B. System/Acceptance Testing:
Evaluates: How well you can system-test/acceptance-test a product
Based on: bugs you found in the PE. In addition to functionality bugs, you get credit for reporting documentation bugs and feature flaws.
severity.High
> severity.Medium
> severity.Low
> severity.VeryLow
type.FunctionalityBug
> type.DocumentationBug
> type.FeatureFlaw
n
bugs found in your feature; it is a difficult feature consisting of lot of code → 4/5 marksn
bugs found in your feature; it is a small feature with a small amount of code → 1/5 marksEvaluates: your contribution to project documents
Method: Evaluated in two steps.
Admin tP Deliverables → PE → Grading Instructions for User Guide
Admin tP Deliverables → PE → Grading Instructions for Developer Guide
Admin Peer Evaluations → Questions used for Evaluating the Contribution to the UG
Admin Peer Evaluations → Questions used for Evaluating the Contribution to the DG
These are considered UG bugs (if they hinder the reader):
Use of visuals
Use of examples:
Explanations:
Neatness:
These are considered DG bugs (if they hinder the reader):
Those given as possible UG bugs ...
These are considered UG bugs (if they hinder the reader):
Use of visuals
Use of examples:
Explanations:
Neatness:
Architecture:
UML diagrams:
Code snippets:
Problems in User Stories. Examples:
Problems in Use Cases. Examples:
Problems in NFRs. Examples:
Problems in Glossary. Examples:
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:
5B. Team-tasks:
Evaluates: How much you contributed to team-tasks
Admin tP → Expectations: Examples of team-tasks
Based on: peer evaluations, tutor observations
Grading criteria: To earn full marks, you should have done close to a fair share of the team tasks. You can earn bonus marks by doing more than your fair share.
Normally, the prof will respond within 24 hours if it was an email sent to the prof or a forum post directed at the prof. If you don't get a response within that time, please feel free to remind the prof. It is likely that the prof did not notice your post or the email got stuck somewhere.
Similarly we expect you to check email regularly and respond to emails written to you personally (not mass email) promptly.
Email etiquette: ALWAYS respond to direct emails
Not responding to a personal email is a major breach of professional etiquette (and general civility). Imagine how pissed off you would be if you met the prof along the corridor, said 'Hi prof, good morning' and the prof walked away without saying anything back. Not responding to a personal email is just as bad. Always take a few seconds to at least acknowledge such emails. It doesn't take long to type "Noted. Thanks" and hit 'send'.
The promptness of a reply is even more important when the email is requesting you for something that you cannot provide. Imagine you wrote to the prof requesting a reference letter and the prof did not respond at all because he/she did not want to give you one; You'll be quite frustrated because you wouldn't know whether to look for another prof or wait longer for a response. Saying 'No' is fine and in fact a necessary part of professional life; but saying nothing is not acceptable. If you didn't reply, the sender will not even know whether you received the email.
Sometimes, small things matter in big ways. e.g., all other things being equal, a job may be offered to the candidate who has the neater looking CV although both have the same qualifications. This may be unfair, but that's how the world works. Students forget this harsh reality when they are in the protected environment of the school and tend to get sloppy with their work habits. That is why we reward all positive behavior, even small ones (e.g., following precise submission instructions, arriving on time etc.).
But unlike the real world, we are forgiving. That is why you can still earn full marks for participation even if you miss a few things here and there.
Related article: This Is The Personality Trait That Most Often Predicts Success (this is why we reward things like punctuality).