Decomposition is the process of breaking a problem down into smaller parts.

Redundant code is code that is unnecessary. Efficient means getting the best outcome with the least amount of waste.
myPainterPlus.takeAllPaint();
is more efficient than
myPainterPlus.takePaint();
myPainterPlus.takePaint();
myPainterPlus.takePaint();
myPainterPlus.takePaint();
Pseudocode is a plain language description of the steps in an algorithm.
while the Painter is on a paint bucket
take paint
while the Painter has paint
paint yellow
if the Painter can move forward
move forward