Alle computerprogrammer foretager en eller anden form for tælling som en lille del af en opgave. At tælle hundrede varer tager ikke lang tid, selv uden en computer. Dog kan nogle computere muligvis tælle en milliard varer eller mere. Hvis tællingen ikke udføres effektivt, kan det tage dage for et program at afslutte en rapport, når det kun skal tage minutter. F.eks. Skal det optællende vindende lotterinummer for alle lotteribilletter indebære, at man stopper et billetantal, når det mindste antal korrekte tal ikke kan nås på den pågældende billet. Når lotterinummerne på hver billet er forudbestemt, kan optællingen være meget hurtig med en delings- og erobringsstrategi. Grenen af matematik kaldet kombinatorik giver eleverne den teori, der er nødvendig for at kode tælleprogrammer, der inkluderer genveje, der vil reducere programmets løbetid.
Når en optælling er afsluttet, er det nødvendigt med en opgave at gøre noget med det faktiske antal fra optællingen. Antallet af trin, der er nødvendige for at udføre en opgave, bør minimeres, så computeren kan returnere et resultat hurtigere for et stort antal opgaver. Igen, hvis en opgave kun skal udføres 20 gange, tager det ikke lang tid, selv for den langsomste computer. Men hvis opgaven skal udføres en milliard gange, kan en ineffektiv algoritme med for mange trin tage dage i stedet for timer, der skal gennemføres, selv på en million dollar computer. For eksempel er der mange måder at sortere en liste over usorterede tal fra laveste til højeste, men nogle algoritmer tager for mange trin, hvilket kan få programmet til at køre meget længere end nødvendigt. At lære matematikken bag algoritmer giver eleverne mulighed for at skabe effektive trin i deres programmer.
Problemer i computere er meget større end bare at tælle og algoritmer. Automata teori studerer problemer, der har et endeligt eller uendeligt antal potentielle resultater med varierende sandsynlighed. For eksempel skulle computere, der forsøger at forstå betydningen af ord med mere end en definition, have brug for at analysere hele sætningen eller endda et afsnit. Når alt tællingen og algoritmerne på sætningen eller afsnittet er udført, er der behov for regler for at bestemme den korrekte definition. Oprettelsen af disse regler er en del af automatteorien. Sandsynligheder tildeles hver definition afhængigt af resultaterne af algoritmedelen for afsnittet. Ideelt set er sandsynlighederne kun 100 procent og 0 procent, men mange virkelige problemer er komplicerede uden noget bestemt resultat. Compilerdesign, parsing og kunstig intelligens gør brug af automatteori.