Tous les programmes informatiques sont considérés comme une petite partie d'une tâche. Compter une centaine d'objets ne prend pas beaucoup de temps, même sans ordinateur. Cependant, certains ordinateurs peuvent devoir compter un milliard d'éléments ou plus. Si le décompte n'est pas effectué efficacement, il peut s'écouler plusieurs jours avant qu'un programme ne termine un rapport alors qu'il 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 d'un 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 ticket sont pré-triés, le décompte peut être très rapide avec une stratégie de division et de conquête. La branche de mathématiques appelée combinatoire donne aux étudiants la théorie nécessaire pour coder les programmes qui incluent les raccourcis qui réduiront le temps d'exécution du programme.
Algorithmes
Une fois le comptage terminé, une tâche pour faire quelque chose avec le nombre réel du nombre est nécessaire. Le nombre d'étapes nécessaires pour effectuer une tâche doit être réduit 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 doit être effectuée seulement 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 et non des heures, même sur un ordinateur à un million de dollars. Par exemple, il existe de nombreuses façons de trier une liste de numéros non triés du plus bas au plus élevé, mais certains algorithmes prennent trop de mesures, 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.
Théorie des automates
Les problèmes dans les ordinateurs sont beaucoup plus importants que le simple calcul 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 la signification du mot avec plus d'une définition devraient analyser la phrase entière ou même un paragraphe. Après tout le comptage et les algorithmes sur la phrase ou le paragraphe sont faits, les 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. Les probabilités sont attribuées à chaque définition en fonction des résultats de la portion d'algorithme pour le paragraphe. Idéalement, les probabilités ne sont que de 100% et 0%, mais de nombreux problèmes du monde réel sont compliqués sans résultat certain. La conception de compilateurs informatiques, l'analyse syntaxique et l'intelligence artificielle font un usage intensif de la théorie des automates.