Analysis and Design of Algorithms

Module code: CO3002

Module co-ordinator: Stanley Fung

In this module you will study the design and analysis of algorithms – step-by-step procedures, such as those executed by computers, to solve problems.

Typical problems include, for example: "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 practically 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 through examples of fundamental importance in computer science and engineering. These design methods not only apply to the problems illustrated in the module, but also to a much wider range of problems in computer science and engineering – so you will be able to apply these design methods to other problems you encounter.

Alternatively, it can be the case that no algorithms of a certain quality exist. Algorithm designers then need to identify this limitation of algorithms. We will look at techniques for analysing the efficiency of algorithms and the inherent complexities of problems.

Learning

  • 30 hours of lectures
  • 10 hours of surgeries
  • 9 hours of problem classes
  • 1 hour of class tests

Assessment

  • Coursework (40%)
  • Exam (60%)