This course provides a comprehensive introduction to the modern study of computer algorithms. The emphasis is on the creative aspects of the design and analysis of efficient computer algorithms. A variety of practical algorithms are developed in each of the following areas: sorting, searching, string processing; and geometric, graph, and mathematical algorithms. The development is in two stages: (1) analysis of the algorithms’ complexities using their informal descriptions and (2) implementation of the algorithms in the C++ programming language.

Credits: 3 Cr.