Da due articoli di Enrico Nardelli (vedi)

Informatica: dal coding al pensiero computazionale

Il Fatto Quotidiano, 24 agosto 2014
Enrico Nardelli - professore ordinario di Informatica, Dipartimento di Matematica di "Tor Vergata", Roma

    Il nuovo piano per la scuola che Renzi ha preannunciato a metà agosto prevede, tra le altre cose "informatica dalla primaria".    Ed è subito partita una discussione sui vari mezzi di comunicazione. Un paio di interventi tra quelli che ho letto (ce ne sono molti altri): I professori sono pronti? Potrebbe essere la vera rivoluzione dell'anno scolastico ed una risposta alla crisi.  In generale se ne parla come di insegnare il "coding", usando un termine americano per il quale non mi turbo (uso frequentemente l'inglese nel mio lavoro) ma rispetto al quale ritengo opportuna una riflessione.

    Per i non addetti ai lavori chiarisco che con la parola "coding" si intende, in informatica, la stesura di un programma, cioè di una di quelle sequenze di istruzioni che, eseguite da un calcolatore, danno vita alla maggior parte delle meraviglie digitali che usiamo quotidianamente. Capisco che questo termine generi meno confusione del corretto ed usatissimo equivalente italiano "programmazione", ma spendo solo questo inciso per invitare i nostri cervelli a non essere pigri: usare la nostra lingua significa sostenere la nostra identità sociale e culturale.

    Il punto è che l'uso dell'espressione americana rischia di fuorviare il discorso.

    Penso che ormai nessuno, discutendo dell'insegnamento della matematica nella scuola, parli più di "insegnare le tabelline". Si insegna la matematica nelle scuole soprattutto per i suoi aspetti culturali. Parlare quindi, a proposito di informatica, dell'imparare a scrivere i programmi per i calcolatori non significa contribuire a far chiarezza nella discussione.

    Il fondamentale contributo culturale apportato dall'informatica alla società contemporanea è definito in modo sintetico dall'espressione pensiero computazionale, introdotta dalla scienziata informatica Jeannette Wing nel 2006.

    Il pensiero computazionale è un processo mentale per la risoluzione di problemi costituito dalla combinazione di metodi caratteristici e di strumenti intellettuali, che hanno tutti valore generale. Discuteremo nei prossimi giorni [in articoli apparsi successivamente] di quali sono questi metodi e strumenti. Essi sono importanti per tutti i cittadini non solo perché sono direttamente applicati nei calcolatori, nelle reti di comunicazione, nei sistemi e nelle applicazioni software ma perché sono strumenti concettuali per affrontare molti tipi di problemi in molte discipline.

    Nel corso del secolo passato, un fattore chiave per lo sviluppo della moderna società industriale è stato l'inclusione di discipline quali la matematica, la fisica, la biologia e la chimica come materie obbligatorie nella scuola secondaria, con un'introduzione ad esse effettuata nella primaria.

    Questo non per far diventare tutti gli studenti dei matematici, fisici, biologi o chimici. Tutt'altro: perché la società aveva riconosciuto la necessità che ogni cittadino conoscesse i concetti di base di queste scienze. Infatti, non c'è tecnologia né una vera economia senza la matematica, non c'è ingegneria senza fisica e chimica, non c'è medicina senza biologia.

    Nella società contemporanea la cui tecnologia dipende in misura fondamentale dall'informatica, e tanto di più quanto più la presenza dei calcolatori diventa pervasiva, avere familiarità con i concetti di base dell'informatica come materia scientifica è un elemento critico del processo di formazione dei cittadini.

    Per essere adeguatamente preparato a qualunque lavoro vorrà fare da grande, a uno studente è ormai indispensabile una comprensione dei concetti di base dell'informatica. Esattamente com'è accaduto nel secolo passato per la matematica, la fisica, la biologia e la chimica.

    I benefici del "pensiero computazionale" si estendono a tutte le professioni. Medici, avvocati, dirigenti di azienda, architetti, funzionari di amministrazioni – solo per citarne alcune – ogni giorno devono affrontare problemi complessi; ipotizzare soluzioni che prevedono più fasi e la collaborazione con altri colleghi o collaboratori; immaginare una descrizione chiara di cosa fare e quando farlo.

    Qualche mese fa discutevo, su queste colonne, della rivoluzione informatica come sintesi delle due grandi precedenti rivoluzioni sociali: quella della stampa e quella industriale. E come loro superamento, perché si tratta di una rivoluzione che incide sul piano cognitivo delle persone.

    Senza una vera comprensione delle fondamenta culturali e scientifiche della disciplina informatica, che è alla base delle tecnologie digitali, rischiamo – soprattutto in Italia – di essere consumatori passivi ed ignari di tali servizi e tecnologie, invece che soggetti consapevoli di tutti gli aspetti in gioco ed attori attivamente partecipi del loro sviluppo.

    Non è un caso che qualche anno fa, in un convegno significativamente denominato "Informatica: Cultura e Società", si sosteneva l'importanza di dare più spazio alla cultura informatica nella scuola e nella società italiane.

    Potrebbe essere davvero una soluzione per la crisi.

