Lecture Notes by Stephen J. Bourke, Graham P. Burns & Graham P.P. Burns