(a)

Identify the inputs and outputs for a given situation

(b)

Determine the preconditions for devising a solution to a problem

(c)

The nature, benefits, and drawbacks of caching

(d)

The need for reusable program components