La logica del semaforo: insegnare le macchine a stati ai bambini di dieci anni

Un semaforo è la prima macchina a stati perfetta: ogni colore è uno stato, ogni cambio una transizione e il tempo decide quando passare oltre. Costruite il ciclo fisso, poi aggiungete un pulsante.
Un semaforo è la migliore prima macchina a stati che un bambino possa costruire, perché un bambino di dieci anni ne conosce già a memoria tutte le regole. Ogni colore è uno stato, ogni cambio è una transizione, e il tempo è semplicemente quanto la macchina attende prima di passare oltre. Nominate ad alta voce queste tre parti e gran parte del codice si scrive da sé.
Le tre parole che aprono la porta
Una macchina a stati è un modo di descrivere qualcosa che può trovarsi in una sola situazione alla volta. Un semaforo è o rosso, o verde, o giallo. Non è mai due cose insieme, e segue sempre lo stesso percorso. È questa singola regola a renderlo uno strumento didattico così pulito.
Disegnatelo alla lavagna come tre cerchi con delle frecce tra loro. I cerchi sono gli stati. Le frecce sono le transizioni. Chiedete alla classe quando ciascuna freccia debba scattare e avrete già descritto l'intero programma prima di scrivere una sola riga.
Costruite prima il ciclo fisso
Partite dalla versione più semplice: rosso per cinque secondi, verde per cinque secondi, giallo per due, poi di nuovo rosso, all'infinito. In ogni istante è acceso un solo colore. Quel vincolo è la lezione. Se due luci si accendono insieme, la macchina si trova in uno stato impossibile, e i bambini individuano l'errore in fretta.
Potete costruirlo con tre LED su una breadboard, con le luci integrate della scheda sheenbot∞, oppure interamente nel browser con l'editor a blocchi quando in aula non c'è hardware. Il cablaggio cambia; il diagramma degli stati no.
Aggiungete il pulsante pedonale
Ora rendetelo interessante. Un pulsante pedonale è un evento, e gli eventi sono la ragione per cui le macchine a stati battono un semplice ciclo temporizzato. Quando qualcuno preme il pulsante durante il verde, la luce non deve saltare di colpo al rosso. Deve completare il suo turno, passare al giallo, poi al rosso, e restarci un po' più a lungo perché una persona possa attraversare.
Questo insegna due idee in una volta. Primo, una transizione può essere innescata da un evento oltre che da un timer. Secondo, alcune transizioni sono condizionate: la pressione conta solo mentre la luce è verde. Una macchina a stati per ragazzi costruita attorno a un semaforo è in realtà una lezione su quando una regola si applica, non solo su qual è la regola.
Perché questo schema si trova ovunque
Una volta che un bambino riesce a vedere stati e transizioni in un semaforo, comincia a trovarli dappertutto. Un forno a microonde è inattivo, in cottura o in pausa. Il personaggio di un videogioco è fermo, corre o salta, e non può fare due cose insieme. Distributori automatici, porte degli ascensori e i messaggi che i dispositivi si scambiano funzionano tutti secondo la stessa forma. È una delle poche idee dell'informatica che un bambino di dieci anni e un ingegnere in attività disegnano esattamente allo stesso modo.
Un piano di lezione da 40 minuti
- Disegnate insieme il diagramma a tre stati prima di toccare qualsiasi codice, circa cinque minuti.
- Programmate il ciclo fisso rosso-verde-giallo ed eseguitelo finché i tempi non sembrano giusti.
- Accendete deliberatamente due luci insieme perché la classe veda uno stato impossibile.
- Aggiungete il pulsante pedonale e decidete, in gruppo, esattamente quando la pressione debba contare.
- Chiudete nominando tre macchine di casa che funzionano allo stesso modo.
L'intero progetto sta dentro una sola sessione e richiede quasi nessun vocabolario nuovo. Se volete una versione già pronta con le schede di lavoro, si trova nel nostro programma di robotica, e potete provare una lezione con una lezione di prova gratuita.



