Computer scientists are trained in the theory of computation and the design of computer systems. The computer science discipline is associated to mathematics and includes topics ranging from theoretical (such as studies of the limits of computation) to practical (such as issues of implementing computing systems).