l concetto di pensiero computazionale fu introdotto per la prima volta da Seymour Papert nel libro Mindstorms, pubblicato nel 1980. Più tardi, nel 2006, Jeanette Wing definisce il pensiero computazionale come: “il processo necessario per la formulazione e soluzione di problemi in forme comprensibili da agenti in grado di processare informazioni“.
Il pensiero computazionale è il processo mentale che consente di risolvere problemi di vario tipo, seguendo metodi e strumenti specifici; è, in altre parole, la capacità di risolvere un problema pianificando una strategia.
Si tratta quindi di un processo logico-creativo che permette di pianificare una procedura tramite la quale sia possibile raggiungere un risultato o un obiettivo ed è un’abilità trasversale che va sviluppata, stimolata e allenata sin da piccoli.
Seymour Papert nella sua teoria dell’apprendimento, nota come Costruzionismo, e tramite il linguaggio LOGO da lui stesso ideato, individua nel computer un nuovo mezzo di apprendimento: il computer non è soltanto una macchina con cui elaborare informazioni, ma uno strumento per costruire, manipolare, apprendere, scoprire e persino sbagliare. Infatti, nella teoria di Papert, l’errore non è visto in ottica negativa, ma come un aspetto costruttivo del processo di apprendimento. Sbagliare significa esplorare alla ricerca di soluzioni alternative al problema.
Il pensiero computazionale non è certamente subordinato all’uso delle tecnologie: non si tratta di ridurre il pensiero umano, creativo e fantasioso, alle modalità meccaniche e ripetitive di un computer. Esso è un’abilità tramite la quale l’essere umano riesce a risolvere problemi e trovare soluzioni attingendo alle proprie capacità logiche e razionali, l’uso di strumenti informatici agevola questo processo: il coding è lo strumento migliore.
Il Coding è un termine inglese al quale corrisponde in italiano la parola programmazione. In informatica, con il termine coding si intende la stesura di un programma o di una app, ovvero una sequenza di istruzioni che saranno eseguite da un PC, tablet, smarthphone etc.
Il coding, non è l’unico modo per sviluppare, o applicare, il pensiero computazionale, ma si è rivelato particolarmente efficace per l’immediatezza, l’interattività, la varietà, la disponibilità e la versatilità degli strumenti disponibili.
Il modo più efficace per attirare l’attenzione anche dei più piccoli è certamente il gioco: imparare a programmare “giocando” aiuta a sviluppare competenze logiche e capacità di risolvere problemi in modo creativo, efficiente e divertente.
Gli strumenti del coding sono numerosissimi e potremmo suddividerli in due categorie principali: quelli che necessitano di un computer e quelli che non lo richiedono affatto (strumenti unplugged)
Uno dei principali strumenti del coding è la programmazione visuale o a blocchi, questo tipo di programmazione offre un approccio intuitivo, riducendo le regole sintattiche a semplici incastri tra blocchi di forma complementare, in poche parole il codice del programma non deve essere digitato.
La programmazione visuale permette di sperimentare immediatamente l’effetto prodotto dai blocchetti colorati sui personaggi che animano la storia o il gioco che si sta creando.
I ragazzi, giocando e inventando storie, devono impegnarsi per capire quali blocchetti colorati scegliere ed incastrare fra loro e mentre fanno ciò, scrivono, inconsapevolmente, righe di codice informatico e acquisiscono una nuova abilità: il pensiero computazionale.
Un esempio di «tool» di programmazione visuale è Scratch, sviluppato dal Media Lab’s Lifelong Kindergarten Group del Massachusetts Institute of Technology (MIT), E’ lo strumento ideale per l’esplorazione e la sperimentazione, supporta, infatti, molti stili di apprendimento diversi: la narrazione creativa, la creazione di semplici videogame, l’applicazione dei concetti di programmazione,
L’utilizzo del coding nella didattica è una efficace e divertente attività che agevola e semplifica la comprensione e l’acquisizione dei contenuti. Il coding deve essere introdotto a scuola come attività trasversale perché trasversale è la competenza che consente di sviluppare.
L’uso del coding nella scuola permette di:
l pensiero computazionale è tutt’altro che arido e schematico e non è legato soltanto e semplicemente all’informatica come molti sono portati a pensare. In realtà, è un concetto molto più ampio: è un’abilità (come scrivere, leggere e fare calcoli) che permette di acquisire elasticità mentale e capacità di risolvere problemi.
L’attività di coding è la palestra in cui sviluppare e potenziare tale abilità.
Coding è un termine inglese traducibile in italiano con la parola programmazione, ma in realtà non è soltanto questo.
Il coding, al di la del significato tradizionale, è lo “strumento” più efficace e divertente per sviluppare il pensiero computazionale.
La pratica del coding potenzia il pensiero computazionale e permette di farlo in qualunque ambito disciplinare, non necessariamente in informatica e matematica, in altre parole il coding è per tutti.
Programmare vuol dire fornire istruzioni a un esecutore che non ha un’intelligenza propria, permette, in altre parole, di comunicare e interagire con alcuni particolari oggetti definiti “smart”, contenenti al loro interno un microprocessore, ovvero, un circuito elettrico dalle dimensioni molto ridotte, in grado di interpretare ed eseguire istruzioni ad una velocità elevatissima.
Le istruzioni dovranno essere molto semplici e chiare, e dovranno essere fornite all’esecutore una per volta in maniera sequenziale, ma anche in modo esaustivo, cioè senza tralasciare nessun dettaglio.
L’insieme delle istruzioni fornite all’oggetto smart (PC, tablet, telefonino, auto, televisore, etc.) affinché esegua un qualche compito, è detto programma.
E’ il linguaggio utilizzato per comunicare con gli oggetti.
L’unico linguaggio che un oggetto smart è in grado di comprendere è il linguaggio macchina o linguaggio binario, perché composto soltanto da due “simboli”: 0 e 1.
Il linguaggio macchina è, però, troppo complicato da usare per un essere umano. Il programmatore usa linguaggi testuali con istruzioni scritte in inglese che successivamente saranno, automaticamente, tradotte nel linguaggio binario o linguaggio delle cose.
Esistono, tuttavia, dei linguaggi visuali che permettono di comporre graficamente le istruzioni da fornire alle cose. Questi linguaggi, essendo molto semplici ed intuitivi, sono un buon punto di partenza per imparare a programmare e dunque perfetti come base del coding e dello sviluppo del pensiero computazionale.
Il pensiero computazionale è una capacità trasversale che va sviluppata il prima possibile, non è solo per informatici e programmatori. Programmare è il modo migliore per acquisirlo.
Il pensiero computazionale serve a trasformare una intuizione in un procedimento costruttivo che ci porti alla soluzione di un problema. Tale soluzione, inoltre, sarà talmente generica, da riuscire a riutilizzare quel ragionamento e quel procedimento ogni volta che ci troveremo ad affrontare un problema analogo.
Vivendo in un mondo che cambia, si trasforma, evolve sempre più rapidamente, oggi più che mai, è necessario “imparare a imparare”.
E’ essenziale, cioè, acquisire un atteggiamento di lifelong learning, ovvero, una attitudine mentale “elastica” che permetta di affrontare problemi ogni volta diversi e per fare ciò, abbiamo bisogno di una nuova abilità.
Il pensiero computazionale aiuta a sviluppare competenze logiche e capacità di risolvere problemi in modo creativo ed efficiente, migliorando quelle capacità di pensiero che contribuiscono all’apprendimento e alla comprensione e fornisce la capacità di ideare un procedimento concreto e fattivo che conduca al raggiungimento di un obiettivo.