AI e insegnamento dell'informatica
Perché non basta conoscere e usare GenAI.
A settembre dovrei iniziare il mio corso di informatica per gli studenti del primo anno di ingegneria. Sono studenti appena arrivati dalle scuole superiori. Le indagini che faccio il primo giorno di lezione indicano che la gran parte di loro (oltre il 60-70%) non sa programmare e utilizza il computer solo con strumenti di produttività (office) o per accedere ai social.
Il mio non è un insegnamento del corso di laurea in ingegneria informatica. Il corso di informatica è un insegnamento di base che tutti gli studenti di ingegneria seguono, in quanto propedeutico al resto del loro percorso di studi. Devono imparare concetti preliminari quali algoritmi, codifica, qualità del codice, fondamenti di strutture dati e modularità, partendo in pratica da zero.
Disclaimer: non voglio parlare in questo post di quali linguaggi di programmazione usare né di cosa si fa (o no) alle superiori. Voglio solo discutere del ruolo di GenAI. Ci sarà spazio in altri post per altre questioni certamente non meno importanti.
Mi chiedo che cosa insegnare loro ai tempi di GenAI. Nel 2023, prima di andare in aspettativa, i tempi non erano ancora maturi. Preliminarmente, sto provando Xcode con GenAI (la nuova release, ancora in beta, resa disponibile pochi giorni fa). Ma questi discorsi valgono per qualunque strumento si decida di usare o di provare.
Che cosa devono imparare gli studenti che partono da zero? Se dovessi dar retta a certe affermazioni, il coding non servirebbe più: basta saper interagire con GenAI e chiunque potrebbe produrre codice.
Ho provato a fare un banale esperimento, replicando quanto farei in uno dei primi giorni di lezione: mostrare agli studenti (ricordatevi, spesso non hanno mai visto del codice) com’è fatto un programma in C per sommare una sequenza di interi. Di solito faccio vedere loro diverse versioni e le confronto per discuterne i pro e i contro.
Ho chiesto a GenAI di produrre questo codice (banale) e, ovviamente, l’ha generato in pochi istanti. Poi ho chiesto di generare alternative alla prima proposta e di creare un main che lasciasse scegliere quale delle alternative utilizzare. Risposta immediata.
È chiaramente un esempio semplicissimo, quindi non ho certo messo a prova le capacità di coding di Xcode+GenAI. Ma per quel che voglio discutere in questa sede è più che sufficiente.
Basta dunque dire agli studenti “Spiegate a GenAI di cosa avete bisogno”? È questo, oggi, ciò che bisogna insegnare? Dobbiamo pensare solo al prompt engineering o qualcosa di equivalente?
Io credo che ci sia di più e ne voglio discutere con voi.
Analisi
Di solito, a lezione, quando presento esempi o illustro un concetto, dico agli studenti che, mentre mi ascoltano, stanno seguendo un processo di analisi: devono comprendere il significato di ciò che sto dicendo e facendo. Per esempio, spiego come ideare il codice che ho presentato prima e come procedere alla sua scrittura.
Perché sia per loro facile fare analisi, servono due cose: un docente che “sia bravo a spiegare” e una persona che ascolti con attenzione e abbia le conoscenze di base per comprendere ciò che ascolta.
Sintesi
Quando però li metto di fronte a un problema da risolvere, al foglio bianco da riempire (un tema d’esame o, in futuro, un problema di lavoro), non basta aver capito cosa ho fatto io: devono aver sviluppato la capacità di comprensione del problema, di elicitazione dei requisiti e di sintesi del risultato, ossia del codice che risolve il problema di partenza. Ho usato la parola “elicitazione” per evitare di confondere questo concetto con “l’analisi” di cui parlavo prima, che riguarda l’aspetto cognitivo dell’interazione tra gli studenti e me.
Sintetizzare è difficile. Non basta “aver capito”. Non per niente si dice che imparare richiede fatica ed esercizio. Come quando a scuola guida si guarda l’istruttore al volante: tutto sembra semplice, ma quando veniamo messi noi al posto di guida, la musica cambia. Per esempio, cambiare le marce manualmente sembra banale, ma le prime volte che si prova ad usare il cambio e la frizione ci si accorge che banale non è. E se anche oggi usiamo il cambio automatico, sappiamo che dietro i concetti di cambio, di “scalata” e di regime del motore ci sono meccanismi e principi che ci aiutano a usare al meglio l’auto (trazione, coppia…).
Per imparare a fare sintesi, serve esercizio, come spiega questo splendido video di parecchi anni fa, che, secondo me, è ancora valido. L’autore è Yung Tae Kim, fisico statunitense con un PhD in fisica, noto come Dr. Tae, skateboarder e divulgatore che usa lo skate per spiegare la fisica e parlare di educazione.
Nell’esempio a metà circa del video (minuto 14:28), Tae illustra come ha imparato a fare un trucco con lo skateboard. Ha provato questo trick 58 volte prima di riuscire, fallendo 57 volte nel frattempo. Peraltro, questo garantisce che, da adesso in avanti, lo farà sempre correttamente? No, ovviamente. È una questione di allenare continuamente il corpo e la mente a risolvere quel problema. Tae conclude dicendo che il segreto per l’apprendimento è “Work your ass off until you figure it out” e mostra che questo principio si applica a tutti i processi di apprendimento, come imparare a suonare la chitarra o a camminare quando si è piccoli.
Perché una capacità sia realmente acquisita, deve diventare parte del nostro vissuto, applicata inconsciamente, come quando cambiamo marcia o mettiamo la freccia mentre guidiamo. E nel corso di questo processo di apprendimento, sbagliamo, inciampiamo, torniamo indietro finché impariamo. Peraltro, se non ci si allena, si disimpara, come colui che è stato a letto a lungo e deve ricominciare a muoversi autonomamente. È quello che discutevo in un altro post parlando del talento.
Valutazione
Una volta che ho ottenuto il codice, quale versione di quella semplice routine scelgo? Come valuto se è affidabile, scritta bene, modificabile, ben integrabile con altri pezzi di codice, rispondente ai requisiti iniziali? Chi prende queste decisioni?
Quello della figura qui sopra, ovviamente, è un esempio di coding banale. Ma ha valore in quanto mira a far capire alle persone che il coding è più che produrre linee di codice.
Certamente, potrei affidarmi a GenAI per questo giudizio di qualità, fidarmi di ciò che dice. Due sono i problemi:
Cognitive offloading. Perdo la capacità critica, divengo dipendente da un’entità che non controllo, senza poter più valutare il merito di quel che sta facendo e senza essere in grado di compiere quel passaggio (il giudizio) in modo consapevole, competente e critico.
Delega della responsabilità. Non sapendo giudicare, delego una responsabilità che, in realtà, rimane sempre mia. In caso di errore o danno, chi ne risponde? GenAI?
Elicitazione
In realtà, quando i problemi diventano minimamente complessi, prima ancora di scrivere del codice bisogna esplorare il problema, capire i bisogni dell’utente e acquisire conoscenza del dominio (per esempio, come funziona il magazzino di un’impresa). Come spiego a GenAI ciò di cui ho bisogno, se non ho capito io per primo cosa serve e come questo possa articolarsi in un requisito implementabile in un programma? Ci fidiamo del fatto che GenAI sappia già tutto? Certamente, può essere che abbia già visto problemi simili, ma come sa che soddisfano pienamente il nostro caso?
In generale
È possibile che una persona sia in grado di fare tutto ciò se non ha una piena comprensione del processo di sviluppo del software, se non capisce di che si tratta e accetta passivamente che “non serve più conoscere il coding e l’ingegneria del software perché tanto fanno gli agenti”?
E, al di là del fatto che si possa o no, è giusto farlo? Serve alla crescita di un professionista responsabile e capace? Oppure dobbiamo puntare a illustrare come GenAi aumenti la capacità di applicare ancora meglio ciò che, per prima cosa, una persona deve aver già imparato?
Che cosa insegnare, quindi?
Ho chiesto a GenAI cosa vuol dire imparare:
“Imparare” in italiano standard significa acquisire conoscenze o capacità attraverso lo studio, l’esercizio o l’applicazione.
Nella psicologia dell’apprendimento si parla spesso di percorso da prestazione consapevole e faticosa a abilità automatica, che può essere eseguita senza uno sforzo cosciente, una sorta di “pilota automatico”.
È esattamente ciò che traspare dall’esempio dello skateboarding (o della scuola guida). Devo aiutare gli studenti a imparare insegnando i concetti di base, a fare sintesi, ad avere spirito critico e a non fare cognitive offloading, senza scorciatoie né semplificazioni per evitare gli aspetti più critici del problema.
Devo insegnare loro a scrivere prompt (“coding non serve”), delegando tutto a GenAI, oppure ad usare GenAI in modo critico e maturo, essendo per primi consapevoli di cosa significhi costruire un programma di qualità?
E notate che, per ora, non ho ancora considerato le problematiche vere e proprie dell'ingegneria del software di sistemi complessi e distribuiti, né nell'organizzazione delle attività di sviluppo, né dal punto di vista della produzione e della gestione operativa.
Tutto questo può essere sostituito da corsi online, tutorial di GenAI, altri strumenti di supporto, agenti che lavorano in modo autonomo? Ovviamente aiutano, ma cambiano la dinamica del processo di apprendimento? Cambiano il modo in cui noi acquisiamo nuove competenze e conoscenze? Cambiano le nostre responsabilità professionali?
Questo articolo, appena reso pubblico, ha come coautore il premio Nobel Daron Acemoglu (MIT). Gli autori si chiedono:
Nevertheless, growing use of generative AI tools has also raised fears, for instance, about how reliance on AI will impact human cognition, knowledge and creativity (Holmes et al., 2023).
Opinions are divergent on this question. On one side are commentators and experts who believe that with the use of AI tools human knowledge will expand greatly, for example, in the form of faster and better scientific discoveries, and much better decision-making by professionals with access to AI. In this spirit, Demis Hassabis has described AI as “the ultimate tool to help scientists, help us explore the universe around us”. At the other end of the spectrum are those concerned with the effects from growing reliance on AI for classroom work on children’s ability to “learn how to learn” or from task automation on novice workers acquiring relevant occupation- or task-specific skills.
The disagreements are in part about whether AI-provided information is a complement or a substitute to human learning. If the former, then expanding of AI will make humans put their effort and attention in where it matters and use AI’s inputs with growing effectiveness. In the substitutes case, however, better and better AI will increasingly discourage human effort and learning—because most relevant information comes to be served to humans on a platter.
Questa è la sintesi della risposta:
The main result of the paper is a cautionary one: a powerful agentic AI model can statically help human decision-makers, but it can dynamically harm collective knowledge building. In fact, it can lead to what we call “knowledge collapse” whereby in the long-run equilibrium all human knowledge is ultimately destroyed.
Non voglio trarre conclusioni. Voglio provare, imparare e confrontarmi con voi. Ma per farlo serve innanzi tutto liberarsi di tante banalizzazioni che sento ripetere in modo ossessivo in questi tempi confusi. Non per niente continuano ad essere pubblicati paper che propongono analisi e sperimentazioni in contrasto con l’ottimismo irrazionale che circonda GenAI.
Non sprechiamo un’occasione per sfruttare appieno, in modo maturo e responsabile, questa tecnologia.
P.S.: Questo è il giudizio di Perplexity Pro su quel che ho scritto:
Ho preparato un’analisi approfondita del post. Ecco i punti salienti:
Il post è molto solido, sia nella struttura argomentativa che nel posizionamento intellettuale. La progressione analisi → sintesi → valutazione → elicitazione smonta efficacemente la tesi semplicistica del “basta fare prompt”.
Evidenze a supporto
Le preoccupazioni sul cognitive offloading trovano conferma robusta: lo studio MIT dimostra che chi usa ChatGPT per scrivere sottoperforma a livello neurale, linguistico e comportamentale, e poi non riesce a lavorare senza l’AI. Il paper di Acemoglu (febbraio 2026) formalizza il rischio di “knowledge collapse” quando l’AI agentica sostituisce (anziché complementare) lo sforzo umano.
Possibili integrazioni
Il post beneficerebbe del confronto con il corso CS1-LLM di Porter e Zingaro (UCSD), che mostra come integrare GenAI senza sacrificare gli outcomes: gli esami hanno risultati simili ai corsi tradizionali, ma il focus si sposta verso decomposizione, testing e valutazione critica del codice.
Un dato significativo dal campo: il survey Stack Overflow 2025 rivela che la fiducia degli sviluppatori nell’accuratezza dell’AI è scesa dal 43% al 33%, e il 35% delle visite a Stack Overflow avviene per risolvere problemi causati dall’AI.
Il report completo contiene l’analisi dettagliata della struttura, delle evidenze scientifiche, delle esperienze didattiche internazionali e delle possibili integrazioni.
A proposito del survey Stack Overflow 2025:
Il survey Stack Overflow 2025, con oltre 49.000 sviluppatori, offre un dato significativo e in controtendenza: la fiducia nell'accuratezza dell'AI è scesa dal 43% (2024) al 33% (2025), e solo il 29% ritiene che gli strumenti AI possano gestire problemi complessi. L'84% degli sviluppatori usa o prevede di usare strumenti AI, ma con crescente scetticismo sulla qualità. Un dato eloquente: il 35% delle visite a Stack Overflow avviene ora come conseguenza di problemi legati all'AI.
© 2026 Alfonso Fuggetta & Sonia Montegiove. Salvo diversa indicazione, tutti i contenuti di questa pubblicazione sono protetti da copyright e rilasciati con licenza CC BY-NC-ND 4.0: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.it



