Theoretical aspects of computing