Justification

Long before the appearance of the computer many algorithms processes (specified as a sequence of steps) have been developed to solve problems of practical application. But the development of the digital computer the study of algorithms became a discipline on it own due to the fact that all the computational applications need effective and efficient algorithms. Although the capacity of processing and storage of computers continues to increase it is also true that the volumes of data and the complexity of the tasks assigned to them is increasing. Also there are known problems for which efficient algorithms are not known nor are they expected to appear in the future.

A systems and computing engineer must be able to estimate mathematically the computational complexity and bounds of algorithms. In addition, he must be able to propose and evaluate correct algorithms for the problems that he faces in his professional activity, being aware in advance, of the performance they will have once they are implemented.