
Il pensiero computazionale ed il coding
La cosa di cui oggi sentiamo maggiormente la mancanza è, senza dubbio, il tempo per portare a termine tutte le cose che vogliamo o dobbiamo fare. A questo si aggiunge la numerosità degli impegni familiari, lavorativi ed hobbistici o di svago. Datosi che, anche nel terzo millennio, le giornate durano ancora e solo 24 ore, l’unica alternativa perseguibile rimane quella di organizzare al meglio il tempo a disposizione e diventare quanto più efficienti possibile per non dover ripetere la stessa attività più di una volta. Diventa, quindi, dirimente una corretta organizzazione. Ma l’organizzazione implica una programmazione razionale delle attività ed un’efficace allocazione dei tempi. La scuola non poteva certo ignorare tale esigenza ed ha risposto implementando il PNSD –piano nazionale scuola digitale- e, in seguito, promuovendo lo studio dei rudimenti che stanno alla base di tutti i linguaggi di programmazione, coding con termine inglese, supportato, dal punto di vista teorico, dal pensiero computazionale. La finalità di tale linea di intervento non è certo quella di avere una schiera di programmatori, bensì quella di sviluppare nei ragazzi, la propensione alla logica ed alla riflessione.
I rudimenti del pensiero informatico avevano già fatto capolino nella scuola. Infatti, diversi anni orsono furono utilizzati i diagrammi a blocchi per rappresentare graficamente ragionamenti ed algoritmi risolutivi di problemi di varia natura. I tempi, però, probabilmente non erano maturi, sia per la carenza di strumentazione idonea, atta a supportare la parte pratica, sia per l’impreparazione professionale e psicologica del corpo docente. La diffidenza, se non vera e propria paura, della classe docente verso l’informatica era dovuta all’ingresso in un terreno minato, in un terreno in cui il docente si trovava, spesso, in condizione di inferiorità culturale e cognitiva rispetto agli allievi. Ma più che diffidenza della classe docente si trattava della diffidenza degli adulti verso le nuove tecnologie, ancora poco digerite.
Oggi la proposta del coding e del pensiero computazionale ha preso nuovo vigore per lo sviluppo della tecnologia, ma ancor di più per la pervasività della cultura informatica in tutta le sue varie forme e per la sedimentazione di un background culturale che non ha certo risparmiato il mondo della scuola. I computer, infatti, fanno parte integrante della nostra vita e ce li ritroviamo in tutte le nostre attività, a volte senza esserne coscienti.
Il MIUR, in collaborazione con il CINI (Consorzio interuniversitario nazionale per l’informatica) ha avviato, nell’anno scolastico 2014/2015, il progetto Programma il futuro: insegnare in maniera semplice ed efficace le basi dell’informatica[1]. Quella dell’anno scolastico 2017/2018 appena trascorso è stata, quindi, la quarta edizione. Molte sono le scuole che hanno almeno un laboratorio informatico e le LIM sono presenti in moltissime aule, per cui è possibile proporre ai ragazzi attività finalizzate alla creazione di storie o all’implementazione di semplici software. Molti sono gli strumenti informatici dedicati allo scopo, in particolare si ricorda scratch, scaricabile dal sito https://scratch.mit.edu/download espressamente proposto dallo stesso progetto. Il software in questione permette la costruzione di animazioni di nomi, giochi, storie animate, musica senza conoscere scrivere una sola linea di programma, ma soltanto inserendo nella corretta sequenza blocchi di comando[2]. La facilità della trascrizione, però, non esime dal ragionamento che deve sottostare alla scelta dei blocchi ed al loro corretto posizionamento in una sequenza logica.
I soliti bene informati e poco propensi alle novità rimanderanno il tutto ai docenti di matematica e di tecnologia asserendo che l’informatica è materia di loro competenza. Il vulnus di tale ragionamento è che non si vuole fare informatica bensì pensiero informatico, che sono due cose ben distinte. Il modo di pensare informatico, o pensiero computazionale, è applicabile a qualunque disciplina, scolastica o meno, configurandosi come una vera e propria competenza trasversale. Quando ci troviamo di fronte ad una situazione problematica abbiamo solo due punti fissi: l’inizio, cioè la situazione di partenza, e la meta da raggiungere, la soluzione, che a volte non è univoca. Tutto quello che collega questi due punti lo dobbiamo trovare con il ragionamento e dobbiamo incrociare gli esiti delle nostre riflessioni e delle nostre ricerche con le risorse a disposizione.
Quando il problema da affrontare ci sembra alquanto complesso è bene scomporlo in problemi più piccoli che, presumibilmente, avranno bisogno di un minore dispendio di energia mentale per la loro soluzione. Più semplici sono gli stadi intermedi, più facile sarà trovare la soluzione. È facilmente dimostrabile, inoltre, che molti degli stadi intermedi, dei problemi semplici in cui siamo riusciti a scomporre il nostro problema iniziale, abbiano la caratteristica della trasferibilità, la proprietà di essere applicabili in altri contesti ed in altri problemi.
Il lavorio e la ricerca per smontare il problema generale in sotto problemi, o procedure, porta il ragazzo a ragionare ed a riflettere sul problema stesso. Tale attività, inoltre, stimola i meccanismi di analisi, nel momento della scomposizione, e di sintesi, nel momento dell’assemblaggio delle varie procedure.
Il pensiero computazionale è una abilità che andrebbe sviluppata sin da bambini perché aiuta a pensare meglio, in modo originale e non ripetitivo. Per pensiero computazionale si intende una attitudine mentale che consente di risolvere problemi di varia natura seguendo metodi e strumenti specifici. In altre parole, il pensiero computazionale è la capacità di risolvere un problema pianificando una strategia. Significa, anche, come affermato dalla scienziata statunitense Jeannette Wing, pensare come un informatico, in termini di algoritmi e a livelli multipli di astrazione. Quindi, il pensiero computazionale è un processo logico-creativo che consente di scomporre un problema complesso in diverse parti, più gestibili se affrontate una per volta. Trovando una soluzione a ciascuna di esse è possibile risolvere il problema generale.
Il coding rappresenta la messa in pratica del pensiero computazionale e proprio per questo risulta essere è lo strumento didattico più utilizzato per educare i bambini al pensiero computazionale. Esso consente di apprendere le basi della programmazione informatica in modo pratico e divertente. La scelta di un approccio ludico è strategica perché consente di attirare l’attenzione dei più piccoli, i quali – davanti a un monitor – credendo solo di giocare, imparano come risolvere un problema più o meno complesso, scrivendo una serie di istruzioni che la macchina interpreta ed esegue. Una sequenza tutto sommato semplice: con il coding si impara a risolvere un problema attraverso una serie di istruzioni da impartire al pc, e così facendo si sviluppa il pensiero computazionale.
Proporre il coding significa mettere bambini e ragazzi davanti a quello che più li diverte: un tablet, il monitor di un pc, un robot. Sta a loro animare, far prendere vita, imparare a fare muovere i loro personaggi in un certo modo, siano essi virtuali o meno. In sintesi imparano a raggiungere un obiettivo. E come si raggiunge un obiettivo se non risolvendo il problema che si frappone fra loro e la meta? Il coding aiuta i più piccoli a pensare meglio e in modo creativo, stimola la loro curiosità attraverso quello che apparentemente può sembrare solo un gioco.
È bene ribadire, se ancora non fosse adeguatamente chiaro, che il coding non è una disciplina a sé, da collocare sporadicamente nell’arco dell’anno scolastico, avulsa dai vari curricoli, ma piuttosto un insieme di metodologie spendibili in diversi ambiti disciplinari (e in differenti ordini di scuola).
Strettamente connesso al coding ed al pensiero computazionale, c’è la metodologia del problem solving. Il pensiero computazionale viene definito una forma strutturata di pensiero volta alla risoluzione di problemi; ciò perché l’analisi e la strutturazione di un problema costituiscono passaggi logici fondamentali preliminari la creazione di procedure che un esecutore (macchina o umano) deve seguire per risolvere il problema stesso. Il fine ultimo del progetto Programma il futuro è di applicare il pensiero computazionale a discipline non scientifiche. Ma anche quello di esaltare la centralità dello studente e al tempo stesso permettere alla scuola di recepire i cambiamenti della società della conoscenza.
Il pensiero computazionale aiuta a sviluppare competenze logiche e capacità di risoluzione dei problemi in modo creativo ed efficiente, qualità che sono importanti per tutti i futuri cittadini. Il modo più semplice e divertente di sviluppare il pensiero computazionale è attraverso la programmazione (coding) in un contesto di gioco.
[1] Vedi il sito www.programmailfuturo.it
[2] Per approfondire l’argomento del coding si consiglia il sito www.code.org