Example
lConstruct, and prove correct, a searching program.

lThe need to prove that a program is correct can have beneficial effects on the structure of the program:

lYou need to be able to explain (in logic) what all the pieces do.