Semua program komputer melakukan beberapa bentuk penghitungan sebagai bagian kecil dari tugas. Menghitung seratus item tidak memakan waktu lama, bahkan tanpa komputer. Namun, beberapa komputer mungkin harus menghitung satu miliar item atau lebih. Jika penghitungan tidak dilakukan secara efisien, mungkin diperlukan waktu berhari-hari bagi sebuah program untuk menyelesaikan laporan yang seharusnya hanya membutuhkan beberapa menit. Misalnya, penghitungan nomor lotre yang menang dari semua tiket lotre harus melibatkan penghentian penghitungan tiket ketika jumlah minimum nomor yang benar tidak dapat dicapai pada tiket tersebut. Ketika nomor lotre pada setiap tiket disortir, penghitungannya bisa sangat cepat dengan strategi bagi dan taklukkan. Cabang matematika yang disebut kombinatorik memberi siswa teori yang diperlukan untuk mengkode program penghitungan yang menyertakan jalan pintas yang akan mengurangi waktu berjalan program.
Setelah hitungan selesai, tugas untuk melakukan sesuatu dengan jumlah sebenarnya dari hitungan diperlukan. Jumlah langkah yang diperlukan untuk menyelesaikan tugas harus diminimalkan sehingga komputer dapat mengembalikan hasil lebih cepat untuk sejumlah besar tugas. Sekali lagi, jika suatu tugas hanya perlu dilakukan 20 kali, itu tidak akan memakan waktu lama bahkan untuk komputer yang paling lambat sekalipun. Namun, jika tugas itu perlu dilakukan satu miliar kali, algoritme yang tidak efisien dengan terlalu banyak langkah bisa memakan waktu berhari-hari, bukan berjam-jam, untuk diselesaikan, bahkan pada komputer jutaan dolar. Misalnya, ada banyak cara untuk mengurutkan daftar angka yang tidak diurutkan dari terendah ke tertinggi, tetapi beberapa algoritme mengambil terlalu banyak langkah, yang dapat menyebabkan program berjalan lebih lama dari yang diperlukan. Mempelajari matematika di balik algoritme memungkinkan siswa membuat langkah-langkah yang efisien dalam program mereka.
Masalah di komputer jauh lebih besar dari sekedar menghitung dan algoritma. Teori automata mempelajari masalah yang memiliki jumlah hasil potensial yang terbatas atau tak terbatas dari berbagai probabilitas. Misalnya, komputer yang mencoba memahami arti kata dengan lebih dari satu definisi perlu menganalisis seluruh kalimat atau bahkan satu paragraf. Setelah semua perhitungan dan algoritma pada kalimat atau paragraf dilakukan, diperlukan aturan untuk menentukan definisi yang benar. Penciptaan aturan-aturan ini adalah bagian dari teori automata. Probabilitas diberikan untuk setiap definisi tergantung pada hasil bagian algoritma untuk paragraf. Idealnya, probabilitasnya hanya 100 persen dan 0 persen, tetapi banyak masalah dunia nyata yang rumit tanpa hasil yang pasti. Desain kompiler komputer, penguraian, dan kecerdasan buatan banyak menggunakan teori automata.