La teoria della computazione nasce dalla necessità di una sistemazione teorica del concetto di procedura di calcolo. Ha due assi portanti: la computabilità e la complessità di calcolo. Studia ciò che può e non può essere calcolato e, nel caso dei problemi risolvibili, determina in quanto tempo, con quanta memoria e su quale tipo di modello computazionale. Il testo di Michael Sipser, giunto alla terza edizione inglese, è considerato un riferimento essenziale sull'argomento, adottato in numerosissime università in tutto il mondo in ambito informatico, ingegneristico e matematico.