10 marks]: Requirements to get full marks:
- Achieve more than 90% of all deliverables by the end.
- Requirements marked as optional or if-applicable are not counted when calculating the percentage of deliverables.
- When a requirement specifies a
minimalversion of it, simply reaching that minimal version of the requirement is enough for it to be counted for grading -- however, we recommend you to go beyond the minimal; the farther you go, the more practice you will get.
- The code quality meets the following conditions:
- Reasonable use of OOP e.g., at least some use of inheritance, code divided into classes in a sensible way
- No blatant violations of the coding standard (both Java and Git conventions)
- At least some errors are handled using exceptions
- At least half of public methods/classes have javadoc comments
- The code is neat e.g., no chunks of commented out code
- Reasonable use of SLAP e.g., no very-long methods or deeply nested code
- Has some JUnit tests
Project Management [
2 marks]: To get full marks, you should achieve,
- Submit some deliverables in at least 4 out of the 5 iP weeks (i.e., week 2 - week 6)
- Follow other requirements specified (e.g., how to use Git/Github for each increment, do peer reviews) in at least 4 weeks
3 marks]: To get full marks, you should achieve,
- The product web site and the user guide is reasonable (i.e., functional, not hard to read, covers all features, no major formatting errors in the published view).
iP serves mostly a formative role in this module i.e., it aims to ensure everyone has achieved a basic competency level that is a prerequisite to survive the tP (it does not aim to rank you based on strength or differentiate strong programmers from the rest). Hence, almost everyone is expected to receive close to full marks for the iP. Therefore, iP marks is unlikely to make a significant difference in your final grade.