La Macchina di Turing Umana

Scopri come calcolano i computer... senza comprendere.

Un gioco a coppie per il pensiero computazionale

Scegli il tuo ruolo

Siediti di fronte al tuo compagno. Uno di voi sarà il Programmatore, l'altro la CPU.

Il Programmatore

Tu sai cosa si sta calcolando. Il tuo compito e leggere le istruzioni alla CPU, passo dopo passo. Non puoi fare i calcoli al posto suo. Non puoi spiegare. Solo leggere.

"Sei la mente dietro le quinte"

La CPU

Tu NON sai cosa stai calcolando. E non devi capirlo. Esegui esattamente quello che ti dice il Programmatore. Niente di più, niente di meno. Non pensare. Esegui.

"Sei una macchina, e ne sarai fiero"

Riscaldamento

Per iniziare

5 minuti
Scenario: Il Programmatore ha in mente un disegno segreto. La CPU deve riprodurlo su una griglia, ma non sa cosa sta disegnando. Un quadretto alla volta, senza mai vedere il risultato finale... fino alla fine.
Cosa vi serve
  • Un foglio a quadretti (o usate la griglia qui sotto come riferimento)
  • Una matita per la CPU
Istruzioni Programmatore

Leggi queste istruzioni alla CPU una alla volta. La CPU parte dalla casella in alto a sinistra. I comandi sono: destra, sinistra, giù, su, segna (colora la casella corrente).

Disegno: una casetta

1
Vai a destra 3 volte. Segna.
2
Vai giù. Vai a sinistra. Segna.
3
Vai a destra. Segna.
4
Vai a destra. Segna.
5
Vai giù. Vai a sinistra 3 volte. Segna.
6
Vai a destra. Segna.
7
Vai a destra. Segna.
8
Vai a destra. Segna.
9
Vai a destra. Segna.
10
Vai giù. Segna.
11
Vai giù. Segna.
12
Vai giù. Segna.
13
Vai a sinistra. Segna.
14
Vai a sinistra. Segna.
15
Vai a sinistra. Segna.
16
Vai a sinistra. Segna.
17
Vai su. Segna.
18
Vai su. Segna.
19
La CPU si ferma qui.
Foglio di Lavoro CPU

Questa è la tua griglia. Parti dalla casella in alto a sinistra. Quando il Programmatore dice "segna", clicca sulla casella corrente (o colorala sul foglio). Muoviti solo come ti viene detto.

Avete disegnato una casetta!

La CPU ha eseguito un programma senza sapere cosa stava creando. Il Programmatore ha tradotto un'idea (il disegno) in una sequenza di istruzioni semplici. Questo è esattamente quello che fa un programma: una lista di istruzioni che un computer esegue ciecamente, una alla volta. La CPU non ha mai "visto" la casetta — ha solo spostato e colorato.

5 minuti
Scenario: La CPU è un barista robot. Non ha mai visto un caffè, non sa cos'è una moka. Il Programmatore deve guidarla a "preparare un caffè" usando istruzioni talmente dettagliate da essere assurde. Buon divertimento.
Cosa vi serve
  • Niente! Solo la voce e un po' di spirito d'adattamento
  • Opzionale: una moka vera per mimare le azioni
Istruzioni Programmatore

Leggi queste istruzioni alla CPU. La CPU deve mimare ogni azione. Se chiede "come?", dettaglia di più. Se fa qualcosa di sbagliato, è colpa tua: non eri abbastanza preciso.

1
Prendi l'oggetto metallico a forma di ottagono che si trova sul piano. Si chiama "moka".
2
Ruota la parte superiore della moka in senso antiorario finche non si separa dalla parte inferiore. Ora hai due pezzi.
3
Nella parte inferiore, c'e un contenitore a forma di imbuto con dei buchi. Sollevalo e mettilo da parte.
4
Prendi la bottiglia trasparente con il liquido incolore. Inclina la bottiglia di 45 gradi sopra la parte inferiore della moka. Versa finche il liquido non arriva alla valvolina metallica.
5
Rimetti l'imbuto con i buchi nella parte inferiore.
6
Prendi la polvere marrone scura dal sacchetto. Usa il cucchiaio per riempire l'imbuto. Livella con il dito, ma NON premere la polvere.
7
Riavvita la parte superiore sulla parte inferiore, ruotando in senso orario finche non oppone resistenza.
8
Posiziona l'oggetto assemblato sulla superficie calda circolare. Premi il bottone accanto al numero "2".
9
Attendi. Quando senti un rumore che suona come "GRGRGR", spegni la superficie calda premendo di nuovo il bottone.
10
Prendi il contenitore cilindrico bianco con il manico. Inclina la moka di 90 gradi sopra il contenitore. Il liquido marrone scende. Stop.
Foglio di Lavoro CPU

