In evidenza

Elenco di articoli sul corsivo

Questo elenco di articoli è per colpa mia un guazzabuglio poco ordinato. Sono presenti sia articoli divulgativi di testate giornalistiche,...

martedì, aprile 11, 2017

Il pensiero computazionale (coding)

Il coding dedicato ai bambini è giudicato utile a prescindere, senza che ci siano studi seri in materia. Il solo fatto che sia "innovativo", e quindi "trendy", lo fa considerare una cosa buona, da utilizzare nella didattica. Da informatico e da docente, da genitore e da amante della tecnologie digitali (che sono ovviamente straordinarie), vorrei si riflettesse molto di più su questa proposta didattica.

Ad oggi i dati scientifici che abbiamo sugli effetti delle tecnologie, quando ad esse sono esposti bambini o adolescenti, sono abbastanza inquietanti. Una breve rassegna è consultabile in un altro post di questo blog, intitolato, non per caso, La tecnologia fa male ai bambini. Un libro veramente istruttivo in proposito, intitolato significativamente "Demenza digitale", lo ha scritto un neuroscienziato tedesco, Manfred Spitzer (qui il video di una sua conferenza tenuta in Italia), direttore del Centro per le neuroscienze e l'apprendimento dell'Università di Ulm.

Se poi volgiamo lo sguardo alle ricerche sugli effetti delle tecnologie digitali nelle scuole, scopriamo che la ricerca è ormai unanime: non portano, in media, a nessun effetto statisticamente significativo. Anzi, quando i computer sono troppi, l'apprendimento in realtà diminuisce (come certifica la ricerca OCSE del 2009).

In considerazione di queste evidenze, scientificamente fondate, è importante considerare che la tecnologia digitale va utilizzata con la dovuta prudenza, in particolare solo quando essa è strettamente necessaria (in relazione a determinati fini didattici) e solamente con modalità che ne consentano un utilizzo e una fruizione ottimale per l'apprendimento del discente.

o - o - o

Con il termine "coding" (chiamato in italiano "pensiero computazionale") non è ben definito, nell'ambito degli apprendimenti, cosa si debba intendere. Una definizione autorevolmente diffusa dal MIUR (si veda a pagina 1 dell'Allegato 1 –  Avviso pubblico prot. n° 2669 del 03 marzo 2017) è la seguente:

"il pensiero computazionale è «l’insieme dei processi mentali coinvolti nella formulazione di un problema, nonché l’espressione della sua soluzione in modo che una macchina o un essere umano siano in grado di eseguirlo in modo efficace. È tutto ciò che viene prima della tecnologia informatica, pensato da un essere umano conscio della potenza dell’automazione»"
La prima parte della definizione richiama la "formulazione di un problema" e "l'espressione della sua soluzione" in modo abbastanza chiaro e soprattutto univoco, tale che anche un automa possa eseguire in modo efficace i singoli passi che portano alla soluzione del problema. Nella definizione è scritto "eseguirlo", dove il suffisso "lo" si dovrebbe correttamente riferire all'esecuzione dei passi che portano alla soluzione, e non, come nel brano riportato, alla soluzione stessa, che non deve essere "eseguita", ma raggiunta, in particolare descritta con un linguaggio non univoco.

A mio parere il pensiero computazionale, è basato, in ultima analisi, sull'autocontrollo dell'errore, attività che è alla base della scrittura dei programmi per computer. Quando si debbono mettere in fila una serie di istruzioni per ottenere un predeterminato obiettivo (dopo che esse sono state eseguite da un automa, cioè da un cretino super veloce che esegue in modo perfetto i comandi non ambigui che gli vengono forniti) la prima cosa da fare è appunto controllare che quanto ottenuto coincida con quanto ci aspettavamo avvenisse. Questa attività è la principale attività della programmazione, che infatti deve procedere passo dopo passo, lentamente, per poter poi intervenire con le dovute correzioni sull'elenco di istruzioni (il codice, appunto).

Il pensiero computazione si può svolgere benissimo senza PC, e infatti molte attività di coding senza computer sono state predisposte e sono disponibili online. Un buon elenco di attività senza computer lo si trova qui, anche se l'apertura del post è ideologicamente orientata e riproduce una serie di luoghi comuni favorevoli a prescindere alla tecnologia digitale (inoltre nel post alcuni link non sono più aggiornati, in particolare non funziona il link all'attività 2, che punta ad un documento che ora si trova qui). Ma il più completo e probabilmente autorevole elenco di attività relative al coding unplugged (cioè con i discenti scollegati dal PC, che viene giustamente indicato come "distraente") le potete trovare in questo ottimo libretto intitolato "Computer Science Unplugged". È scritto da docenti universitari di informatica, in stretta collaborazione con docenti della scuola primaria e media.

