Some assignment deliverables include marks for “good coding style”. What does this mean?#
Your code should be consistent in use of names, whitespace etc. I recommend following the Google Java Style Guide. Names should be meaningful and help to make the code ‘self-documenting’ wherever possible. Each non-trivial method should have a Javadoc comment which explains the purpose of the method, each parameter and the return value, as well as any important features of the interface such as input restrictions and reasons that exceptions may be thrown.
Many assignment deliverables include marks for “exceptional quality”. What does this mean?#
Quality is indefinable.
- Robert M. Pirsig, Zen and the Art of Motorcycle Maintenance
The criteria for these marks are deliberately open-ended, as we want to reward work that goes beyond what we expect for the course in creative and thoughtful ways. However, a program of exceptional quality will necessarily be:
Correct and robust, implementing the specification and correctly handling all reasonable input. For example, a program that passes the unit tests but crashes for a different input that is not tested (but which is still allowed by the specification) would not be considered correct.
Modular, with clear separation of concerns between the components. For example, in a GUI program for a game, the rules of the game will be implemented in a separate class or classes from the display of the game board. Each method should do one thing, and only one thing. Appropriate use should be made of object-oriented features such as encapsulation and inheritance.
Understandable - it should be clear to a competent Java programmer what each component of the program does (and how).
In good coding style, see above.