This course is about algorithms. Before we actually begin our study of any specific algorithms, however, we'll start by studying some of the mathematics necessary to analyze the resources (such as processing time, memory, or disk storage) consumed by the execution of an algorithm.
Two algorithms that solve the same problem may consume wildly different quantities of resources- and this usage may depend upon the inputs to the algorithms, which are not known until the algorithm is actually executed. Depending on the requirements of the system that the algorithm is part of, the quantities of resources used may have a profound effect on the usability of the system, or even whether the system is successful or not.