  Let $V$ be a closed subscheme of a projective space $\mathbb{P}^n$. We give
an algorithm to compute the Chern-Schwartz-MacPherson class, Euler
characteristic and Segre class of $ V$. The algorithm can be implemented using
either symbolic or numerical methods. The algorithm is based on a new method
for calculating the projective degrees of a rational map defined by a
homogeneous ideal. Using this result and known formulas for the
Chern-Schwartz-MacPherson class of a projective hypersurface and the Segre
class of a projective variety in terms of the projective degrees of certain
rational maps we give algorithms to compute the Chern-Schwartz-MacPherson class
and Segre class of a projective variety. Since the Euler characteristic of $V$
is the degree of the zero dimensional component of the
Chern-Schwartz-MacPherson class of $V$ our algorithm also computes the Euler
characteristic $\chi(V)$. Relationships between the algorithm developed here
and other existing algorithms are discussed. The algorithm is tested on several
examples and performs favourably compared to current algorithms for computing
Chern-Schwartz-MacPherson classes, Segre classes and Euler characteristics.
