These notes were prepared for the Programming Languages and
System Design course in the BE (Information Technology) course at
the University of Western Australia. The course note covers the
following topics: Algorithm Complexity, Classes of Efficient
Algorithms, Searching, Queues, Sorting, Graphs, Huffman Encoding,
Fast Fourier Transforms, Matrix Chain Multiplication, Intractible
Problems and Alpha-Beta search.