Il coding viene quindi proposto perché si spera che sia e un potente motore di sviluppo delle abilità di autocorrezione e quindi un sussidio fondamentale per ogni attività con contenuto logico matematico.

Molte attività non propriamente scolastiche sviluppano la capacità di autocorrezione. Anzi, in particolare, le ricerche ci dicono che la scuola (tradizionale) fa proprio male a questo aspetto delle conoscenze dei bambini: ci sono problemi "matematici" che quando vengono proposti in classe ottengono meno risposte esatte di quando vengono proposti fuori dal contesto scolastico (si vedano ad esempio le ricerche di Bruno D'Amore).

Dobbiamo considerare che il pensiero computazionale nei bambini si allena parecchio anche utilizzando attività molto più tradizionali (ma ahimè, meno trendy) come con la falegnameria, gli origami, i lego, il tinkering (questo è trendy e moderno! E si può fare...) e ogni altra attività in cui si debbano utilizzare le mani in modo intelligente. Al contrario a scuola i bambini imparano "a memoria" le procedure di "risoluzione" dei problemi matematici che sono loro sottoposti, senza assolutamente imparare a controllare il loro output consapevolmente. Se invece debbono ad esempio costruire una scatola di legno, o un acquario, l'apprendimento mnemonico è assolutamente inutile, e non sarà quindi utilizzato. Dovranno controllare l'output della procedura che eseguono, per ottenere esattamente quanto hanno progettato.

D'altra parte bisogna tener presente che per fare coding in modo produttivo per il pensiero logico matematico del discente, è requisito indispensabile una forte capacità di astrazione (che a mio parere non si impara col coding, la si allena, la si estende anche, ma non la si impara senza forti prerequisiti che già devono essere patrimonio del bambino). La capacità di astrazione diventa forte e naturale (la si impara davvero) se poggia su attività cognitive che hanno coinvolto il corpo (e la mente), in particolare la mano e tutti gli aspetti sensoriali più importanti. Se si è percorsa insomma la scala di comprensione della pedagogia dei gesti mentali di Antoine de La Garanderie.

E ormai oltre un decennio di ricerche neuroscientifiche assolutamente confermano: gli aspetti sensoriali fondamentali da curare fin dalla più tenera età per ottenere giovani bravi in matematica (e in generale in tutte le attività "scolastiche") sono:
  • la propriocezione grossa e soprattutto fine (la posizione nello spazio del proprio corpo e in particolare l'uso preciso della propria mano), 
  • gli aspetti uditivi linguistici e musicali, 
  • le capacità visivo spaziali.
Ma la cosa più importante, il vero supporto alla capacità di astrazione è il coordinamento tra questi molteplici aspetti percettivi. È imparando questo coordinamento, questa armonia tra le percezioni, che impariamo a pensare in modo astratto.

Tutte le attività cognitive che sollecitino attività di "traduzione", da uno di questi dominii percettivi ad un altro, sono importantissime per lo sviluppo del pensiero astratto. Ho usato il verbo tradurre non a caso. Si tratta di linguaggi differenti da collegare, coordinare, controllare, fino ad acquisire un vero e proprio bilinguismo cognitivo tra propriocezione, uditivo e visivo.

Una volta posseduti tali prerequisiti (dopo insomma una scuola dell'infanzia ottima e delle elementari concentrate sullo scrivere, sul riassumere, sul comprendere i numeri e i calcoli, e piene di lavoretti manuali) è possibile addentrarsi, magari giocando, tra i meandri del coding vero e proprio. Sono ormai disponibili ottimi strumenti con una certa abbondanza (spesso perché spinti dalle multinazionali dell'ICT). Un elenco delle migliori opportunità didattiche relative al coding presenti in rete è il seguente:
  1. Innanzitutto il sito http://www.programmailfuturo.it/ , un progetto del MIUR creato per sperimentare l’introduzione strutturale nelle scuole dei concetti di base dell’informatica. ­È il sito partner di https://code.org/, progetto finanziato dalle più grandi multinazionali dell'ICT come Google (ora Alphabet Inc.), Amazon, Facebook, Microsoft, ed altre, con addirittura il fondo di investimento BlackRock (tutte aziende che è lecito ipotizzare non abbiano proprio al primissimo posto dei loro interessi il corretto apprendimento dei nostri figli).
  2. una versione meno estesa degli stessi problemi disponibili su code.org (e quindi con minori rischi di perdersi tra le troppe offerte didattiche) è visionabile su https://blockly-games.appspot.com/
  3. Esistono inoltre diverse app per Android e per gli altri sistemi operativi dei sempre più potenti smartphone, che hanno come obiettivo l'apprendimento del coding in un ambiente che simula un vero e proprio videogioco. La più famose è sicuramente https://lightbot.com/ (e la sua recente evoluzione http://spritebox.com/), ma ne esistono numerose altre simili (ad esempio la parodia AngryBot).
  4. Infine il re degli ambienti di apprendimento della programmazione, e cioè Scratch, il progetto del MIT (Massachusetts Institute of Technology) per avvicinare i bambini e i pre-adolescenti alla programmazione. Esistono ormai una sterminata varietà di proposte didattiche basate su questo ottimo prodotto, che è un ambiente di programmazione ormai completo e con il quale è possibile anche programmare ad esempio i robot della LEGO (o quelli sviluppati a partire da Arduino o mediante Raspberry). Segnalo a proposito di Scratch solamente due manuali, uno in italiano e uno in inglese, con diverse proposte didattiche per chi è alle prime armi con Scratch:
Infine segnalo questo sito che ci ricorda, una volta di più, che la natura utilizza dalla notte dei tempi il gioco per l'apprendimento dei cuccioli dei mammiferi: forse è il caso di riflettere su questo aspetto.

    giovedì, marzo 09, 2017

    La scala di comprensione

    Un potente strumento per aiutare la giusta comprensione anche dei concetti più difficili è la SCALA DI COMPRENSIONE.
    Quando si presenta in classe un nuovo argomento è utile partire dal livello più concreto possibile, e passare via via ai livelli più astratti. Si segue sostanzialmente lo sviluppo cognitivo del bambino, che inizia ad esplorare con i propri sensi il proprio corpo, poi il mondo circostante, via via salendo nell'astrazione di quanto viene appreso.
    La scala di comprensione è composta da quattro livello principali e da tre livelli intermedi.
     SCALA DI COMPRENSIONE 
    • Livello CORPO 
    (4D)o o o o
      • manichino
    • Livello OGGETTO
     (3D)o o o
      • oggetto piatto
    • Livello DISEGNO 
     (2D)o o
      • schema
    • Livello SCRITTO/ORALE 
     (1D)o

    Si inizia dall'esplorazione quadridimensionale (4D, cioè lo spazio-tempo del proprio corpo, dove appunto spazio e tempo non sono scissi ma fusi e inestricabilmente amalgamati), si continua scindendo lo spazio e il tempo sempre più, prima a livello oggetto (3D tridimensionale), poi a livello di disegno (2D, cioè immagine bidimensionale), per terminare con il flusso astratto del pensiero (1D, cioè monodimensionale, come lo scritto sequenziale di un libro, o quello del dialogo interiore dentro la propria mente).
    È utile percorrere con i discenti la scala di comprensione di un argomento sia aumentando il livello di astrazione, sia diminuendolo. Andando su e giù, facendo esperire il concetto da apprendere sui diversi scalini della scala di comprensione.
    In particolare la scala di comprensione è utili ad aiutare gli studenti che non hanno compreso nel modo corretto un concetto evidentemente troppo astratto per loro in quel dato momento; in questo caso è conveniente diminuire il livello di astrazione (andare mano a mano verso il livello CORPO) per poi risalire, dopo aver ristrutturato il proprio apprendimento (invece di averlo inglobato mutilando sé stessi o mutilando l'apprendimento, si veda la rappresentazione di come apprendiamo).
    (questo post è l'ampliamento di una attività di formazione tenuta a Modena nel 2016 dal pedagogista francese Frédéric Rava, allievo di Antoine De La Garanderie. Si veda anche qui e qui)
    esempi di attività
    • Livello CORPO 
    _ (4D) _
    • formare le lettere dell'alfabeto con il proprio corpo, 
    • la lingua italiana dei segni (LIS)
    • formare l'asse di un segmento utilizzando il proprio corpo come punti dell'asse;
    • saltellare ripetendo le tabelline
      • manichino
    • fare rappresentazioni utilizzando bambole, manichino da disegno, pupazzetto Lego, soldatini, ecc.
    • Livello OGGETTO
    (3D)
      • oggetto piatto
    • sviluppi delle superfici laterali dei poliedri (di carta o cartoncino ritagliato)
    • origami
    • story-gami
    • Livello DISEGNO 
    (2D)
    • storia a fumetti
    • storyboard per un video o una animazione
    • immagini simboliche
      • schema
    • disegnare schemi dell'argomento, 
    • costruire mappe mentali,
    • analizzare o disegnare una mappa di un territorio o una cartina geografica, 
    • Livello SCRITTO/ORALE 
    (1D) 
    • produzione di storie, racconti, cronache
    • esercizi di retorica a gruppi