An algorithm is best described as_______________?
A. A computer language
B. A branch of mathematics
C. A step by step procedure for solving a problem
D. All of the above