Date: 2020-03-19
See the model answers for examples of how the questions might be answered at varying levels of proficiency.
A few comments here about typical issues with submissions:
Providing an explicit list of “Relevant Topics”. This is not necessary, and will be ignored. If a topic is relevant, it should be mentioned in your answer. Answers should be given in plain English (though bullet points are acceptable).
Not reviewing material. Many people seemed to provide answers based on what they have been told “commenting” is good for in previous units (e.g. explaining non-obvious steps in an implementation). But the lecture 2 material is, I think, pretty clear that this is not the purpose of Javadoc comments; it explicitly states that they serve as a specification of intended behaviour.
Poor justifications. Many answers purported to justify an approach on the grounds that it “follows such-and-such a principle” or “is good practice”. As mentioned in the model answers, this is a poor justification, because it immediately raises the question “Why should we follow such-and-such a principle?” or “What make this a ‘good’ practice?”. A better justification is to explain the beneficial consequences of following some practice, or the harmful consequences of not following it.
Not reading the question/lecture materials. Many answers assumed that the tests in question 2 were unit tests. But the question does not say this. Be careful about your assumptions! The lecture on test automation explicitly stated that JUnit can be used for other sorts of test besides unit tests.