Tous les programmes informatiques font une certaine forme de comptage comme une petite partie d'une tâche. Compter une centaine d'articles ne prend pas beaucoup de temps, même sans ordinateur. Cependant, certains ordinateurs peuvent avoir à compter un milliard d'articles ou plus. Si le comptage n'est pas effectué efficacement, un programme peut prendre plusieurs jours pour terminer un rapport alors que cela ne devrait prendre que quelques minutes. Par exemple, le comptage des numéros de loterie gagnants de tous les billets de loterie devrait impliquer l'arrêt du comptage de billets lorsque le nombre minimum de numéros corrects ne peut pas être atteint sur ce billet particulier. Lorsque les numéros de loterie sur chaque billet sont pré-triés, le décompte peut être très rapide avec une stratégie de division pour régner. La branche des mathématiques appelée combinatoire donne aux étudiants la théorie nécessaire pour coder des programmes de comptage qui incluent les raccourcis qui réduiront le temps d'exécution du programme.
Une fois le décompte terminé, une tâche pour faire quelque chose avec le nombre réel du décompte est nécessaire. Le nombre d'étapes nécessaires pour effectuer une tâche doit être réduit au minimum afin que l'ordinateur puisse renvoyer un résultat plus rapidement pour un grand nombre de tâches. Encore une fois, si une tâche ne doit être effectuée que 20 fois, cela ne prendra pas longtemps, même pour l'ordinateur le plus lent. Cependant, si la tâche doit être effectuée un milliard de fois, un algorithme inefficace avec trop d'étapes peut prendre des jours au lieu d'heures, même sur un ordinateur à un million de dollars. Par exemple, il existe de nombreuses façons de trier une liste de nombres non triés du plus petit au plus grand, mais certains algorithmes prennent trop d'étapes, ce qui peut entraîner l'exécution du programme beaucoup plus longtemps que nécessaire. L'apprentissage des mathématiques derrière les algorithmes permet aux étudiants de créer des étapes efficaces dans leurs programmes.
Les problèmes informatiques sont bien plus importants que le simple comptage et les algorithmes. La théorie des automates étudie les problèmes qui ont un nombre fini ou infini de résultats potentiels de probabilité variable. Par exemple, les ordinateurs essayant de comprendre le sens d'un mot avec plus d'une définition devraient analyser la phrase entière ou même un paragraphe. Une fois que tous les comptages et algorithmes sur la phrase ou le paragraphe sont terminés, des règles pour déterminer la définition correcte sont nécessaires. La création de ces règles fait partie de la théorie des automates. Des probabilités sont attribuées à chaque définition en fonction des résultats de la partie algorithme du paragraphe. Idéalement, les probabilités ne sont que de 100 % et de 0 %, mais de nombreux problèmes du monde réel sont compliqués sans résultat certain. La conception de compilateurs informatiques, l'analyse et l'intelligence artificielle font un usage intensif de la théorie des automates.