Answer to Question 12C-1
You write software by successive refinement by
setting a small, testable goal, writing software to achieve
that goal, testing whether the software achieves
that goal, and fixing the software if necessary before
moving on to the next goal.