La soluzione dei problemi è il cuore dell'informatica. I programmatori devono prima capire come un essere umano risolve un problema, poi capire come tradurre questo "algoritmo" in qualcosa che un computer può fare e infine come "scrivere" la sintassi specifica (richiesta da un computer) per portare a termine il lavoro. A volte capita che una macchina risolva un problema in modo completamente diverso da un essere umano. Un algoritmo è una procedura passo-passo che produce sempre una soluzione corretta. Una formula matematica è un buon esempio di algoritmo per la risoluzione di un problema. Sebbene un algoritmo garantisca una risposta accurata, non è sempre l'approccio migliore alla risoluzione dei problemi. Questa strategia non è pratica in molte situazioni perché può richiedere molto tempo. Ad esempio, se si cercasse di capire tutte le possibili combinazioni di numeri di una serratura utilizzando un algoritmo, ci vorrebbe molto tempo.