iP:
A-MoreOOP
Level-8
, Level-9
, A-JavaDoc
tP:
A-MoreOOP
Why more OOP?
One of the increments below asks you to push the design more towards the OOP approach. This is a good point to remind you the following points:
Good OOP != OOP is good: While the module pushes you to use good OOP, do not interpret it as a message of OOP is good; it's good for many situations but not so for some other situations. The best is usually a combination of approaches. Hence, you are encouraged to get better at other paradigms, the functional paradigm in particular which has been rising in popularity in some areas such as big data, AI, parallel systems.
That said, it is also preferable to use one paradigm as the primary approach and fallback on others only when the primary paradigm is clearly sub-optimal. Reason: mixing everything in equal measures might make the system even harder to understand.
OOP is primary paradigm for this module and you are expected to try to push it to its limits. That should give you a first-hand experience of OOP's strengths and weaknesses. Furthermore, OOP (or any other paradigm) will appear worse than it really is if not used correctly, and learning to use it correctly in increasingly larger systems is another objective you can aim for in this module.
We do not prohibit the use of other paradigms, however. For example, if you find a place where the functional approach is better, go ahead and use it. As you know, Java supports functional programming to a certain extent.
master
branch (no need to use separate branches).Level-8
, Level-9
, A-JavaDoc
branch-Level-8
etc.), but do not merge any.master
branch). Be careful not to create a PR to the upstream repo. If you did create such a PR by mistake, no worries, just close it yourself.Create merge commit
option when merging.master
branch from your fork to your Computer.master
. To rectify, merge the master
branch to each of them. Resolve merge conflicts, if any.Soft deadline: midnight before the tutorial
Create a new jar file
Do the following smoke tests to ensure the jar file works (reason: a similar flow will be used when grading your iP).
Create a new release on GitHub (e.g., v0.2
) and upload the JAR file.
show a place holder for photo, showing a generic default image
should be assigned to Jake and to milestone v1.0
v1.0
and the second one v1.0b
so that the dashboard can track them accurately. The reason for naming the earlier milestone as v1.0
is so that even if you fail to finish the second one, you can still get credit for reaching v1.0
(which is the milestone tracked by grading scripts) -- think of the first iteration as minimal deliverables for v1.0
and the second one as containing do-if-there-is-time improvements.