How can we distinguish between 'easy problems' and 'hard problems'? In this lecture I shall explain what is meant by an 'algorithm', and present some celebrated algorithms that can be used to solve a range of practical problems. I then investigate the efficiency of these algorithms and describe...