

Una definizione
Seymour Papert usò per primo l’espressione “pensiero computazionale” (Computational Thinking) in Mindstorms, un testo del 1996 in cui proponeva una particolare didattica della matematica attraverso il linguaggio di programmazione chiamato Logo.
Dopo Papert, sono stati diversi i tentativi per arrivare a precisare il significato di “pensiero computazionale”, ma solo nel 2006 Jeannette Wing, direttrice del Dipartimento di informatica della Canergie Mellon University, riuscì a formulare una definizione capace di mettere d’accordo molti studiosi:
il pensiero computazionale è un processo di formulazione di problemi e di soluzioni in una forma che sia eseguibile da un agente che processi informazioni.
La stessa Wing ha inoltre messo a fuoco alcune caratteristiche del Computational Thinking: esso non consiste semplicemente nel saper programmare, ma nel pensare a diversi livelli di astrazione; è un’abilità fondamentale per tutti, che dovrebbe diventare la quarta abilità di base oltre al saper “leggere, scrivere e fare di conto”.
Il pensiero computazionale è un processo mentale che consente di risolvere problemi di varia natura seguendo metodi e strumenti specifici, pianificando una strategia; abitua al rigore e quindi rende possibili gli atti creativi. Permette di interagire con persone e strumenti, di fruire delle potenzialità delle macchine quali oggetti capaci di compensare le lentezze o l’imprecisione dell’uomo, se ben programmati.
Come tutte le scienze, ha i suoi fondamenti formali nel linguaggio matematico e ha a che fare con oggetti del mondo reale: il pensiero computazionale “Complements and combines mathematical and engineering thinking” (Wing).
Il pensiero computazionale attiene al mondo delle idee e delle strategie, è per tutti, in ogni luogo: può essere applicato a qualunque situazione ed essere appannaggio non solo degli informatici.
Il pensiero computazionale a scuola
Colta la grande potenzialità derivante dallo sviluppo del pensiero computazionale, i Governi e i Ministeri dell’Istruzione in tutto il mondo si stanno occupando di rivedere i curriculi e di introdurre strumenti metodologici e tecnologici affinché il pensiero computazionale sia oggetto di insegnamento nelle scuole.
In Italia le Indicazioni Nazionali del 2012 hanno introdotto l’indicazione di svolgere attività legate al pensiero computazionale, in particolare nell’ambito della Tecnologia; successivamente la legge 107 del 13 luglio 2015 ha collocato il pensiero computazionale tra gli strumenti culturali per la cittadinanza, cioè tra quelle abilità e competenze che realizzano la piena cittadinanza.
In ambito europeo, la Commissione Europea ha emanato il Digital Education Action Plan (Brussels, 2018), che ha stabilito alcune priorità nell’ambito dello sviluppo delle competenze digitali degli studenti e dei cittadini europei.
Tra queste priorità, la seconda riguarda le competenze computazionali e di programmazione: “L’acquisizione delle competenze digitali deve iniziare in giovane età e continuare per tutta la vita. Ciò è possibile nell’ambito dei programmi di studio o a livello extra-scolastico. I giovani europei sono accaniti utenti di Internet, app e giochi, ma devono anche conoscere meglio le strutture soggiacenti e gli algoritmi di base e diventare creatori e leader digitali”.
Sotto l’impulso dell’emanazione di questo importante documento europeo, l’Italia ha dedicato al pensiero computazionale un intero paragrafo del documento Indicazioni Nazionali e Nuovi Scenari, del febbraio 2018: “Lingua e matematica, apparentate, sono alla base del pensiero computazionale […]. Sostanzialmente, si tratta di un’educazione al pensiero logico e analitico diretto alla soluzione di problemi. Impiegandolo in contesti di gioco educativo (es. la robotica), dispiega al meglio le proprie potenzialità, perché l’alunno ne constata immediatamente le molteplici e concrete applicazioni.
Ciò contribuisce alla costruzione delle competenze matematiche, scientifiche e tecnologiche, ma anche allo spirito di iniziativa, nonché all’affinamento delle competenze linguistiche. Nei contesti attuali, in cui la tecnologia dell’informazione è così pervasiva, la padronanza del Coding e del pensiero computazionale possono aiutare le persone a governare le macchine e a comprenderne meglio il funzionamento, senza esserne invece dominati e asserviti in modo acritico.”
A febbraio 2019 è stato pubblicato un documento UNESCO: Paris Call: Software Source Code as Heritage for Sustainable Development, che al punto 18 chiede agli Stati di: “Integrate the scientific fundamentals of computing/informatics within general education for all citizens”.
Il pensiero computazionale merita di essere coltivato e applicato in modo interdisciplinare perché costituisce una sorta di fertilizzante che prepara il terreno sia per l’uso consapevole della tecnologia sia per comprendere gli aspetti logici e la struttura profonda delle attività che si svolgono.
Il pensiero computazionale non ha bisogno della tecnologia, viene prima della tecnologia: è un’abilità trasversale, un processo di problem solving utile in qualunque contesto.
Sempre i Nuovi Scenari 2018 recitano: “Ogni situazione che presupponga una procedura da costruire, un problema da risolvere attraverso una sequenza di operazioni, una rete di connessioni da stabilire si collocano in tale ambito, a patto che le procedure e gli algoritmi siano accompagnati da riflessione, ricostruzione metacognitiva, esplicitazione e giustificazione delle scelte operate.”
Si può lavorare allo sviluppo del pensiero computazionale ad esempio chiedendo agli alunni di “smontare” mentalmente alcune azioni che svolgono automaticamente, e di scrivere la procedura corretta, rigorosa, che consentirebbe a una macchina (a un “alieno”, se si preferisce) di riprodurre senza errori quella stessa azione: ad esempio, disegnare un rettangolo senza staccare la penna dal foglio, o cercare una parola sul dizionario.
Vi sono poi un’infinità di attività unplugged che possono essere praticate in classe con gradualità e un alto grado di coinvolgimento.
Nei Nuovi Scenari del 2018 si sottolinea questa funzione pervasiva del pensiero computazionale: “È un processo logico creativo che, più o meno consapevolmente, viene messo in atto nella vita quotidiana per affrontare e risolvere problemi. L’educazione ad agire consapevolmente tale strategia consente di apprendere ad affrontare le situazioni in modo analitico, scomponendole nei vari aspetti che le caratterizzano e pianificando per ognuno le soluzioni più idonee”.
Dal pensiero computazionale al Coding
Ma è soprattutto nelle attività di Coding, e quindi nella scrittura di linguaggi destinati a una macchina, che il pensiero computazionale può trovare ampi spazi di sviluppo. I computer sono esecutori ideali, non sono dotati di intelligenza. È per questo che scrivere istruzioni che una macchina dovrà in qualche misura eseguire esige un grado di formalità e di rigore maggiore che nella comunicazione tra umani.
Programmare rende concreti i concetti del pensiero computazionale e diventa uno strumento di apprendimento.
Esistono sistemi di programmazione testuale e sistemi di programmazione visiva: nei primi le istruzioni (per la macchina) devono essere scritte in sequenza per mezzo di un editor di testo; nei sistemi visuali invece le singole istruzioni sono rappresentate da blocchi colorati che si possono trascinare in un’area di lavoro (drag and drop). I blocchi possono essere combinati tra loro in modo da comporre una sequenza di istruzioni, che costituisce il programma.
Spesso i sistemi visuali sono preferiti dagli insegnanti perché la programmazione a blocchi permette di concentrarsi solo sul procedimento, non tenendo in considerazione la correttezza del linguaggio: i blocchi sono legati già in modo corretto dal punto di vista sintattico (al massimo si può commettere qualche errore semantico) e ci si può concentrare sul ragionamento. Il compito dell’insegnante è quello di offrire il giusto pretesto e il giusto contesto.
Come scegliere un linguaggio di programmazione per fare coding educativo? Orientarsi verso un linguaggio di software educativo che offra un low floor e un high ceiling, come dice S. Papert, cioè un linguaggio che faciliti al massimo i primi passi ma, allo stesso tempo, permetta di realizzare progetti sempre più complessi.
Per saperne di più
Linguaggi di programmazione: qualche esempio
• LibreLogo, una versione di Logo che si trova in Libre Office Writer grazie al lavoro di un programmatore ungherese, Laszlo Nemeth. Per formarsi su questo linguaggio: Federica.EU
• Scratch, linguaggio a blocchi sviluppato nel 2007 dai ricercatori del Lifelong Kindergarten Group dell’M.I.T. MediaLab di Boston guidati dal professor Mitchel Resnick.
Sitografia
• Programma il Futuro
• Code
• CsUnplugged
• Codecademy
• Blockly Games
• Scratch
• mBlock
• MIT App Inventor
Bibliografia
• Wing, J. M. (2006), Computational Thinking, Communication of the ACM, CACM., vol. 49, no. 3, March 2006, pp. 33-35.
• Wing, J. M. (2010), Computational Thinking: What and Why?, Pittsburgh, PA: Carnegie Mellon University, 17 Novembre 2010
• Rivista Bricks, n.1 anno 2019.
• Bocconi S., Chioccariello A., Dettori G., Ferrari A., Engelhardt K. (2016), Developing computational thinking in Compulsory Education. Implication for policy and practice, JRC Working Papers JRC104188, Joint Research Centre
Le novità Pearson in cui trovare la Classe dinamica!
Scintille e Mille scintille
Un progetto dinamico, per una didattica inclusiva e su misura in tre step: attività di lancio, attività laboratoriali e verifiche formative con attività di potenziamento personalizzato in guida.
ON Accendi la mente
Un progetto che si basa sul modello didattico della Classe Dinamica ed è nato dal desiderio di fornire uno strumento coinvolgente, ricco, ma facile da usare.
Pop English
Un progetto fortemente inclusivo ed educativo, Pop English è il primo corso di inglese che propone spunti di metodologia Classe Dinamica.
Accendi l'estate
Idee per fare e ripassare
Non i soliti compiti per le vacanze! Pagine di esperienze si alternano a pagine di ripasso, con speciali pagine gioco attivano la logica con proposte ludiche linguistiche e matematiche.