Abstraction
Abstraction is removing the unnecessary considerations from a problem so you are left with just the important facts. For instance, if you are designing a car park it does not matter what colour the cars that park in it will be.
The London tube map is considered an excellent example of abstraction as it performs its function of helping passengers navigate the tube system by leaving out certain details. The lines do not show the exact routes of the trains. Stations are spaced in order to easily fit the names on a map, not to scale with how far apart they actually are. There are few details about above ground features.
Decomposition
Decomposition is breaking a problem down into smaller more manageable chunks that can be more easily solved.
In programming we aim to break large programs up into smaller subroutines that can be combined together to form a larger program. Each subrotine is easier to solve and can be written by different programmers.