La nostra società si fonda prevalentemente sull’uso della tecnologia in moltissimi settori, sfruttando il coding e il pensiero computazionale.
In questo articolo ti spieghiamo il significato del pensiero computazionale, il suo legame con il coding e con le professioni del futuro.
Un “linguaggio” alla base di tutto
Si parte dagli smartphone e dai tablet adoperati per lo studio ed i giochi, per giungere alle nuove automobili alla base delle quali un meccanismo di tipo informatico ne permette il perfetto funzionamento.
Abituati ad utilizzare questi strumenti tutti i giorni è automatico pensare a loro come ad un qualcosa che appartiene alla nostra quotidianità. Non possiamo farne a meno, ma nella realtà come funzionano?
Il congegno che permette ad un pc di farci connettere su internet o che ci consente di trovare in una frazione di secondo il significato una parola è il frutto di un complesso sistema basato su una combinazione ben precisa di dati e di algoritmi che, predisposti secondo una particolare sequenza, permettono di svolgere una certa funzione.
Guardando oltre, lo stesso meccanismo appartiene ai robot, anche a quelli che utilizziamo per le faccende quotidiane oppure che hanno in qualche modo cambiato il nostro modo di lavorare.
Pensiamo alle stampanti 3D, alle auto che parcheggiano da sole, alla domotica e a tutte quelle cose che hanno permesso di migliorare la produzione a livello industriale.
Non esiste settore in cui l’informatica non abbia portato un qualche beneficio, eppure alla base di tutto questo esistono due concetti basilari: il coding ed il pensiero computazionale. Ma cosa sono e perché sono così importanti per i ragazzi di oggi?
Il pensiero computazionale significato: cos’è e a cosa serve
Il pensiero computazionale è un concetto coniato nel 2006 dalla scienziata informatica Jeannette Wing.
Fatta propria anche dal Ministero dell’Istruzione, il pensiero computazionale è un insieme di procedure svolte da qualcuno o da qualcosa (in genere una macchina) che operano in maniera meccanica e inconsapevole in un determinato contesto e per il raggiungimento di un obiettivo prefissato. Il concetto è un po’ contorto, ma andiamo per gradi.
Partiamo dalla parola pensiero. Si tratta di un qualcosa che ha a che fare con l’uomo. Nel regno animale solo l’essere umano ha la capacità di pensare, di “ragionare” sugli argomenti, di riflettere su come risolvere una certa situazione.
Utilizziamo il pensiero per ricordare le cose più importanti, memorizzare una materia per un’interrogazione, ma soprattutto pensiamo per capire come trovare la soluzione migliore per raggiungere un traguardo.
Il termine computazionale, invece, deriva dal verbo inglese “to compute”, che tradotto in italiano significa “calcolare”. Da qui il computer e, di conseguenza, computazionale, ovverosia tutto quello che ha a che fare con l’utilizzo di elaboratori elettronici.
La scienza computazionale è quella branca che si occupa di adoperare i sistemi informatici per la risoluzione di problemi complessi, facendo uso di calcolatori sofisticati come aiuto per i calcoli più complicati.
Nelle scuole superiori quando si studiano le funzioni (pensa agli integrali, alle esponenziali, ai logaritmi, ecc…) si utilizzano ad esempio calcolatrici specifiche o programmi sul computer che consentono risolvere graficamente l’esercizio assegnato dal docente.
Il pensiero computazionale è di conseguenza l’unione del pensiero umano al sistema informatico
Si traduce nella capacità di pensare come una macchina e di far sì che la stessa macchina pensi come noi. Quando ci troviamo di fronte ad un problema la prima cosa che ci viene in mente è come risolverlo.
Proviamo tantissime soluzioni ma solo una farà al caso nostro. Con il pensiero computazionale quello stesso problema lo analizziamo facendo finta di essere un computer e i nostri pensieri si tramutano in una serie di dati che, opportunamente elaborati, ci faranno trovare la stessa soluzione, ma in maniera più semplice.
Se sui banchi di scuola i problemi sono generalmente matematici, nella vita di tutti i giorni questi problemi diventano ostacoli che possono essere superati proprio utilizzando una macchina intelligente.
Tutto questo avviene già attraverso elettrodomestici clever (l’aspirapolvere robot che pulisce casa), strumenti che ci consentono di prevenire incidenti (l’auto che parcheggia da sola o segnala al conducente la presenza di un pedone sulla strada) ma anche macchine sofisticate in grado di essere usate, ad esempio, durante un’operazione chirurgica.
Imparare il pensiero computazionale significa quindi riuscire a programmare il futuro servendosi di strumenti dall’intelligenza artificiale. Questi strumenti devono essere ideati e progettati per essere funzionali alle nostre necessità.
È vero, oggi adoperiamo la tecnologia in molti ambiti, ma siamo ancora ben lontani dal poter dire di aver fatto tutto. E solo usando correttamente il pensiero computazionale possiamo capire il mondo e cambiarlo in modo positivo.
Il coding: di cosa stiamo parlando?
Rimanendo sempre nel campo dell’informatica, il coding non è altro che la codificazione di un programma. Stiamo parlando di quella fase in cui una persona impartisce una serie di istruzioni ad un elaboratore che li trasforma in sequenza e ce li restituisce sotto forma di software.
Dall’inglese “to code”, ossia codificare, il coding permette di tradurre in codici quello che è il nostro pensiero rendendolo comprensibile ad una macchina dall’intelligenza artificiale.
In altre parole il coding potrebbe essere considerata come quella lingua che ci consente di dialogare con un robot, un computer, un semplice smartphone, proprio come avviene quando parliamo in inglese attraverso i social.
Imparare il coding significa saper programmare un calcolatore e riuscire a risolvere un problema (semplice o complesso) attraverso l’uso di una macchina.
Ma il coding senza il pensiero computazionale è come uno smartphone che non si connette ad internet: a cosa serve? A poco o nulla, perché uno smartphone senza internet non ha alcun valore. E così avviene con il coding ed il pensiero computazionale che, uniti fra loro, ci consentono di inventare robot in grado di fare le stesse cose di un essere umano. Forse anche meglio.
Per apprendere il pensiero computazionale e coding è importante fin da subito capire come ragiona un informatico. L’informatico è una figura professionale esperto in scienze computazionali che lavora proprio in questo tipo di settore.
Il suo compito è quello di programmare i calcolatori creando macchine o software che saranno poi utilizzati in diversi comparti. Ad esempio molti informatici lavorano nelle aziende e si occupano di creare programmi per l’archiviazione dei documenti, la gestione del personale, ma anche per pianificare la logistica, cioè l’organizzazione dell’impresa in ogni suo comparto (gestione magazzino, gestione fornitori, gestione ordini, ecc…).
Altri informatici lavorano invece nel settore della ricerca e sono specializzati nell’ideazione di macchine e programmi per gli ospedali, l’industria automobilistica, il settore terziario. Riuscire a pensare come un informatico consentirà anche a noi di creare software o strumenti che potranno essere utilizzati nella vita quotidiana.
Ma per farlo abbiamo bisogno proprio di capire come funziona il pensiero computazionale e come applicare, pardon “parlare”, il coding.
Coding e pensiero computazionale: come pensa un informatico?
Quando nelle scuole superiori viene insegnata la matematica il docente invita gli studenti a eseguire un certo tipo di ragionamento per trovare la soluzione di una funzione.
Lo studente che svolgerà la funzione utilizzerà tutti quei principi (di algebra, di geometria, di aritmetica) che avrà appreso nel corso degli anni. Tra i vari principi ce ne sarà qualcuno che meglio consentirà di ottenere il risultato sperato, possibilmente nel minor tempo possibile, ma per far ciò sarà importante riflettere da matematico.
Nel pensiero computazionale avviene un processo simile che però si differenzia nel modo con cui lo studente si approccia al ragionamento. Non si tratta di applicare principi matematici, numeri o formule, ma di tradurre un algoritmo in un linguaggio comprensibile ad una macchina.
In matematica la formula è data da una regola frutto della combinazione delle principali operazioni matematiche. In informatica, viceversa, l’algoritmo è il procedimento codificato che permette al calcolatore di raggiungere il risultato.
La prima differenza fra pensare da matematico e pensare da informatico è data proprio da questo: l’informatico, anziché svolgere da sé l’operazione per trovare la soluzione (come fa il matematico), individua il procedimento che dovrà essere eseguito dalla macchina per far sì che sia lei stessa a fornire la soluzione.
Il concetto sembra difficile, ma è più semplice di quanto sembri. Forse più semplice del modo con cui pensa un matematico. L’informatico ha a disposizione due strumenti: il suo pensiero computazionale e un elaboratore.
L’informatico si trova davanti ad una certa situazione e intende risolverla solo con l’aiuto dell’elaboratore. Per farlo avrà bisogno di comunicare con quest’ultimo utilizzando un linguaggio comprensibile ad entrambi. L’unica lingua che può essere utilizzata è appunto quella del coding.
Con il coding l’informatico detterà le istruzioni all’elaboratore che riuscirà a comprenderle mettendole in esecuzione. Una volta programmato l’elaboratore, questo sarà in grado di risolvere la situazione.
Pensare da informatico richiede comunque una certa conoscenza della materia, ma soprattutto un modo di ragionare che permette di semplificare il lavoro da svolgere.
Si parla appunto di processi mentali, metodi, pratiche e competenze trasversali che bisognerà acquisire per riuscire a pensare come un informatico.
O, meglio, come un elaboratore. A differenza di una persona qualunque, l’informatico usa la logica, scompone un problema complesso in tanti sottoproblemi per risolverli più facilmente, utilizza le previsioni per situazioni che hanno caratteristiche simili (pensa ad un robot programmato per le operazioni chirurgiche) in modo tale che possano essere accomunate tra loro proprio perché la soluzione è affine.
L’informatico adotta dei metodi che serviranno a risolvere il problema, come l’automazione (cioè la capacità di far funzionare qualcosa senza l’intervento dell’uomo), la simulazione (che permette di sperimentare prima di applicare alla realtà), la programmazione che codifica il metodo in un linguaggio comprensibile all’elaboratore. E poi l’informatico mette in pratica quello che ha progettato per far sì che la soluzione impartita alla macchina sia raggiunta senza errori.
È questo il fine ultimo dell’informatico, vale a dire semplificare la realtà attraverso l’uso di strumentazioni tecnologiche che operano per il tramite di elaboratori. E questi elaboratori dovranno operare in maniera autonoma (senza l’intervento di nessuno) per raggiungere gli obiettivi che saranno imposti dall’esterno. Insomma, una vita più semplice da gestire, magari più sicura, ma sicuramente più facile da vivere grazie all’ausilio della tecnologia.
Coding e pensiero computazionale: cosa deve sapere un docente
Il coding ed il pensiero computazionale sono entrati a far parte nel mondo della scuola già da alcuni anni, nel 2012. Nelle Indicazioni e Nuovi Scenari di quello stesso anno il Miur introdusse il concetto di pensiero computazionale come aspetto di apprendimento da impartire nelle scuole fin dall’infanzia.
Ne fece seguire una dettagliata definizione (tutt’ora accolta) la cui conseguenza non è oggi solo quella di insegnare agli studenti come programmare un elaboratore.
Per il Miur il pensiero computazionale è qualcosa di più articolato perché ricomprende altresì la capacità di sviluppare competenze da applicare anche nella vita di tutti i giorni. Imparare il pensiero computazionale significa quindi riflettere, costruire, esplicitare e giustificare le scelte fatte da chi pensa come un informatico.
Il Miur non parla di materia didattica, ma di educazione, in altre parole di un metodo che consente allo studente di migliorare la sua formazione e la sua preparazione in maniera completa.
La legge sulla Buona Scuola (D. Lgs. n. 107/2015) considera lo sviluppo delle competenze digitali come obiettivo formativo prioritario e prevede la stesura di un Piano Nazionale per la Scuola Digitale all’interno del quale sono indicate le competenze che lo studente dovrà raggiungere soprattutto nell’uso dell’informatica.
Il coding, in tale contesto, è una metodologia trasversale della cultura digitale la cui funzione sarà quella di usare in modo critico la tecnologia e la rete.
Obiettivo principale del Piano Nazionale (ma soprattutto dell’insegnamento del pensiero computazionale) sarà quello di formare le prossime generazioni non in consumatori passivi, ma in consumatori critici e produttivi i quali saranno capaci di creare architetture digitali che potranno migliorare la vita di tutti i giorni. Soprattutto quella lavorativa.
Già nel 2010 si parlava di trasposizione dell’apprendimento da “cognitivo” a “laboratoriale” adottando modelli di apprendimento “costruttivisti” oramai adoperati anche in contesti internazionali, ossia nel mondo che ci circonda.
Questo significa che il modo di insegnare agli studenti passerà dall’essere puramente concettuale al divenire direttamente pratico per permettere al ragazzo di applicare nella realtà di tutti i giorni. In questo modo potrà sperimentare, provare per tentativi ed errori, capire lo sbaglio e trovare la soluzione senza soffermarsi al puro concetto.
E il risultato sarà quello di plasmare ragazzi in grado di essere soggetti attivi nell’evoluzione digitale del nostro futuro.
La legge e le indicazioni MIUR si rivolgono ai docenti, i quali hanno il dovere di aggiornarsi sulle nuove tecnologie, ma le stesse indirettamente sono indirizzate agli studenti i quali devono acquisire un livello di consapevolezza digitale alla pari di altre realtà nel mondo.
Per rispondere alle esigenze dettate dal Miur e quelle provenienti dagli stessi ragazzi è importante aggiornarsi, imparare, capire quelli che sono gli scenari attuali in tema di tecnologia, robotica, automazione, programmazione.
Un aggiornamento mirato e possibilmente misurato al mondo reale (quello delle scuole italiane) consentirà di affrontare con maggior consapevolezza la voglia di attivarsi per sviluppare il futuro.
Perché il coding ed il pensiero computazionale sono importanti per i ragazzi?
Il mondo del lavoro, ma anche la realtà che ci circonda, si evolve in maniera repentina senza neanche avere il tempo di capire cosa succede. Nuovi sistemi per la tutela ambientale, prototipi tecnologici per la produzione industriale, robot in grado di “percepire” le emozioni umane non sono più una finzione.
Basta alzare lo sguardo e scorgere un drone che sorvola le nostre teste nel mentre sta mappando l’ambiente circostante. E non mancano aziende multinazionali che adottano i robot per ottimizzare i processi produttivi, ma anche enti di ricerca che sviluppano stampanti 3D per la riproduzione degli organi animali.
Fra i requisiti richiesti nel mondo del lavoro spicca la conoscenza dei principali programmi per computer e gran parte delle occupazioni sono svolte prevalentemente utilizzando un semplice (ma sofisticato) elaboratore.
Nell’ingegneria una strumentazione all’avanguardia permette di capire se una costruzione è agibile o andrà abbattuta, mentre a Massa Lombarda è stata realizzata la prima casa sempre con una stampante 3D.
Il futuro che ci aspetta non può essere che tecnologico, perché ogni evoluzione, scoperta, ricerca viene fatta utilizzando soprattutto la tecnologia.
Questa, applicata in diversi ambiti, ci permette di ridurre al minimo i rischi rendendoci più efficienti nella vita, ma consente anche di ottimizzare le risorse a nostra disposizione minimizzando eventuali perdite. Pensiamo ad un’auto che ci segnala quando siamo stanchi o se un ostacolo intralcia il nostro cammino.
E pensiamo ancora ai robot che assemblano la stessa auto evitando che un operaio, qualora lo facesse, potrebbe rischiare la propria incolumità.
Ed ancora. Andiamo oltre i robot e le auto a guida autonoma soffermandoci sull’uso delle app, dei programmi per elaboratore e dei software. Oggi si può fare la spesa, prenotare una stanza, acquistare il biglietto dell’aereo da uno smartphone, senza fare la fila all’aeroporto o attendere il nostro turno alla cassa del supermercato.
Esistono programmi per computer che nelle aziende ci dicono in che fase produttiva si trova un determinato prodotto, ma anche software ci segnalano tempestivamente se qualcuno ha acquistato qualcosa dal nostro negozio online. Interagiamo con lo smartphone quasi come se fosse un “alter ego” e ce ne serviamo per usi diversi che non sono soltanto utili per il tempo libero.
Perfino un ingegnere, un architetto, un geometra, un avvocato, un medico hanno bisogno di uno smartphone e di tante applicazioni perché senza la tecnologia costoro non potrebbero aiutare i clienti o i pazienti che si affideranno a quell’avvocato o a quel dottore per un qualsiasi tipo di problema.
Perché è importante il coding ed il pensiero computazionale per i ragazzi delle scuole superiori, specialmente della terza e della quarta? Perché appartiene al nostro futuro e costituiscono le basi fondamentali per costruire la nostra carriera. Imparando a parlare il coding e a ragionare come un informatico ci permetterà, un domani non troppo lontano, di diventare quegli Elon Musk, Mark Zuckerberg e Steve Jobs che hanno fatto grande il nostro presente.