A fine novembre 2016 l’allora Ministra dell’Istruzione Stefania Giannini, nell’ambito dell’evento dedicato al Piano Nazionale Scuola Digitale alla Reggia di Caserta, ha annunciato l’avvio di un’iniziativa di importanza storica per la formazione informatica nella scuola italiana.
Non solo per il significativo investimento finanziario (100 milioni di Euro, di cui 65 per la primaria) ma anche per aver ribadito ancora una volta la centralità di questo tipo di formazione: «il pensiero computazionale altro non è che un nuovo linguaggio, il nuovo necessario modo per entrare in contatto con la realtà, anche, e soprattutto, se non si fa di mestiere». Venendo da una docente universitaria di Glottologia e Linguistica, si tratta di un riconoscimento culturale particolarmente gradito. L’investimento è finalizzato a far sì che: «il prossimo anno, tutte le scuole primarie avranno annualmente 60 ore di coding e quindi la possibilità di avere tra 10 anni una generazione di giovani italiani perfettamente alfabetizzati in quello che si chiama nuovo pensiero critico».
Ho già descritto gli elementi più caratteristici del pensiero computazionale, il termine che denota appunto gli aspetti culturali dell’informatica, indipendentemente dalla tecnologia digitale in cui essa si manifesta ormai dovunque intorno a noi.
Mi rendo conto però che, probabilmente a causa della sua novità, il pensiero computazionale viene molte volte descritto in modo parziale e quindi impreciso. Presento quindi la rielaborazione di una mia precedente definizione: “il pensiero computazionale è un processo mentale per far risolvere problemi ad un agente, sia esso persona o macchina, fornendogli una serie di istruzioni che deve eseguire in autonomia ”. Essa esplicita, in un contesto di divulgazione, tutte e sole le componenti essenziali, senza le quali il pensiero computazionale diventa altro. Più avanti discuterò in dettaglio i vari termini indicando, in qualche caso, alcune semplificazioni che ne alterano la natura. Per completezza scientifica segnalo anche la definizione più formale proposta da Jeannette Wing, la scienziata che ha contribuito a popolarizzare un termine introdotto da Seymour Papert.
Nel frattempo ricordo, a scanso di critiche superficiali, che per insegnare l'informatica non sono indispensabili quei dispositivi ed infrastrutture tecnologiche che in molti, forse troppi, casi sono obsoleti, se non assenti, nelle nostre scuole. Sarà molto più importante – affinché la novità diventi permanente e strutturale – la formazione degli insegnanti e l’organizzazione dell’iniziale fase transitoria. Ma non ho dubbi che i tecnici del Ministero sapranno gestire bene questi aspetti.
Per chi vuole toccare con mano “come si fa a studiare informatica senza i computer” segnalo alcune fonti. Prima di tutto le lezioni tradizionali disponibili sul sito di Programma il Futuro, il progetto MIUR – CINI che in due anni ha già esercitato al pensiero computazionale quasi un milione e mezzo di studenti per circa 8 ore a testa. Sono la versione italiana di alcune delle lezioni unplugged realizzate da Code.org. Vi è poi la traduzione italiana dell’eccellente libro gratuito “CS Unplugged”, che è anche un sito web (in inglese) contenente quasi 40 attività, per studenti di tutte le età.
Ho già discusso sull’importanza di questa formazione per lo sviluppo delle capacità cognitive razionali, che deve accompagnare e NON sostituire altre discipline, egualmente importanti per un’equilibrata e completa maturazione degli studenti. Sulla necessità di insegnare l’informatica come disciplina scientifica a tutti e di iniziare nella scuola primaria c’è un vasto consenso nei paesi occidentali. È scritto nel rapporto di gennaio 2012 “Shut down or restart ” della Royal Society, una delle associazioni scientifiche più prestigiose al mondo, sulla base del quale in UK da settembre 2014 è stato introdotto l'insegnamento dell'informatica nelle scuole di tutti gli ordini e gradi. È scritto nel rapporto di maggio 2013 dell’Accademia Francese delle Science, “Il est urgent de ne plus attendre ”.
Ovviamente, come per la matematica alle elementari non si insegna il calcolo differenziale (e non lo si fa neanche alle medie o alle superiori) così per l'informatica bisogna insegnare i concetti di base in modo adatto allo specifico livello di maturazione degli studenti, ed in modo indipendente dalla tecnologia.
Ecco allora l'analisi dei singoli termini della definizione:
- Processo mentale: Specifica il concetto sottolineando la sua indipendenza da tecnologie, strumenti concreti e sistemi fisici. Identifica pertanto l'importanza metodologica del pensiero computazionale, che è applicabile in molti ambiti disciplinari ed è riconosciuto come strumento concettuale per la conoscenza del mondo da scienziati come Peter J. Denning: «Computing is the fourth great domain of science. It is as fundamental as the physical, life, and social sciences» [P.J. Denning e P.S. Rosenbloom, Computing: the fourth great domain of science, Communications of the ACM, 2009]. Inoltre, lungi dal trasformare gli studenti in robot, li aiuta a sviluppare il pensiero critico, cioè a «non fermarsi all’apparenza dei fenomeni ma … a chiedersi cosa ci sia dietro». È utile anche ricordare qui quanto ha scritto nel 1968 George Forsythe, analista numerico ed uno dei padri della formazione universitaria in informatica, in quanto fondatore del dipartimento di informatica dell’Università di Stanford negli Usa, uno dei primi a nascere ed uno dei migliori al mondo: «Le acquisizioni più valide nell’educazione scientifica e tecnologica sono quegli strumenti mentali di tipo generale che rimangono utili per tutta la vita. Ritengo che il linguaggio naturale e la matematica siano i due strumenti più importanti in questo senso, e l’informatica sia il terzo.» (p.456).
- Far risolvere problemi: Un errore fondamentale è descrivere il pensiero computazionale unicamente come la competenza che permette di risolvere problemi (problem solving). Se così fosse non sarebbe diverso dalle competenze di tipo logico-matematico. I matematici hanno risolto problemi per millenni. Ma solo quando hanno iniziato a riflettere sulla possibilità e sulle implicazioni di “far risolvere” i problemi a qualcun altro, si è messa in moto un’evoluzione che ha portato alla nascita della nuova disciplina scientifica, l’informatica. Correlata a questa semplificazione vi è quella di ritenere che l’essenza del pensiero computazionale sia decomporre il problema in sotto-problemi, per poi ricombinarli. Ma molte volte non è richiesto questo approccio, che non è caratterizzante per il pensiero computazionale.
- Ad un agente: Il termine “agente” indica chi esegue le istruzioni e ne mette in rilievo il suo essere distinto rispetto al soggetto in cui avviene il processo mentale. Anche questo è un elemento essenziale per caratterizzare appropriatamente l’informatica rispetto alla matematica da cui è nata. Chi specifica la soluzione di un problema nell’ambito della matematica è generalmente anche colui che la esegue. Nell’informatica la specifica della soluzione prevede necessariamente un esecutore – esterno e diverso dal risolutore – le cui capacità operative sono rigidamente e meccanicamente predefinite. Sottolineo che l’agente agisce sui dati che acquisisce per produrre dati come risultato della sua azione. Si tratta quindi di un agente in grado di elaborare informazione (information processing agent). È proprio questo approccio che costituisce il valore metodologico e interdisciplinare dell’informatica, perché consente di ottenere un punto di vista sul mondo in grado di complementare la descrizione che sono in grado di farne gli altri tre dominî della scienza. La bioinformatica offre in questo momento l’esempio più noto di tale vantaggio, ma tutte le discipline, anche quelle non scientifiche come l’arte [E. Nardelli: A viewpoint on the Computing-Art dialogue, Leonardo, 2014], sono in grado di trarne giovamento.
- Sia esso persona o macchina: È una rigidità inutile ritenere che il pensiero computazionale serva solo per gestire macchine, cioè computer. Istruire una squadra di collaboratori a risolvere un problema richiede almeno le stesse capacità cognitive allenate dal pensiero computazionale: questo costituisce uno dei suoi apporti formativi che lo rendono estremamente utile per l’istruzione moderna. Ho già discusso sull’importanza di questa formazione per lo sviluppo delle capacità cognitive razionali, che deve accompagnare e NON sostituire altre discipline, egualmente importanti per un’equilibrata e completa maturazione degli studenti. Poi ne servono ovviamente molte altre: cognitive, emozionali e relazionali.
- Fornendogli una serie di istruzioni: Vuol dire scrivere un programma, cioè codice informatico (cioè, fare coding). Ritenere che il pensiero computazionale sia finalizzato ad imparare a programmare (cioè sia il coding) è una semplificazione snaturante perché scrivere un programma informatico vuol dire niente altro che dare concretezza al processo mentale retrostante. Da questo punto di vista sussiste, tra pensiero computazionale e coding, un po’ la stessa relazione che esiste tra pensiero e linguaggio: quest’ultimo è la forma mediante cui rendiamo concreto il pensiero, cioè ne costituisce una rappresentazione, così come un programma (il codice informatico) costituisce una rappresentazione del pensiero computazionale. Ritenere che l’obiettivo primario della formazione al pensiero computazionale nelle scuole sia scrivere codice è come pensare che quello dell’insegnamento della matematica sia imparare a fare i calcoli.
- Che deve eseguire in autonomia: L’ultimo elemento, da non trascurare, è l’autonomia dell’esecutore rispetto al soggetto in cui il processo mentale avviene. Nel caso si tratti di un agente “umano”, il programma che costituisce la rappresentazione di quel pensiero computazionale che ha specificato la soluzione del problema può, in una certa misura, contare sull’intelligenza dell’esecutore. Nel caso di un agente “meccanico”, cioè di una macchina qual è un computer, non possiamo far leva su alcuna intelligenza (nel senso umano del termine) e dobbiamo quindi esplicitare ogni più piccolo dettaglio. L’allenamento fatto in questo modo da studenti sarà utile nel lavoro che sarà svolto come adulti, quando gli esecutori cui daremo istruzioni saranno persone in grado di colmare le eventuali lacune.
-----
Una sintetica versione preliminare di questo articolo è stata pubblicata in due parti sul "Il Fatto Quotidiano" il 30 novembre 2016 e il 2 gennaio 2017.
Ringrazio i lettori che con i loro commenti alle versioni preliminari hanno contribuito a estendere e migliorare la presentazione.