Ha a „számítógép” kifejezést tágabb értelemben tekintjük, akkor beszélhetünk belső, illetve külső vezérlésű információfeldolgozó automatákról. A külsővezérlésű automaták esetében az inputnak része a tevékenységet irányító program. Ez például úgy valósulhat meg, hogy folyamatos emberi beavatkozással irányítjuk a gépet (például egy abakuszt, egy elektronikus zongorát stb.), vagy pedig a feldolgozandó adatokkal egyetemben adjuk meg a feldolgozás módját megadó tevékenység leírását (így működtek régen egyes lyukkártyavezérlésű gépek). Így programot minden munkafázisban újra meg újra le kell írni és a gépnek beadni. A belső vezérlésű automaták viszont saját maguk tárolni képesek a tevékenységüket irányító programot, így minden munkafázisban csak az adatok leírására és a megfelelő program kiválasztására van szükség. A belső program lehet „fix”, azaz rezidens: ez nem változtatható az automata fizikai integritásának megváltoztatása nélkül (például fix programok a PC-k BIOS programjai, melyek hardveresen „bele vannak égetve” a PC alaplapjába, vagy a programozható mosógépek programjai), vagy lehet változtatható; a legtöbb mai számítógép mindkét fajta programot tartalmaz. Mindennek a teteje pedig az, amikor a gép már maga is képes lényegesen változtatni a működését vezérlő programon.