Visas datorprogrammas kaut kādā veidā uzskaita kā nelielu uzdevuma daļu. Simts priekšmetu skaitīšana neprasa ilgu laiku, pat bez datora. Tomēr dažiem datoriem var būt jāsaskaita miljards vai vairāk. Ja skaitīšana netiek veikta efektīvi, var paiet vairākas dienas, līdz programma sagatavo pārskatu, kad tam vajadzētu aizņemt tikai minūtes. Piemēram, visu loterijas biļešu laimēšanas loterijas skaitļu skaitīšana ir saistīta ar biļešu skaitīšanas apturēšanu, ja konkrētajā biļetē nevar sasniegt minimālo pareizo numuru skaitu. Kad loterijas numuri uz katras biļetes ir iepriekš sakārtoti, skaitīšana var būt ļoti ātra, izmantojot sadalīšanas un iekarošanas stratēģiju. Matemātikas nozare, ko sauc par kombinatoriku, dod studentiem teoriju, kas vajadzīga, lai kodētu skaitīšanas programmas, kas ietver īsceļus, kas samazinās programmas izpildes laiku.
Pēc tam, kad skaitīšana ir pabeigta, ir nepieciešams uzdevums kaut ko izdarīt ar faktisko skaitīšanas skaitli. Uzdevuma izpildei nepieciešamo darbību skaits ir jāsamazina līdz minimumam, lai dators varētu ātrāk atgriezt rezultātu daudziem uzdevumiem. Atkal, ja uzdevums jāveic tikai 20 reizes, tas neaizņems ilgu laiku pat vislēnākajam datoram. Tomēr, ja uzdevums jāveic miljardu reižu, neefektīvs algoritms ar pārāk daudzām darbībām pat miljonu dolāru datorā var aizņemt vairākas dienas, nevis stundas. Piemēram, ir daudz veidu, kā kārtot nešķiroto numuru sarakstu no zemākā līdz augstākajam, taču daži algoritmi veic pārāk daudz darbību, kā rezultātā programma var darboties daudz ilgāk, nekā nepieciešams. Matemātikas apguve algoritmu dēļ ļauj studentiem izveidot efektīvus soļus savās programmās.
Datoros problēmas ir daudz lielākas nekā tikai skaitīšana un algoritmi. Automātu teorija pēta problēmas, kurām ir ierobežots vai bezgalīgs daudz dažādu iespējamību iznākums. Piemēram, datoriem, kas mēģina izprast vārda nozīmi ar vairāk nekā vienu definīciju, būtu jāanalizē viss teikums vai pat punkts. Pēc teikuma vai rindkopas visu skaitīšanas un algoritmu veikšanas ir nepieciešami noteikumi pareizas definīcijas noteikšanai. Šo noteikumu izveide ir daļa no automātu teorijas. Katrai definīcijai tiek piešķirtas varbūtības atkarībā no rindkopas algoritma daļas rezultātiem. Ideālā gadījumā varbūtība ir tikai 100 procenti un 0 procenti, taču daudzas reālās problēmas ir sarežģītas bez noteikta iznākuma. Datoru kompilatoru dizains, parsēšana un mākslīgais intelekts intensīvi izmanto automātu teoriju.