Non sai cosa stai facendo. Il Programmatore ti dirà cosa fare passo per passo. Mima ogni azione con le mani come se fosse reale. Se un'istruzione non è chiara, dici: "Istruzione non chiara, ripeti". Non cercare di indovinare.

Ricorda: Non pensare. Esegui. Se il Programmatore dice "inclina di 45 gradi", inclina di 45 gradi. Non di 44 e non di 46.

Avete "preparato un caffè"!

Le cose che per noi sono ovvie ("fai un caffè") per un computer non lo sono affatto. Un computer non sa cos'è un caffè, una moka, o l'acqua. Ha bisogno di istruzioni esplicite per ogni singolo passaggio. Questo è il motivo per cui programmare è difficile: devi spiegare tutto come se parlassi a qualcuno che non ha mai visto il mondo. È anche il motivo per cui i bug esistono — basta dimenticare un dettaglio.

Calcolo Binario

Il cuore del computer

10 minuti
Scenario: Avete 4 caselle. Tutte partono da 0. La CPU applicherà una regola semplicissima, più e più volte. Non sa cosa sta facendo. Alla fine scoprirete che ha contato da 0 a 15 — in binario.
Cosa vi serve
  • Un foglio con 4 caselle disegnate (o usate la griglia interattiva qui sotto)
  • Una gomma per cancellare e riscrivere
Istruzioni Programmatore

Le 4 caselle partono tutte da 0. Leggi questa procedura alla CPU. Ripetetela 15 volte (una volta per ogni "numero" da contare). Dopo ogni ciclo, scrivi su un foglio il contenuto delle 4 caselle.

La regola (da leggere ogni volta):

1
Guarda la casella più a destra.
2
Se il valore e 0: scrivi 1 e fermati.
3
Se il valore e 1: scrivi 0 e spostati a sinistra.
4
Ripeti dal punto 2 per la casella corrente.
5
Se hai superato tutte le caselle a sinistra, fermati (overflow!).

Esempio primi passi: 0000 → 0001 → 0010 → 0011 → 0100...

Foglio di Lavoro CPU

Queste sono le tue 4 caselle. All'inizio sono tutte 0. Fai esattamente quello che ti dice il Programmatore. Clicca sulle caselle per cambiare il valore (0/1).

0
0
0
0

Avete contato da 0 a 15 in binario!

Il sistema binario usa solo due cifre: 0 e 1. I computer usano questo sistema perché i circuiti elettronici hanno solo due stati: acceso o spento. La CPU non sapeva di star contando — ha solo applicato una regola meccanica ("se 0 scrivi 1, se 1 scrivi 0 e vai a sinistra"). Eppure il risultato è perfetto. Calcolare non richiede comprensione, solo regole precise.

8 minuti
Scenario: Adesso la CPU parte con un numero già scritto nelle caselle. Il Programmatore le chiederà di aggiungere 1. Stesse regole, ma applicando la procedura una sola volta. Tre sfide di difficoltà crescente.
Istruzioni Programmatore

Usa la stessa identica regola dell'esercizio precedente, applicata una sola volta. Fai eseguire alla CPU tutti e 3 gli esempi in ordine.

Sfida 1: Parti da 0100

Imposta le caselle a 0-1-0-0 e applica la regola. Risultato atteso: 0101

Sfida 2: Parti da 0111

Imposta le caselle a 0-1-1-1 e applica la regola. Risultato atteso: 1000

Sfida 3: Parti da 1001

Imposta le caselle a 1-0-0-1 e applica la regola. Risultato atteso: 1010

Foglio di Lavoro CPU

