How can we write robust and efficient programs?

We need to know how we can determine and compare the efficiency of different programs. One of the most important factors is the underlying algorithm used, together with the data structures employed.

Algorithms for various problems will be considered, including, for example, sorting, searching, etc. The effect of the choice of algorithm and data structures on program run-times and memory space will be examined and analysed.

Course Text

Book cover of Programming Pearls

Jon Bentley
Programming Pearls
Addison-Wesley (1999)
ISBN 0-201-65788-0

Programming Pearls is currently available to current student from Safri Online (recently rebranded as Learning O'Reilly), access is via Birkbeck Library Online Databases
Previous support site is now only available via

Other Books

Algorithms in C++ (Parts 1-4)
Addison-Wesley (3rd edition, 1998)
ISBN 0-201-35088-2

Also available Birkbeck Library Online Databases

Binstock A and Rex J
Practical Algorithms for Programmers
Addison-Wesley (1995)
ISBN 0-201-63208-X

Recommended Problems for Programming Pearls