 Au début du XIXe siècle, des tables mathématiques ont été créées à la main pour aider les navires à naviguer. Pour les produire plus vite et éliminer le risque d'erreur humaine, le scientifique britannique Charles Babbage a inventé une machine à différence mécanique. Son projet suivant a été l'invention d'une machine programmable et polyvalente appelée machine analytique qu'il a décrite en 1837. Babbage a été aidé par Ada Lovelace, fille de Lord Byron. En 1843, celle-ci a publié un algorithme pour l'utilisation de la machine, considéré comme le premier programme informatique au monde. La machine analytique n'a jamais été terminée. Ce n'est qu'un siècle plus tard qu'a débuté la théorie informatique moderne avec un article publié par le mathématicien britannique Helen Thuring en 1936. Pendant la Seconde Guerre mondiale, Thuring travaillait en Angleterre, à Blitley Park, quartier général des services de renseignement, qui s'efforçait de décrypter les messages codés de l'ennemi. L'un de leurs objectifs était de casser les codes employés par Enigma, machine qui envoyait des ordres codés au sous-marin allemand. Thuring a imaginé plusieurs moyens d'accélérer les travaux de décryptage. Il a aussi engagé Tommy Flowers, l'ingénieur qui a construit le Colossus, premier ordinateur électronique numérique programmable au monde, mis en service en 1944. Le Colossus n'enregistrait pas de programme en mémoire et les connexions devaient être modifiées à chaque nouvelle tâche. Le Colossus n'était pas un ordinateur polyvalent. Le premier ordinateur polyvalent, appelé AENIAC, a vu le jour aux États-Unis en 1946. Comme pour l'ordinateur britannique, les calculs étaient effectués au moyen de tubes à vide. L'ENIAC, conçu par John Moshley et John Eckert, se composait de modules qui réalisaient différentes fonctions. Toutefois, il fallait toujours modifier manuellement les connexions à chaque nouvelle tâche. L'ENIAC était une machine gigantesque qui occupait plus de 150 m2.