In this paper, algorithms to enumerate and isolate complex polynomial roots are developed, analyzed, and implemented. We modified an algorithm due to Wilf, in which Sturm sequences and the principle of argument are used, by employing algebraic methods, aiming to enumerate zeros inside a rectangle in an exact way. Several improvements are introduced, such as dealing with zeros on the boundary of the rectangle. The performance of this new algorithm is evaluated in a theoretical as well as from a practical point of view, by means of experimental tests. The robustness of the algorithm is verified by using tests with ill-conditioned polynomials. We also compare the performance of this algorithm with the results of a recent paper, using different polynomial classes.