Il problema della domanda sbagliata
Nel dibattito scolastico attorno all’intelligenza artificiale, si tende a oscillare tra due posizioni estreme: chi la vieta categoricamente e chi ne abusa senza mezzi termini. Entrambe le posizioni tradiscono una comprensione superficiale di cosa significhi davvero imparare a programmare.
La domanda corretta non è “usare o non usare l’IA”, ma una più precisa e più difficile:
Come integrarla senza compromettere le competenze cognitive che l’insegnamento della programmazione dovrebbe sviluppare?

Cosa si impara davvero quando si impara a programmare
Prima di ragionare sugli strumenti, è necessario chiarire gli obiettivi. Imparare a programmare non significa imparare una sintassi. Significa sviluppare quattro capacità fondamentali:
- La modellazione del problema: scomporre una situazione reale in elementi discreti e relazioni logiche.
- La astrazione: identificare il pattern generale dietro un caso specifico.
- Il debugging: ragionare in modo sistematico su perché qualcosa non funziona.
- La verifica logica: non fidarsi dell’output, ma capire perché è giusto o perché potrebbe essere sbagliato.
Queste capacità non emergono leggendo del codice. Emergono dall’attrito cognitivo del produrlo, del romperlo e del capire perché si è rotto. È qui che l’uso improprio dell’IA diventa pedagogicamente pericoloso.
Perché l’IA libera e non guidata è controproducente
Un modello linguistico come Claude o ChatGPT può generare, in pochi secondi, un programma funzionante per la quasi totalità degli esercizi scolastici di programmazione.
Questo è un fatto, e va guardato con chiarezza.
Il problema non è che il codice generato sia sbagliato, spesso è corretto. Il problema è che uno studente che ottiene codice senza averlo prima immaginato non sviluppa la capacità di valutarlo, correggerlo o adattarlo. Assomiglia a uno studente di matematica che impara a usare una calcolatrice prima di capire cosa significa moltiplicare: ottiene i risultati giusti, ma non ha costruito il modello mentale che gli permetterebbe di accorgersi quando il risultato è assurdo.
La Cognitive Load Theory, uno dei modelli più solidi della psicologia dell’apprendimento, ci dice che l’apprendimento efficace richiede un certo livello di sforzo cognitivo: troppo poco sforzo equivale ad apprendimento superficiale. L’IA, usata senza struttura, elimina precisamente quell’attrito necessario.

Il metodo ibrido strutturato: quattro fasi
Il modello più razionale, coerente con la teoria dell’apprendimento e con la realtà professionale, è un ciclo in quattro fasi. Lo schema in apertura lo riassume visivamente.
Fase 1 — Costruzione mentale (senza IA). Prima di aprire qualsiasi strumento, lo studente deve affrontare il problema da solo. Non si tratta di produrre codice funzionante, ma di produrre pensiero: scrivere lo pseudocodice, identificare i dati in input e in output, prevedere il comportamento del programma. Questo corrisponde al principio costruttivista di Piaget e Vygotsky: la conoscenza si costruisce attivamente, non si riceve passivamente. Saltare questa fase significa privare lo studente dell’unico momento in cui il cervello è davvero costretto a modellare il problema.
Fase 2 — Produzione assistita (con IA, ma guidata). A questo punto l’IA entra in gioco in modo produttivo. Lo studente può chiedere a un modello di generare il codice, proporre soluzioni alternative, spiegare passaggi specifici, ricercare pezzi di codice. Ma con un vincolo essenziale: deve confrontare la proposta dell’IA con la propria idea iniziale, identificare le differenze e capire il perché di ciascuna scelta. In pratica, l’IA non sostituisce il pensiero: lo interroga.
In questa fase l’IA è effettivamente uno strumento eccellente per gli snippet di codice. Un insegnante può spiegare un concetto (ad esempio, la ricorsione), e lo studente può chiedere all’IA esempi di implementazione in Python, JavaScript o qualunque linguaggio si stia studiando. L’efficacia didattica è alta, perché il codice arriva contestualizzato a un problema già compreso, non come sostituto della comprensione.
Fase 3 — Analisi critica (obbligatoria). Questa è la fase più importante, ed è quella che viene quasi sempre saltata quando l’uso dell’IA è libero e non strutturato. Lo studente deve esaminare il codice ottenuto riga per riga: spiegarlo ad alta voce o per iscritto, cercare bug anche quando il codice “funziona” (un programma può dare l’output corretto per un caso specifico ed essere logicamente sbagliato in termini di ottimizzazione e funzioni effettive), valutarne l’efficienza e proporre miglioramenti. Questo processo richiama il concetto di metacognizione: la capacità di ragionare sul proprio ragionamento. È, nel lungo periodo, la competenza più utile che un programmatore possa avere.
Fase 4 — Validazione e variazione. L’ultima fase rompe il codice intenzionalmente. L’insegnante cambia i requisiti del problema, introduce casi limite, chiede allo studente di adattare la soluzione. Questo impedisce il fenomeno del “copia intelligente”: uno studente che capisce davvero il codice sa modificarlo; uno che lo ha semplicemente ricevuto, no.

Come usare l’IA al meglio in classe: indicazioni concrete
L’IA funziona come strumento didattico quando è usata per comparare, non per sostituire. Alcune modalità pratiche:
Per gli snippet di codice, l’uso più efficace è quello contestuale: l’insegnante spiega un concetto, lo studente implementa la propria versione, poi chiede all’IA un’implementazione alternativa e le confronta. La differenza tra le due versioni diventa il punto di partenza per la discussione.
Per il debugging, l’IA può essere usata come secondo parere, non come primo. Lo studente tenta prima di trovare l’errore autonomamente, documenta le proprie ipotesi, poi chiede all’IA di analizzare il codice. Questo preserva l’attrito cognitivo necessario al debugging reale.
Per la spiegazione dei concetti, i modelli linguistici sono strumenti di grande efficacia: possono spiegare lo stesso concetto in modi diversi, adattarsi al livello dello studente, fornire analogie. Ma questa funzione sostituisce la consultazione passiva di un manuale, non l’interazione con l’insegnante.
Una regola operativa semplice ma efficace: se uno studente non sa spiegare il codice senza l’IA, quel codice non vale ai fini della valutazione. Non è punitivo è logico. Un codice che non si è capito non è una competenza, è un risultato temporaneo.
La distribuzione del tempo
Un’allocazione ragionevole del tempo in classe, coerente con le fasi descritte sopra:
Il 30% del tempo va dedicato ad attività senza IA: analisi del problema, pseudocodice, prime implementazioni autonome.
Il 50% va dedicato a lavoro con IA guidata: generazione assistita, confronto tra soluzioni, spiegazione dei concetti.
Il 20% finale va riservato a debugging senza IA: questo momento è intenzionalmente difficile, e la difficoltà è il punto.

L’intelligenza artificiale è uno strumento potente e, nel contesto giusto, didatticamente prezioso. Ma uno strumento non è un metodo. Introdurlo in classe senza una struttura pedagogica chiara rischia di produrre studenti capaci di ottenere codice senza essere capaci di ragionare sul codice — una competenza, nel lungo periodo, di scarso valore professionale.
Il metodo razionale non è né “IA vietata” né “IA libera totale”. È un ciclo strutturato in cui l’IA entra dopo che il cervello ha già fatto il lavoro difficile, e viene usata come strumento di confronto e di critica, non come scorciatoia. Questo richiede più impegno da parte degli insegnanti nella progettazione delle attività, ma è esattamente quello che distingue un’integrazione seria da una moda passeggera.
Articolo a cura di Fontani Nicolò