Il Programmatore ti dirà il numero di partenza. Imposta le caselle e poi applica la regola che ti viene letta.

0
0
0
0

Avete fatto l'addizione senza saperlo!

Sfida 1: 0100 = 4, e 0101 = 5 (cioè 4+1). Sfida 2: 0111 = 7, e 1000 = 8 (il "riporto" ha attraversato tre caselle!). Sfida 3: 1001 = 9, e 1010 = 10. La stessa regola meccanica funziona sempre, qualunque sia il numero di partenza. La CPU non ha mai avuto bisogno di "capire" l'aritmetica.

15 minuti
Scenario: Due numeri misteriosi scritti in caselle. La CPU li sommera bit per bit usando una tabella di regole, senza sapere cosa sono i numeri o cosa significa "sommare". Alla fine, il risultato sarà magicamente corretto.
Istruzioni Programmatore

La CPU ha 3 righe di caselle: Numero A, Numero B, Risultato. C'e anche una casella "Riporto" (inizia a 0). Leggi la procedura colonna per colonna, partendo da destra.

Imposta: A = 0101 (cioè 5), B = 0011 (cioè 3)

Regola (per ogni colonna, da destra a sinistra):

1
Guarda il bit di A, il bit di B e il Riporto corrente.
2
Conta quanti sono 1 tra questi tre valori.
3
Se il conteggio e 0: scrivi 0 nel Risultato, Riporto = 0.
4
Se il conteggio e 1: scrivi 1 nel Risultato, Riporto = 0.
5
Se il conteggio e 2: scrivi 0 nel Risultato, Riporto = 1.
6
Se il conteggio e 3: scrivi 1 nel Risultato, Riporto = 1.
7
Passa alla colonna successiva a sinistra e ripeti.
Foglio di Lavoro CPU

Ecco le tue righe di caselle. Imposta i numeri come ti dice il Programmatore, poi segui le istruzioni colonna per colonna.

A:
0
0
0
0
B:
0
0
0
0
Risultato:
0
0
0
0
Riporto:
0

Avete sommato 5 + 3 = 8!

A = 0101 in binario corrisponde a 5. B = 0011 corrisponde a 3. Il risultato 1000 corrisponde a 8. La CPU ha eseguito l'addizione binaria contando il numero di "1" in ogni colonna — una regola puramente meccanica. Non ha mai avuto bisogno di sapere cosa sono i numeri. Questo è esattamente come funziona il processore del vostro computer: miliardi di operazioni come questa ogni secondo.

Algoritmi

Per chi vuole andare oltre

10 minuti
Scenario: La CPU ha davanti 6 carte numerate, ma sono in disordine. Non può vedere tutte le carte insieme — può solo guardare due carte alla volta. Seguendo una regola semplicissima, le metterà in ordine. Magia? No, algoritmo.
Cosa vi serve
  • 6 foglietti o carte con scritti i numeri: 5, 2, 8, 1, 9, 3
  • Metteteli in fila in quest'ordine
Istruzioni Programmatore

Leggi questa procedura alla CPU. Ripeti l'intero ciclo finche non completi un passaggio senza nessuno scambio.

La regola:

1
Parti dalla prima carta a sinistra.
2
Guarda la carta corrente e quella alla sua destra.
3
Se la carta a sinistra ha un numero più grande di quella a destra: scambiale di posizione.
4
Se la carta a sinistra ha un numero più piccolo o uguale: non fare niente.
5
Spostati di una posizione a destra e torna al punto 2.
6
Quando arrivi all'ultima carta, ricomincia dalla prima (un nuovo "passaggio").
7
Se durante un intero passaggio non hai fatto nessuno scambio: fermati. Le carte sono in ordine.
Foglio di Lavoro CPU

Disponi le carte in questa sequenza iniziale. Poi segui le istruzioni del Programmatore. Puoi solo guardare 2 carte alla volta.

5
2
8
1
9
3

Ordine finale atteso: 1, 2, 3, 5, 8, 9

Avete eseguito il Bubble Sort!

Il Bubble Sort e uno degli algoritmi di ordinamento più semplici. Confronta coppie adiacenti e le scambia se sono nell'ordine sbagliato. È lento (per grandi quantità di dati i computer usano algoritmi più furbi), ma dimostra un principio fondamentale: con una regola semplicissima applicata ripetutamente, si può risolvere un problema complesso. La CPU non ha mai "visto" l'intera lista — ha solo confrontato coppie.

