Learning Outcomes:
Having attended the lectures, studied the material and exercises you should be able to...
Specify a range of programming problems.
Calculate efficient programs to meet these specifications.
Identify and exploit symmetry and monotonicity in problems.