giovedì 28 aprile 2016

5 parole chiave del pensiero computazionale

di Enrico Nardelli

Il termine "pensiero computazionale", dopo essere stato ufficialmente accettato nel mondo giuridico con la pubblicazione della legge 107/2015 ("La Buona Scuola") è entrato anche nella pratica didattica col Piano Nazionale Scuola Digitale (PNSD), che ha riconosciuto attività di questo tipo come essenziali per la formazione degli studenti nell'era digitale. In particolare, l'Azione 17 del PNSD si propone di condurre ogni studente, nel corso dei prossimi tre anni, a svolgere 10 ore annuali di educazione al pensiero logico-computazionale.

Si tratta quindi di un termine sempre più conosciuto, come testimonia il grafico della sua diffusione fornito da Google Trends.


Diverse volte però mi accade di ricevere richieste di chiarificazioni del concetto, che tutti intuitivamente comprendono ha a che fare con la logica, il ragionamento e la risoluzione dei problemi, ma che non tutti sempre riescono a mettere esattamente a fuoco.

Alle volte è anche capitato che qualcuno si sia spaventato per l'espressione, temendo che si vogliano trasformare gli studenti in automi. Si tratta di paure che derivano dall'aver semplicemente sentito il termine, senza averlo approfondito. L'espressione, coniata da Seymour Papert e popolarizzata da Jeannette Wing, è al centro dell'attività di Programma il Futuro. Ho già spiegato le ragioni per cui non bisogna temere il pensiero computazionale.

Nella realtà, infatti, è tutt'altro che una meccanizzazione delle persone. È viceversa un mezzo essenziale per sviluppare il pensiero critico, di cui la società, con l'incremento di complessità derivante proprio dalla pervasività delle tecnologie dell'informazione, ha sempre più bisogno. Gli oltre 13.000 insegnanti sinora coinvolti in Programma il Futuro l'hanno capito benissimo. Ecco cosa hanno scritto – solo per fare un esempio – quelli che animano il Progetto Vivarium sulla loro pagina Facebook:

«Il pensiero computazionale è dunque, essenzialmente, pensiero critico; insegna cioè a non fermarsi all'apparenza dei fenomeni che incontriamo ma ci costringe a chiederci cosa ci sia 'dietro', quali processi nascosti ma fondativi producano ciò che noi liberamente e comodamente sfruttiamo. Perché un utilizzo consapevole di ciò che a noi arriva come effetto già pronto parte da un'indispensabile conoscenza delle cause.»

Dopo aver quindi partecipato in massa alle attività, il cui punto più alto si è registrato nella settimana dell'Ora del Codice di dicembre scorso, una parte degli insegnanti iscritti ha entusiasticamente guidato tra marzo e aprile quasi 40.000 studenti a partecipare al concorso Codi-Amo, una competizione basata proprio sul pensiero computazionale e su come esercitarlo e formarlo. E questo nonostante nelle scuole si tratti di mesi generalmente molto impegnativi, perché si tirano le fila del lavoro di un intero anno. I risultati del concorso saranno noti a metà maggio.

Le persone usano implicitamente il pensiero computazionale nella vita di ogni giorno. Sono poi forzate ad esplicitarlo quando devono istruire un soggetto terzo, l'esecutore, a risolvere un problema. Eccone quindi un esempio pratico, riferito ad una situazione che la maggior parte di noi conosce.

Immagina questo scenario: domani sera sei a cena fuori e devi lasciare le istruzioni a tuo figlio affinché riesca a cenare anche in tua assenza. Devi quindi risolvere un problema: far sì che tuo figlio sia in grado di cenare da solo.

