What does Low Coupling and High Cohesion means?
Cohesion refers to what the class (or module) will do. Low cohesion would imply that the class does an incredible assortment of activities and is not centered around what it ought to do. High cohesion would then imply that the class is centered around what it ought to do, i.e. just techniques identifying with the expectation of the class.
With respect to coupling, it alludes to how related are two classes/modules and how subordinate they are on each other. Being low coupling would imply that changing something major in one class ought not influence the other. High coupling would make your code hard to roll out improvements and additionally to look after it, as classes are coupled firmly together, rolling out an improvement could mean a whole framework patch up.
All great software design will go for high cohesion and low coupling.