Computer technology has made incredible tremendous strides in the last sixty years since the fi rst commercial general purpose computer was introduced. Nowadays, one can purchase a personal computer for a few hundred dollars that offers more performance, memory, and storage

capability than a million-dollar computer of the 80s. The huge increase in today’s computational capabilities has made it possible to have simulation as a third discipline of Science, since it allows us to achieve experiments and perform the evaluation of a wide range of systems, which otherwise would not be accessible; for example, in quantum computation using simulation is possible to evaluate proposals and new algorithms even though at present time there is still not a physical quantum computer for testing them. Therefore, knowing the fundamentals of computation is an indispensable issue for scientists because they provide them with the mathematical and technical tools to improve the performance of existing theoretical models and simulations, or to create new ones.