Todos os programas de computador fazem alguma forma de contagem como uma pequena parte de uma tarefa. Contar uma centena de itens não leva muito tempo, mesmo sem um computador. No entanto, alguns computadores podem ter que contar um bilhão de itens ou mais. Se a contagem não for feita com eficiência, pode levar dias para um programa concluir um relatório quando ele deve levar apenas alguns minutos. Por exemplo, a contagem dos números de loteria vencedores de todos os bilhetes de loteria deve envolver a parada de uma contagem de tickets quando o número mínimo de números corretos não pode ser alcançado naquele ticket específico. Quando os números da loteria em cada ticket são pré-classificados, a contagem pode ser muito rápida com uma estratégia de dividir e conquistar. O ramo da matemática chamado análise combinatória fornece aos alunos a teoria necessária para codificar programas de contagem que incluem os atalhos que reduzirão o tempo de execução do programa.
Algoritmos
Depois que uma contagem for concluída, uma tarefa para fazer algo com o número real da contagem é necessária. O número de etapas necessárias para concluir uma tarefa deve ser minimizado para que o computador possa retornar um resultado mais rápido para um grande número de tarefas. Novamente, se uma tarefa precisar ser feita apenas 20 vezes, não demorará muito para o computador mais lento. No entanto, se a tarefa precisa ser feita um bilhão de vezes, um algoritmo ineficiente com muitas etapas pode levar dias, em vez de horas, para ser concluído, mesmo em um computador de um milhão de dólares. Por exemplo, existem várias maneiras de classificar uma lista de números não classificados do menor para o maior, mas alguns algoritmos executam muitas etapas, o que pode fazer com que o programa seja executado por muito mais tempo do que o necessário. Aprender a matemática por trás dos algoritmos permite que os alunos criem passos eficientes em seus programas.
Teoria dos Autômatos
Problemas em computadores são muito maiores do que apenas contar e algoritmos. A teoria dos autômatos estuda problemas que têm um número finito ou infinito de resultados potenciais de probabilidade variável. Por exemplo, computadores tentando entender o significado da palavra com mais de uma definição precisariam analisar a sentença inteira ou até mesmo um parágrafo. Depois que toda a contagem e os algoritmos da frase ou do parágrafo forem concluídos, regras para determinar a definição correta serão necessárias. A criação dessas regras faz parte da teoria dos autômatos. Probabilidades são atribuídas a cada definição, dependendo dos resultados da parte do algoritmo para o parágrafo. Idealmente, as probabilidades são apenas 100 por cento e 0 por cento, mas muitos problemas do mundo real são complicados, sem resultado certo. O design, a análise e a inteligência artificial do compilador de computador fazem uso pesado da teoria dos autômatos.