iP serves mostly a formative role in this course 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, it is graded somewhat like an S/U component and almost everyone is expected to receive full marks for the iP.
Full marks for the iP is 15
.
- Meeting all the bars specified below you earn your iP full
15
marks. - Falling below any of the bars specified below will limit your iP score to less than half the marks.
That is, you either get full marks, or less than half the marks.
Implementation [10
marks]
- More than 90% of all deliverables completed.
Requirements marked as optional or if-applicable are not counted when calculating the percentage of deliverables.
When a requirement specifies aminimal
version 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. - Has a GUI that it at least as good as the one given in the JavaFx tutorial.
- No major bugs.
- Reasonable use of OOP e.g., at least some use of inheritance, code divided into classes in a sensible way (e.g.,
Ui
,Storage
,Parser
,Storage
,Todo
,Deadline
,Event
etc.). - At least half of public methods/classes have javadoc comments.
- Reasonable code quality:
- No blatant violations of the coding standard (both Java and Git conventions).
- 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.
- At least some errors are handled using exceptions.
- At least two methods unit tested well using JUnit.
You can monitor your iP progress (as detected by our scripts) in the iP Progress Dashboard page.