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