Gli studenti dell'era digitale: automi o pensatori critici?

Il Fatto Quotidiano, 21 aprile 2016
Enrico Nardelli - professore ordinario di Informatica, Dipartimento di Matematica di "Tor Vergata", Roma

    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 [...]

    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. [...]

    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.
 


Enrico Nardelli
Laureato in Ingegneria Elettronica alla Sapienza, professore ordinario di Informatica, sono dal 2002 al Dipartimento di Matematica di "Tor Vergata". La mia più recente attività di ricerca si è dedicata alla Bioinformatica e ai Sistemi Informativi (con particolare attenzione ad una loro visione che integra gli aspetti tecnologici e quelli sociali/personali).
Coordino col collega Giorgio Ventre (Università di Napoli "Federico II") il progetto Programma il Futuro attuato dal CINI, Consorzio Interuniversitario Nazionale di Informatica, per conto del Ministero dell'Istruzione, Università e Ricerca, per sperimentare l'introduzione strutturale nelle scuole dei concetti di base dell'informatica (pensiero computazionale) attraverso la programmazione (coding), usando strumenti di facile utilizzo e che non richiedono un'abilità avanzata nell'uso del computer.
Sono membro del Consiglio Direttivo del CINI, e membro del Comitato Direttivo di ACM Europe, la branca europea dell'Association for Computing Machinery, la più grande associazione internazionale di professionisti e studiosi di Informatica.
Sono stato dal 2010 al 2015 membro del Comitato Direttivo di Informatics Europe, l'associazione europea dei dipartimenti universitari e centri di ricerca di Informatica, ricoprendo i ruoli di Tesoriere e Vice-Presidente. Sono stato dal 2009 al 2014 membro del Comitato Direttivo di EQANIE, la rete europea per l'assicurazione della qualità nella formazione universitaria in Informatica.
Sono stato dal 2003 al 2008 il Presidente del GRIN (Gruppo di Informatica), l'associazione che coordina e promuove le attività scientifiche e didattiche istituzionali dei circa 800 docenti universitari di Informatica.
Ho provato con l'aiuto dei colleghi a convincere la politica dell'importanza di un serio utilizzo dell'informatica (www.informatica.uniroma2.it/convegno). Gli atti del convegno Informatica: Cultura e Società sono ancora un'utile lettura per chi ha a cuore un futuro migliore per il nostro paese.
Ho collaborato al testo Spatio-Temporal Databases.
Ho avviato una collaborazione con Isabella Corradini, psicologa sociale, insieme a cui ho pubblicato il testo La reputazione aziendale: aspetti sociali, di misurazione e di gestione edito dalla Franco Angeli. Nell'ottica di un approccio interdisciplinare, abbiamo fondato il laboratorio di ricerca Link&Think per lo studio e la valutazione di sistemi e dispositivi informatici, considerati da un punto di vista sia tecnologico che umano e sociale. Alcuni dei post qui pubblicati sono ripresi anche per le attività divulgative del laboratorio.
(aprile 2016)