(a) Understand the waterfall lifecycle, agile
methodologies, extreme programming, the spiral
model and rapid application development.
(b) The relative merits and drawbacks of different
methodologies and when they might be used.
(c) Writing and following algorithms.