Analysis and Design of Algorithms

Module code: CO7002 

Module co-ordinator: Stanley Fung

Algorithms are step-by-step procedures, such as those executed by computers, to solve problems. Typical problems might include "What is the shortest path between two locations in a network?''; or "What is the maximum set of activities that can be chosen subject to time constraints?'' Just because a problem can be solved, does not mean that there exists a practical, time-efficient solution. It is the goal of algorithm designers to develop better and better algorithms for the solution of fundamental or new problems.

In this module you will study the main methods used to design algorithms by looking at examples of fundamental importance in computer science and engineering. We will explore techniques for analysing the efficiency of algorithms and the inherent complexities of problems. You will then be able to apply the design methods you have learned to other problems you encounter. Sometimes you might find that no algorithms of a certain quality exist; as an algorithm designer you will need to be able to identify this limitation.

Learning

  • 31 one-hour lectures
  • 10 one-hour seminars
  • 10 one-hour tutorials

Assessment

  • Exam, 3 hours (60%)
  • Coursework (40%)