Wednesday, January 20, 2016

Coding Time


Negli ultimi mesi il CREMIT, il centro di ricerca che dirigo in Università Cattolica, si è trovato coinvolto in alcuni progetti di ricerca e formazione che ruotano attorno al Coding. Penso in particolare alla ricerca SMART Coding, condotta insieme all’INDIRE e diretta a verificare le rappresentazioni degli insegnanti, degli studenti e dei loro genitori in materia di coding, e al progetto It’s Coding time che vede coinvolta una grossa rete di scuole della provincia di Parma e nel quale il CREMIT è impegntao, insieme al Servizio Marconi dell’USR Emilia Romagna e alla cooperativa Officine on/off di Parma, in un doppio percorso, di formazione degli insegnanti e ancora una volta di ricerca sul senso e l’efficacia del fare coding in classe.
Come si ricorderà, il coding, insieme allo sviluppo della creatività, al ruolo dell’arte e della musica, era uno dei temi in primo piano nel documento sulla “Buona Scuola” che legava a esso la possibilità per la scuola di fare innovazione e di avvicinare i suoi linguaggi e le sue pratiche a quelli del mondo degli studenti. Ma che cos’è il coding?

Da Scratch ai FabLab

Coding, se lo traducessimo letteralmente dall’inglese, vorrebbe dire “fare codice”. Ovvero: programmare, scrivere codice, usare il linguaggio della macchina per fornirle istruzioni e farla operare secondo le nostre intenzioni. La sua diffusione, in Italia, è legata alla nascita dei primi Coderdojo nel 2012, degli spazi creativi la cui finalità era ed è la diffusione gratuita della cultura della programmazione, soprattutto ai più piccoli. Tra le attività da essi promosse vi sono corsi di programmazione in HTML5 e Javascript (due dei linguaggi più diffusi), corsi sull’uso di Arduino, una scheda elettronica programmabile che consente di sviluppare microrealizzazioni (e infatti, anche con i bambini, una delle applicazioni più interessanti del coding è proprio la realizzazione di piccoli robot), l’uso di Scratch.
Scratch (cfr. in Internet, URL: https://scratch.mit.edu/) è un linguaggio di programmazione a oggetti ispirato alla teoria costruzionista e sviluppato da Mitchel Resnick presso il MediaLab del MIT di Boston. La finalità del programma è di consentire anche ai bambini di programmare operando su un linguaggio molto visuale che ha alla base la metafora del gioco di costruzioni. Come nel LEGO, si tratta di mettere insieme dei blocchi nel giusto ordine.
Tutte queste attività sono spesso parte integrante dei FabLab, dei luoghi creativi che si stanno diffondendo rapidamente nelle nostre realtà urbane e che si pensano come uno spazio in cui sia possibile l’aggregazione giovanile, il co-working e lo sviluppo d’impresa. In un FabLab si fa naturalmente coding, ma oltre a questo si dispone di stampanti 3D grazie alle quali realizzare materialmente i propri progetti e di altre macchine, come le lasercutter, grazie alle quali realizzare gli stessi oggetti facendoli ritagliare e scolpire dal laser a partire da un materiale dato. Molti FabLab entrano in contatto con le scuole, le accompagnano nei percorsi di coding e poi consentono ai bambini di produrre materialmente le loro creazioni.

Prepararsi al futuro e pensare con stile

A cosa può servire portare in scuola tutto questo? E alla primaria, in particolare? Si può rispondere rifacendosi  ai risultati di una ricerca che alcuni studiosi finlandesi hanno condotto sulle motivazioni che stanno alla base del coding e della sua promozione nelle scuole.
La prima di queste motivazioni è funzionalistica. In una società dell’informazione come la nostra, in cui la rivoluzione digitale e la diffusione delle tecnologie dell’informazione hanno pervaso e improntano di sé praticamente qualsiasi ambiente di vita e professione, fare coding già alla scuola primaria significa iniziare a conoscere e usare i linguaggi che in futuro consentiranno al bambino un migliore inserimento nel mondo del lavoro.
Una seconda motivazione è espressiva. Imparare un linguaggio significa sempre poterlo poi usare in maniera creativa. Il coding andrebbe dunque legato allo sviluppo della creatività del bambino, servirebbe a fornirgli un ulteriore elemento per liberare le sue possibilità comunicative. Dentro una “scuola del fare” il coding è la versione aggiornata di tutti quei materiali e di tutti quei linguaggi grazie ai quali si è sempre favorito l’avvicinamento del bambino alla cultura materiale: il coding, oggi, come la tipografia al tempo di Freinet.
I sostenitori del coding dicono a questo riguardo che esso favorirebbe lo sviluppo del pensiero computazionale, alludendo al fatto che il nostro cervello lavorerebbe in questi termini, cioè costruendo e applicando algoritmi alle sue scelte di azione. Ora, la recente ricerca neuroscientifica ha dimostrato che il modello di comprensione di come lavora il nostro cervello è l’embodiment più che il pensiero computazionale: noi funzioniamo in maniera adattiva e complessa, siamo un organismo e non un computer. Ma certo la capacità di costruire e utilizzare algoritmi (cioè mettere in fila le sequenze di operazioni che ci possono consentire di svolgere un compito complesso) è importante. Anche senza le macchine è possibile lavorarci già dalla scuola dell’infanzia: insegnando al bambino a comprendere ed eseguire ordini, abituandolo a risolvere problemi pianificando percorsi, favorendone l’acquisizione di routines. Fare coding insegna a pensare, a pensare con stile.

Dietro le interfacce

Vi sono ancora due motivazioni alla base del coding. Una è legata alla sua funzione interpretativa. Lo sviluppo dell’informatica di consumo è legato alle interfacce grafiche. Quando siamo davanti al nostro computer e con un clic sull’icona del formato cambiamo la giustificazione del testo sullo schermo, con un gesto estremamente semplice abbiamo ottenuto un risultato che dal punto di vista delle istruzioni date alla macchina è molto complesso. Gli americani esprimono tutto questo dicendo che “what you see is what you get”, “quel che vedi è quello che ottieni”. Noi non sappiamo cosa sia successo “dietro” all’interfaccia: ci basta sapere che quel clic produce quel risultato. Bene, imparare a conoscere i linguaggi significa capire a cosa corrisponda quel clic: significa sviluppare consapevolezza e, con essa, senso critico.
E arriviamo così all’ultimo significato del coding, un significato emancipatorio. Analisi e sintesi, smontare e rimontare, sono da sempre le operazioni-chiave del pensiero occidentale. Impararle significa emanciparsi dal rischio di essere controllati. Questo vale anche nel mondo dei media digitali, un mondo nel quale come dicevamo spesso rinunciamo al controllo in cambio della facilità. Certo, se all’impaginazione del mio testo ci pensa il programma da solo, per me è più comodo, ma in questo modo mi sto adeguando alle scelte che il programma ha fatto al mio posto. Conoscere il codice vuol dire, invece, poter fare diversamente.

A queste istanze – smontare i messaggi, pensare autonomamente – sono legati i temi della cittadinanza attiva e del media-attivismo. Il valore ultimo del coding sta proprio in questo suo potenziale educativo: fare coding significa sviluppare la lifeskill del pensiero critico, significa fare Media Education.