Il primo lavoro sostanziale nel campo dell’Intelligenza Artificiale è stato svolto a metà del XX secolo dal logico e pioniere dei computer britannico, Alan Mathison Turing. Nel 1935, Turing descrisse una macchina informatica astratta composta da una memoria illimitata e uno scanner che si muoveva avanti e indietro attraverso la memoria stessa, simbolo per simbolo, per leggere qualunque cosa trovasse e scrivere ulteriori simboli.
Le azioni dello scanner erano dettate da istruzioni, anch’esse memorizzate sotto forma di simboli. Questo è il concetto di “programma memorizzato di Turing”, e in esso è implicita la possibilità che la macchina funzioni, e quindi modifichi o migliori, il proprio programma. L’idea concepita dal logico britannico è ora conosciuta come la macchina di Turing universale. Tutti i computer moderni sono, in sostanza, macchine di Turing universali.
Durante la seconda guerra mondiale, Turing fu uno dei principali crittoanalisti presso la Government Code and Cypher School di Bletchley Park, in Inghilterra. Non poté tuttavia dedicarsi al progetto di costruire una macchina informatica a programma memorizzato fino alla cessazione delle ostilità in Europa, nel 1945. Ciononostante, durante la guerra pensò molto alla questione dell’intelligenza artificiale. Uno dei colleghi di Turing a Bletchley Park, Donald Michie, in seguito ricordò che Turing spesso discusse di come i computer potessero imparare dall’esperienza e risolvere nuovi problemi attraverso l’uso di principi guida: un processo ora noto come risoluzione euristica dei problemi.
Turing tenne quella che fu probabilmente la prima conferenza pubblica a menzionare l’intelligenza artificiale (Londra, 1947), dicendo:
Quello che vogliamo è una macchina che possa imparare dall’esperienza.
Nel 1948 introdusse molti dei concetti centrali dell’IA in un articolo intitolato “Intelligent Machinery”. Tuttavia, Turing non lo pubblicò mai, e molte delle sue idee vennero successivamente reinventate da altri. Per esempio, una delle idee originali di Turing era quella di addestrare una rete di neuroni artificiali per eseguire compiti specifici.