In this paper we address the problem of linearization of nonlinear control systems using coordinate transformations. Although necessary and sufficient geometric conditions have been provided in the early eighties, the problem of finding the linearizing coordinates is subject to solving a system of partial differential equations and remained open 30 years later. We will provide here a complete solution to the problem by defining an algorithm allowing to compute explicitly the linearizing state coordinates for any nonlinear control system that is indeed linearizable. Each algorithm is performed using a maximum of n - 1 steps (n being the dimension of the system) and they are made possible by explicitly solving the Flow-box or straightening theorem. The problem of feedback linearization is addressed in a companion paper. A possible implementation via software like mathematica/matlab/maple using simple integrations, derivations of functions might be considered.