Si tratta di pensiero computazionale perché devi mettere a punto una procedura affinché lui (l'esecutore) risolva il problema. Quindi non "problem solving" in prima persona ma per qualcuno che deve agire al tuo posto per risolvere un problema. In altre parole, il pensiero computazionale è un processo mentale che conduce a specificare procedure che un esecutore può realizzare autonomamente.

Nel pensiero computazionale ci sono quindi alcuni aspetti essenziali e che si influenzano reciprocamente.


Primo aspetto: quanti anni ha tuo figlio, cosa è in grado di capire, cosa è in grado di eseguire? Devi adeguare il tuo linguaggio e le tue istruzioni alle sue capacità. Sa come si cucina la pasta? Come si friggono le patate? In altre parole, la tua procedura di risoluzione deve tenere presente la "potenza computazionale" dell'esecutore.

Secondo aspetto: come gli spieghi le cose? A che livello di dettaglio si deve spingere il tuo linguaggio? Basta dire "Riempi la pentola d'acqua", oppure è necessario chiarire "Prendi la pentola grande e riempila a metà", oppure precisare "Posiziona la pentola alta 20 cm nel lavello e con i manici in alto, sposta la bocca del rubinetto cosicché stia sopra la pentola, apri la valvola dell'acqua fredda e poi chiudila quando il livello dell'acqua ha raggiunto i 10 cm", oppure etc. etc.? Pertanto la procedura di risoluzione deve considerare il "livello di astrazione" a cui opera l'esecutore, oltre alla sua potenza computazionale.

Terzo aspetto: il problema della cena può essere scomposto in sotto problemi. Ad esempio: preparare la tavola, preparare la cena, sparecchiare, ripulire. Ognuno di questi ha poi ulteriori "decomposizioni del problema" in sotto problemi (mettere la tovaglia, sistemare piatti e posate, …), fino ad arrivare a situazioni così semplici da essere risolte da un'azione elementare ("apri il rubinetto"). Chiaramente, la decomposizione ottenuta sarà dipendente sia dalla potenza computazionale che dal livello di astrazione dell'esecutore.

Quarto aspetto: le istruzioni elementari così individuate devono essere sequenziate in un ordine che faccia sì che tutto possa funzionare (non ha senso prima sistemare i piatti e poi mettere la tovaglia…). Ecco quindi l'importanza di un "algoritmo" che risolva il problema e magari lo faccia anche in modo efficiente rispetto alle risorse in gioco (per esempio, il fatto di aprire il rubinetto solo dopo aver messo la pentola nel lavello e non prima usa l'acqua in modo più efficiente). La procedura che definisci dovrà quindi esprimere l'algoritmo in funzione di ognuno dei precedenti tre aspetti.

Quinto aspetto: è importante valutare se le istruzioni che sono state scritte conducono effettivamente tuo figlio a risolvere il problema. Devi quindi metterti mentalmente nei panni dell'esecutore e "verificare la correttezza" della procedura specificata: ognuno degli elementi precedentemente discussi ritorna quindi in gioco in questa importantissima fase.

Ecco, questi sono i cinque aspetti essenziali che l'educazione al pensiero computazionale sviluppa negli studenti. Così come nessuno impara a fare le divisioni a mano perché poi nella vita davvero farà i conti con quelle ma per il loro valore formativo, allo stesso modo sviluppare queste abilità non è finalizzato a trasformare tutti gli studenti in informatici (anche se il settore è uno di quelli con le migliori prospettive occupazionali) ma a far sì che operino meglio nella società che ci aspetta.

Pubblicato su il Fatto Quotidiano il 21 aprile 2016.

2 commenti:

  1. Salve,

    In terza superiore, quando trattiamo gli algoritmi, abbiamo sempre una situazione di difficoltà diffusa da parte degli studenti. Personalmente attribuisco questa situazione alla difficoltà a semplificare. Dico ai miei studenti: "Vi resta difficile perché è troppo semplice!". Intendo dire che loro hanno già un pensiero strutturato e gran parte delle loro difficoltà è dovuta al fatto che devono fare un passo indietro nell'analisi dei passaggi necessari a svolgere una attività che normalmente svolgono "senza pensarci".

    Ho usato code.org con loro. Alcuni sono rimasti colpiti ed hanno deciso, in completa autonomia, di riutilizzarlo a loro volta nelle loro attività con gli studenti delle classi delle medie (hanno un progetto di tutoraggio di studenti piu' piccoli). Mi è parso un fatto interessante.

    Stefano Floris
    ITP di laboratorio di informatica gestionale
    Istituto Russell-Newton Scandicci (FI)

    RispondiElimina
  2. 10 anni fa avevo proposto quello che adesso viene chiamato "coding". Avevo fatto rilevare come fosse

    l'analogo in campo scientifico di quello che è il latino in campo umanistico. Dopo 10 anni il

    ministero scopre il "coding". Di solito dal ministero arrivano solo cose negative. Vedremo come

    andrà a finire ...

    Ex ITP di laboratorio di informatica gestionale cacciato dal suo posto dei burocrati del ministero con il trucchetto delle "classi atipiche".

    RispondiElimina

Sono pubblicati solo i commenti che rispettano le norme di legge, le regole della buona educazione e sono attinenti agli argomenti trattati: siamo aperti alla discussione, non alla polemica.