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 that OOP is not a silver bullet or always the right choice. While it is the most widely used and possibly the right choice for a variety of situations, it may not work well for other situations, and it has plenty of detractors and known problems.
OOP has been chosen as the 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.
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 some cases and not so for other cases. 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.
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.