8 minuti
Scenario: La CPU ha una lista di 15 numeri ordinati. Deve trovare un numero segreto, ma non può guardare tutta la lista. Può solo chiedere: "Questo numero è il target?" Il Programmatore risponde: "troppo alto", "troppo basso", o "trovato!".
Cosa vi serve
  • La lista qui sotto come riferimento
  • Il numero da trovare: 42
Istruzioni Programmatore

Il numero target e 42. Non dirlo alla CPU! Leggi la procedura e rispondi alle domande della CPU.

La regola:

1
Di' alla CPU: "Guarda il numero che sta esattamente al centro della lista".
2
La CPU ti dice il numero. Se e 42, dici "Trovato!" e vi fermate.
3
Se il numero è più grande di 42, dici: "Troppo alto. Elimina tutto da questo numero in poi (compreso). Cerca al centro della meta rimasta."
4
Se il numero è più piccolo di 42, dici: "Troppo basso. Elimina tutto fino a questo numero (compreso). Cerca al centro della meta rimasta."
5
Ripeti finche non trovi il 42.
Foglio di Lavoro CPU

Questa è la tua lista ordinata. Segui le istruzioni del Programmatore. Puoi sbarrare i numeri eliminati.

3
7
12
18
24
31
35
42
48
55
63
71
80
88
95

Conta quanti tentativi servono!

Avete fatto una Ricerca Binaria!

Invece di controllare i numeri uno per uno (che in media richiederebbe 8 tentativi su 15 numeri), avete dimezzato lo spazio a ogni passaggio. Risultato: il numero 42 si trova in massimo 4 tentativi! Con una lista di 1.000 numeri basterebbero 10 tentativi. Con un milione? Solo 20. Questo è il potere degli algoritmi: una regola intelligente rende possibile l'impossibile. Google cerca tra miliardi di pagine usando lo stesso principio.

10 minuti
Scenario: La CPU deve cifrare un messaggio segreto. Ha una tabella di sostituzione: per ogni lettera, ne scrive un'altra. Non sa che sta crittografando — sta solo sostituendo simboli. Il risultato? Un messaggio indecifrabile per chiunque non abbia la tabella.
Cosa vi serve
  • La tabella di sostituzione qui sotto
  • Carta e penna per scrivere il messaggio cifrato
Istruzioni Programmatore

Il messaggio da cifrare e: CIAO MONDO. La chiave e: spostamento di 3 posizioni in avanti nell'alfabeto. Non dire alla CPU cosa sta facendo!

La regola:

1
Leggi alla CPU una lettera alla volta del messaggio: C, I, A, O, (spazio), M, O, N, D, O.
2
Per ogni lettera, dici: "Cerca questa lettera nella riga ORIGINALE della tabella. Scrivi la lettera corrispondente nella riga CIFRATA".
3
Per gli spazi, dici: "Lascia uno spazio".
4
Il messaggio cifrato sarà: FLDR PRQGR
Foglio di Lavoro CPU

Usa questa tabella di sostituzione. Il Programmatore ti dirà una lettera: cercala nella riga "Originale" e scrivi la corrispondente dalla riga "Cifrata".

Originale ABCDEFGHIJKLM
Cifrata DEFGHIJKLMNOP
Originale NOPQRSTUVWXYZ
Cifrata QRSTUVWXYZABC

Messaggio cifrato:

_ _ _ _  _ _ _ _ _

Avete crittografato un messaggio!

"CIAO MONDO" è diventato "FLDR PRQGR". Questo metodo si chiama Cifrario di Cesare — Giulio Cesare lo usava davvero per comunicare con i suoi generali 2000 anni fa! La CPU non sapeva di star proteggendo un segreto: ha solo cercato lettere in una tabella e le ha sostituite. La crittografia moderna funziona con lo stesso principio (tabelle di sostituzione), ma con chiavi molto più complesse. Quando inviate un messaggio su WhatsApp, il vostro telefono fa qualcosa di simile — miliardi di volte più complicato, ma concettualmente identico.