Authorised by Academic Registrar, April 1996
Objectives At the completion of this subject students should know about a wide range of algorithms for solving typical problems and be able to design new algorithms for given problems; be able to use advanced data structures in solving problems involved in the development of computer applications; and be able to select efficient algorithms appropriate to given problems in order to deliver quality software products meeting.
Synopsis This subject aims to equip students with the ability to develop and select appropriate algorithms to solve various types of problems and to use sophisticated data structures. Topics include: advanced data structures such as hash tables, trees, graphs and heaps; typical algorithms for (internal and external) searching and sorting; algorithm design techniques such as divide-and-conquer, dynamic programming, greedy method, backtracking, approximation, and recursive descent; algorithm analysis - time and space efficiency of algorithms, comparison of algorithms.
Assessment Examination (3 hours): 40% + Practical work: 60%