La prima esperienza in aula con Logo# è avvenuta in maniera del tutto inaspettata, senza essere stata programmata, sfruttando semplicemente un'ora di supplenza.
Venerdì 9 ottobre 2026, alla quarta ora, ho avuto una supplenza in una classe prima del liceo classico. Visto il giorno e l'orario, non sembrava esserci una gran voglia di fare matematica. Così, sapendo che un collega mi aveva appena comunicato di aver installato i micromondi Logo# sui computer del laboratorio e delle LIM, mi sono lanciato: ho proposto alla classe un «gioco» basato sul coding.
1. Per iniziare: scrivere al computer in linguaggio naturale
Dopo una breve introduzione al coding e una ricognizione delle esperienze pregresse degli studenti, è emerso che la maggior parte della classe aveva già utilizzato Scratch.
Ho quindi aperto il micromondo Logo# Turtle, condividendo la schermata con tutta la classe attraverso la LIM. Ho spiegato brevemente il funzionamento dell’applicazione: nella finestra di sinistra avremmo scritto del codice in un linguaggio di programmazione che non conoscevano, mentre nelle altre due finestre avremmo potuto osservare i risultati delle operazioni eseguite. Alcune istruzioni avrebbero prodotto anche un risultato grafico: la turtle, rappresentata da un triangolino rosso, si sarebbe mossa sullo schermo tracciando una linea bianca a ogni spostamento.
Non ho fatto alcun accenno iniziale alle regole di sintassi di Logo#. Ho dato loro una sola, semplice indicazione: scrivere, utilizzando per lo più parole e soltanto qualche numero, ciò che avrebbero voluto far fare al computer.
Ho spiegato anche come interpretare i colori delle parole nel codice: quando una parola si illumina, assumendo una colorazione specifica, significa che il programma la riconosce come un’istruzione del linguaggio. Se invece rimane bianca, significa che non viene riconosciuta in quel contesto e che, così com’è scritta, non può essere eseguita. I numeri, invece, sono bianchi per impostazione predefinita.
Ho invitato uno studente a sedersi davanti al computer collegato alla LIM, mentre io giravo per la classe proponendo domande stimolo e raccogliendo le idee dei compagni.
Dopo alcune proposte su cosa scrivere, lo studente ha preso l’iniziativa e ha digitato:
vai avanti di 300 px
Tra le parole inserite, «vai», «di» e «px» non si sono colorate, mentre «avanti» è stata riconosciuta. Anche il numero era rimasto bianco, ma, come avevo appena spiegato, questo non significava che fosse sconosciuto al programma.
Abbiamo quindi riformulato l’istruzione in:
avanti 300
L’esecuzione ha prodotto esattamente ciò che ci aspettavamo: la turtle si è spostata in avanti, tracciando un segmento lungo 300 pixel.
2. L'obiettivo diventa disegnare un quadrato
A questo punto, iniziando a capire il meccanismo, gli studenti si sono posti autonomamente un obiettivo: disegnare un quadrato. Non li avevo indirizzati verso questa attività; l’idea è nata direttamente dalla classe.
Hanno cominciato a ragionare su cosa scrivere e, alla fine, è stata scelta la proposta sostenuta dalla maggioranza:
destra 300
Nei tentativi precedenti, infatti, la parola «destra» si era illuminata proprio come «avanti», quindi gli studenti avevano ipotizzato che servisse a tracciare il segmento successivo.
Il risultato, però, non è stato quello atteso. Tutti si aspettavano che la turtle disegnasse un altro lato del quadrato, mentre sullo schermo è comparsa una figura diversa da quella immaginata.
Dal fondo della classe, una studentessa ha capito subito cosa non avesse funzionato: la turtle aveva ruotato di 300 gradi! Il comando «destra», quindi, non serviva a tracciare un segmento, ma a modificare la direzione del movimento.
Da lì a poco, la classe è riuscita a disegnare correttamente il quadrato, comprendendo che, dopo ogni lato, sarebbe stato necessario effettuare una rotazione di 90 gradi. È stato quindi digitato il codice mostrato in figura.
avanti 300 destra 90 avanti 300 destra 90 avanti 300 destra 90 avanti 300 destra 90
Che ha prodotto il seguente risultato grafico.
3. Dalla ripetizione dei comandi all'idea di ciclo
Lasciando sulla LIM il codice appena scritto, ho invitato gli studenti a ragionare su cosa avesse di particolare. Dopo una rapida analisi, è emersa un’osservazione interessante: non avevamo fatto altro che ripetere quattro volte gli stessi comandi, uno per ogni lato del quadrato.
Ho chiesto loro di provare a comunicare questa idea al computer: disegnare sempre un quadrato, ma senza dover riscrivere ogni volta la stessa sequenza di istruzioni.
Dopo un cambio dello studente seduto davanti al monitor, il primo tentativo è stato:
(avanti 300 destra 90) x 4
Il programma ha restituito un errore. Ho fatto notare allo studente che aveva proposto il codice che, fino a quel momento, non avevamo mai utilizzato una notazione matematica come «x 4». Avevamo sempre cercato di esprimere le nostre intenzioni attraverso parole riconosciute dal linguaggio. Gli ho quindi chiesto di riprovare, cercando una formulazione più vicina al linguaggio naturale.
Sono seguiti diversi tentativi, tra cui:
(avanti 300 destra 90) per 4 volte
Finché, finalmente, è comparsa una nuova parola illuminata:
(avanti 300 destra 90) ripeti 4 volte
La parola «ripeti» veniva riconosciuta dal programma, ma il codice non produceva ancora l’effetto desiderato. Dopo altri tentativi, gli studenti sono arrivati alla formulazione:
ripeti 4 (avanti 300 destra 90)
A questo punto ho introdotto per la prima volta il concetto di sintassi, facendo un’analogia con le regole grammaticali da imparare quando si studia una nuova lingua.
Ho spiegato rapidamente che, in un’istruzione come quella appena scritta, il linguaggio richiedeva le parentesi quadre al posto di quelle tonde. La sequenza corretta era quindi:
ripeti 4 [avanti 300 destra 90]
Gli studenti hanno corretto immediatamente il codice e, finalmente, la turtle ha disegnato il quadrato desiderato!
4. Insegnare al computer una nuova parola
Dopo l'utilizzo della parola "ripeti", gli studenti hanno intrapeso percorsi diversi di ragionamento. Qualcuno ha iniziato a voler disegnare un quadrato dall’altro lato, sostituendo «destra» con «sinistra». Altri hanno provato a tracciare poligoni diversi, come un esagono o un pentagono.
Infine, uno studente ha posto una domanda che ha aperto una nuova possibilità: «possiamo fare in modo che ci sia una nuova parola che si illumina e che significa fare un quadrato come questo?»
In pratica, ci stavamo avvicinando alla definizione di una procedura: insegnare al computer una nuova parola, costruendo un’istruzione personalizzata a partire dai comandi che il linguaggio già conosce.
Anche in questo caso è bastata una breve spiegazione delle regole necessarie per definire una procedura. Gli studenti sono riusciti a insegnare al computer una nuova parola, scegliendo di chiamarla «faiquadrato» e scrivendo il codice mostrato in figura.
def faiquadrato ripeti 4 [avanti 300 destra 90] fine
5. Dal quadrato al poligono regolare: verso la generalizzazione
La fine dell’ora si stava avvicinando. Gli studenti erano divertiti e, guidati da alcune domande stimolo, avevano iniziato a chiedersi se fosse possibile ragionare in termini più generali. Qualcuno aveva già proposto un’idea del tipo: «Ripetiamo non quattro volte, ma tante volte quanti sono i lati. E l’angolo non sarà più 90 gradi, ma 360 diviso il numero dei lati». Ci stavamo quindi avvicinando alla generalizzazione della procedura per un numero (n) di lati e, di conseguenza, alla costruzione di un poligono regolare qualsiasi, ragionando sulla relazione tra il numero dei lati e l’angolo di rotazione della turtle. Purtroppo, proprio mentre il ragionamento stava prendendo forma, è suonata la campanella e non abbiamo avuto il tempo di proseguire.
6. Che cosa abbiamo fatto in una sola ora?
Quello che mi porto a casa da questa prima, improvvisata sperimentazione di Logo# è che, utilizzando il programma sulla LIM, in una sola ora gli studenti hanno lavorato su diversi aspetti del coding e del pensiero computazionale.
- Comandi di base. Hanno utilizzato le prime istruzioni del linguaggio di programmazione senza la necessità di conoscere fin dall’inizio tutte le regole di sintassi.
- Debugging. L’istruzione «destra 300» non ha prodotto il risultato sperato, ma l’osservazione di ciò che era effettivamente accaduto ha permesso di comprendere l’errore e correggere il ragionamento.
- Cicli di ripetizione. Gli studenti hanno riconosciuto una regolarità nella sequenza di comandi utilizzata per disegnare il quadrato e hanno cercato di esprimerla attraverso un’unica istruzione ripetuta quattro volte.
- Definizione di procedure. Sono riusciti a insegnare al computer una nuova parola, trasformandola in un nuovo comando. Per farlo, hanno dovuto spiegare al computer che cosa avrebbe dovuto fare utilizzando le istruzioni già disponibili nel linguaggio.
Esperienze di questo tipo non sono certamente una novità per il tema del coding in didattica. Forse, però, ciò che caratterizza Logo# è il modo in cui gli studenti hanno dovuto realizzare ciò che avevano in mente: non utilizzando blocchi visuali e istruzioni preimpostate, ma scrivendo da tastiera le parole con cui esprimere il proprio ragionamento.
Hanno quindi dovuto rielaborare il proprio pensiero e tradurlo in una forma comprensibile per il computer, organizzandolo in una sequenza di istruzioni precise. È proprio in questo passaggio che, a mio avviso, si manifesta la caratteristica principale del pensiero computazionale: la necessità di trasformare un’intenzione in una procedura eseguibile da una macchina.
Nella mia modesta opinione, questo processo può lasciare agli studenti qualcosa di significativo. Gli ambienti visuali, come Scratch, sono strumenti validissimi e possono offrire risultati grafici anche molto efficaci; tuttavia, la possibilità di comporre programmi attraverso blocchi già predisposti guida fortemente l’utente nella costruzione della sequenza. In Logo#, invece, la necessità di trovare le parole giuste, capire quali istruzioni siano riconosciute e individuare la sintassi corretta aggiunge uno sforzo di traduzione del pensiero che ritengo didatticamente interessante.
Non si tratta, naturalmente, di stabilire quale ambiente sia migliore in assoluto, ma di riconoscere che strumenti diversi possono favorire processi di apprendimento differenti.
Questi primi risultati della sperimentazione serviranno a migliorare i micromondi esistenti, a progettarne di nuovi e, in ogni caso, a raccogliere e condividere esperienze utili per portare avanti la ricerca sul pensiero computazionale ed il coding in didattica della matematica.
Perché, indipendentemente da come proseguirà la sperimentazione, credo che valga la pena raccontare ciò che accade in aula, soprattutto quando un’attività nata quasi per caso offre spunti di riflessione che meritano di essere approfonditi.
In conclusione, la cosa più bella per un docente è proprio questa: alla fine, in quell’ora di supplenza, senza nemmeno volerlo, abbiamo fatto matematica!