La résolution de problèmes est au coeur de l'informatique. Les programmeurs doivent d'abord comprendre comment un humain résout un problème, puis comprendre comment traduire cet "algorithme" en quelque chose qu'un ordinateur peut faire, et enfin comment "écrire" la syntaxe spécifique (requise par un ordinateur) pour effectuer le travail. Il arrive parfois qu'une machine résolve un problème d'une manière complètement différente de celle d'un humain. Un algorithme est une procédure étape par étape qui produira toujours une solution correcte. Une formule mathématique est un bon exemple d'algorithme de résolution de problèmes. Bien qu'un algorithme garantisse une réponse exacte, ce n'est pas toujours la meilleure approche pour résoudre un problème. Cette stratégie n'est pas pratique dans de nombreuses situations car elle peut prendre beaucoup de temps. Par exemple, si vous essayez de trouver toutes les combinaisons de chiffres possibles pour une serrure en utilisant un algorithme, cela prendra beaucoup de temps.