Dal Media Lab del MIT, Mitch Resnick spiega perché l’insegnamento della programmazione ai bambini è ormai fondamentale (e non per il lavoro che faranno da grandi)
Mitch Resnick dirige il Lifelong Kindergarten group al MIT Media Lab, che si occupa di aiutare i bambini di tutte le età a sperimentare attraverso il design. In questo TED Talk parla della sua esperienza diretta con i bambini al MIT che stavano provando Scratch il programma che in quel periodo stava sviluppando col suo gruppo di ricerca e alle conclusioni a cui è arrivato: imparare a programmare non ha a che fare con il mestiere che si farà da grandi, ma è un’abilità molto più ampia. Di seguito, la trascrizione del talk.
Il biglietto d’auguri per la mamma
Era un sabato pomeriggio di maggio e, improvvisamente, mi sono reso conto che il giorno dopo era la festa della mamma, e non avevo preso niente per mia mamma, perciò ho iniziato a pensare cosa posso prenderle? Mi sono chiesto, perché non le faccio un biglietto d’auguri interattivo usando Scratch, il software che stavo sviluppando con il mio gruppo di ricerca al Media Lab dell’MIT? Lo abbiamo sviluppato in modo che la gente potesse facilmente creare le proprie storie, giochi e animazioni interattive, per poi condividere le loro creazioni. Dunque ho pensato che poteva essere un’opportunità di usare Scratch per fare un biglietto interattivo per mia mamma. Prima di creare il mio biglietto per la festa della mamma, ho pensato di dare un’occhiata al sito web di Scratch. In questi ultimi anni, i bambini di tutto il mondo dagli 8 anni in su, hanno condiviso i loro progetti, così ho pensato: mi chiedo se, fra questi tre milioni di progetti, qualcun’altro abbia pensato di inserire anche dei biglietti per la festa della mamma. Allora ho scritto nella casella di ricerca “Festa della mamma,” e sono rimasto sorpreso e anche felice di vedere una lista di decine e decine di biglietti d’auguri per la festa della mamma che sono venuti fuori nel sito di Scratch, e molti di questi erano apparsi proprio nelle ultime 24 ore da persone che aspettano sempre fino all’ultimo minuto, come me. Così, ho iniziato a dare un’ occhiata a questi biglietti. Ne ho visto uno con un gattino che augurava alla sua mamma una buona festa della mamma. E il suo autore teneramente offriva un replay per la sua mamma. Un altro biglietto era un progetto interattivo in cui, muovendo il mouse sopra alle lettere che compongono “Buona festa della mamma”, appare una frase speciale sulla festa della mamma. In questo, l’autore racconta la storia di come ha dovuto cercare su Google per scoprire che giorno era la festa della mamma. E una volta che ha scoperto quand’era ha mandato un biglietto d’auguri speciale per la festa della mamma dicendo quanto bene voleva alla sua mamma.
Scratch
Quindi mi è piaciuto molto vedere e interagire con questi progetti. Mi è piaciuto così tanto che invece di creare un mio progetto personale, ho inviato a mia mamma link a decine di questi progetti. E, a dire la verità, lei ha reagito esattamente come speravo reagisse. Mi ha risposto anche lei con un biglietto che diceva, “Sono orgogliosa di avere un figlio che ha creato il software che ha permesso a questi bambini di creare dei biglietti d’auguri per le loro madri”. Quindi mia mamma era contenta e io ero contento per lei ma in realtà un’altra cosa mi rendeva ancora più felice.
Ero felice perché questi ragazzi stavano usando Scratch proprio nel modo in cui speravamo.
Vederli creare questi biglietti interattivi per la festa della mamma, mi ha dimostrato che erano diventati davvero fluenti con le nuove tecnologie. Che cosa voglio dire quando dico “fluenti”? Voglio dire che questi ragazzini sono riusciti a esprimere loro stessi e a iniziare ad esprimere anche le loro idee. Quando si diventa fluenti in una lingua, vuol dire che si può scrivere una pagina di diario o raccontare una barzelletta, o scrivere una lettera ad un amico. Anche per le nuove tecnologie è così. Scrivendo, creando questi biglietti interattivi per la festa della mamma questi ragazzi hanno dimostrato di essere molto fluenti nelle nuove tecnologie.
Essere fluenti con le tecnologie
Forse non ne rimarrete stupiti, perché molte volte le persone hanno l’impressione che i giovani al giorno d’oggi possano fare qualsiasi cosa con la tecnologia. Voglio dire, tutti abbiamo sentito dire che i giovani sono “nativi digitali”. Ma, a dire la verità, sono un po’ scettico su questo termine. Non sono così sicuro che considerare i giovani come “nativi digitali” sia il modo giusto di pensare a loro. Pensandoci bene, qual è il modo in cui i giovani passano la maggior parte del tempo usando le nuove tecnologie? Li vediamo spesso in situazioni come questa, o come questa, e non c’è dubbio che i giovani hanno familiarità e dimestichezza nel navigare in internet e a chattare, a mandare messaggi e a giocare. Ma questo non basta per renderti fluente. Al giorno d’oggi i giovani hanno molta esperienza e molta familiarità ad interagire con le nuove tecnologie, ma non a creare usando nuove tecnologie e ad esprimersi attraverso le nuove tecnologie. È come se riuscissero a leggere ma non a scrivere con le nuove tecnologie. Mi interessa molto capire come possiamo aiutare i giovani a diventare fluenti in modo che possano scrivere con le nuove tecnologie. E questo significa che loro devono essere veramente in grado descrivere i propri programmi per il computer, o programmare.
L’importanza del coding
Quindi le persone si rendono conto sempre di più dell’importanza di imparare a programmare. Sapete, negli ultimi anni, ci sono stati centinaia di nuove organizzazioni e siti web per aiutare i giovani ad imparare a programmare. Cercando online, si trovano posti come Codecademy ed eventi come CoderDojo e siti come Girls Who Code, o Black Girls Code. Sembra che tutti stiano iniziando ad interessarsene. Proprio all’inizio di quest’anno, per l’anno nuovo, il sindaco di New York Michael Bloomberg ha deciso, come proposito per l’anno nuovo, di imparare a programmare nel 2012. Qualche mese dopo, l’Estonia ha deciso che tutti i bambini in prima elementare avrebbero dovuto imparare a programmare. E questo ha scatenato un dibattito nel Regno Unito sulla necessità per tutti i bambini di imparare a programmare. Ora, a qualcuno di voi sembrerà strano tutto questo parlare di imparare a programmare. Quando si parla di programmare, molta gente pensa che sia qualcosa che solo un piccolissimo gruppo sa fare, e pensano che programmare assomigli a questo. E di sicuro se programmare rimarrà così, saranno solo piccoli gruppi, pochissime persone con abilità matematiche particolari e una formazione informatica ad essere in grado di programmare. Ma programmare non deve necessariamente essere così. Adesso vi farò vedere come si fa a programmare su Scratch. Per programmare su Scratch, basta agganciare tessere tra loro. In questo caso, si prende una tessera “muovi” la si sistema in una pila, e le pile di tessere controllano i movimenti dei diversi personaggi nel gioco o nella storia, in questo caso il pesce. Dopo aver creato un programma, puoi cliccare su “condividi”, e condividere il progetto con altre persone, in modo che lo possano usare e iniziare a lavorarci su. Ovviamente, fare un gioco con i pesci non è l’unica cosa che si può fare con Scratch. Nei milioni di progetti sul sito c’è di tutto: storie animate, progetti di scienze per la scuola, soap opera con personaggi dei cartoni, kit per costruzioni virtuali, nuove versioni di classici dei video game, sondaggi sulla politica, tutorial di trigonometria, opere d’arte interattive e anche biglietti interattivi per la festa della mamma.
Mondo reale e virtuale
Quindi credo ci siano tanti modi diversi in cui ci si può esprimere usando Scratch, per poter sviluppare e condividere le proprie idee con il mondo. E non è limitato al mondo virtuale. Si può programmare per interagire con il mondo fisico intorno a noi. Ecco un esempio da Hong Kong, dove alcuni bambini hanno creato un gioco e poi hanno costruito un dispositivo d’interfaccia fisica che ha un sensore per la luce. Questo sensore riesce a localizzare un buco nell’asse, quindi,muovendo la sega reale il sensore luce localizza il buco e controlla la sega virtuale sullo schermo che taglia l’albero. Si continueranno a cercare altri modi per far convergere il mondo reale e il mondo virtuale e per collegarsi al mondo in cui viviamo. Questo esempio viene da una nuova versione di Scratch che verrà lanciata nei prossimi mesi, e stiamo tuttora cercando di fare in modo di aprire nuove direzioni per tutti. Ecco un esempio. Si usa la webcam. Quando muovo la mano, posso far scoppiare i palloncini o posso muovere quell’insetto. Quindi è un po’ come il Microsoft Kinect, dove si interagisce attraverso gesti. Però, invece di giocare con un gioco fatto da altri, qui si possono creare i propri giochi, e se si vede il gioco di qualcun’altro, basta dire “vedi all’interno”, e si possono vedere le pile di tessere che lo controllano. C’è una nuova tessera che regola la presenza di movimento così, se c’è una certa quantità di movimento, allora la tessera dirà al palloncino di scoppiare.
Programmare per imparare
Il modo in cui viene usata la fotocamera per inserire informazioni su Scratch, funziona anche se si usa il microfono. Questo è un esempio di un progetto che usa il microfono. Allora, lascerò controllare il gioco a tutti voi usando le vostre voci. Quando i bambini creano un progetto come questo, imparano anche a programmare, ma, cosa ancora più importante, programmano per imparare. Perché imparando a programmare, imparano mille altre cose, aprendo nuove opportunità di apprendimento. Ripeto, è utile fare un’analogia con la lettura e la scrittura. Quando si impara a leggere e scrivere, si aprono nuove opportunità per imparare molte altre cose. Quando si impara a leggere, allora si potrà anche leggere per imparare. E imparare a programmare è la stessa cosa. Se si impara a programmare, allora si potrà anche programmare per imparare. Ora, alcune cose che si imparano sono piuttosto ovvie. Si impara qualcosa di più su come funzionano i computer. Ma questo è solamente il punto di partenza. Quando si impara a programmare, si apre la possibilità di imparare molte altre cose.
Victor
Adesso vi mostro un esempio. Ecco un altro progetto che ho visto quando stavo visitando uno dei club del computer. Questi sono dei centri di apprendimento dopo-scuola, che abbiamo contribuito a far partire che aiutano i giovani delle comunità a basso reddito ad imparare a esprimere loro stessi in modo creativo per mezzo delle nuove tecnologie. Un paio di anni fa, quando sono andato in uno di questi club, ho visto un ragazzo di 13 anni che stava usando il nostro software, Scratch, per creare un gioco simile a questo,ed era molto soddisfatto e orgoglioso del suo gioco, ma voleva fare di più. Voleva tenere il punteggio. Stiamo parlando di un gioco dove il pesce grande mangia il pesce piccolo, ma lui voleva tenere il punteggio, in modo che ogni volta che il pesce grande mangiava il pesce piccolo, avrebbe guadagnato punti e poi salvato, ma non sapeva come fare. Così gliel’ho fatto vedere. Con Scratch, si può creare quella che viene chiamata variabile. Io lo chiamo punteggio. E questo crea delle nuove tessere, e crea anche una tabella segnapunti che memorizza il punteggio, così ogni volta che clicco su “cambia il punteggio”, il punteggio viene incrementato. L’ho fatto vedere a questo ragazzino del club — possiamo chiamarlo Victor — e Victor, quando ha visto che questa tessera gli permetteva di incrementare il punteggio, ha capito esattamente quello che doveva fare. Ha preso la tessera e l’ha inserita nel programma esattamente dove il pesce grande mangia il pesce piccolo. Così, ogni volta che il pesce grande mangia il pesce piccolo, il punteggio salirà di un punto. E funziona. Quando l’ha visto era così entusiasta che mi ha dato la mano, e mi ha detto, “Grazie, grazie, grazie.” In quel momento ho pensato,quante volte capita che gli studenti ringrazino i loro insegnanti per aver insegnato loro le variabili? (Risate)Non succede per la maggior parte delle classi, perché nella maggior parte delle classi, quando i ragazzi imparano le variabili, non sanno perché le devono imparare. In realtà, non sono qualcosa che possono usare praticamente. Quando si imparano idee come questa su Scratch, le si può imparare in un modo veramente significativo e stimolante, in modo che si possa capire il motivo per cui si devono imparare le variabili, e vediamo che in questo modo i bambini imparano di più e imparano meglio. Sono sicuro che Victor ha dovuto studiare le variabili a scuola ma non le ha imparate davvero, perché non stava facendo attenzione. Mentre adesso ha un motivo per imparare le variabili. Quindi quando si impara programmando, e si programma per imparare, si sta imparando in un contesto significativo, e questo è il modo migliore per imparare.
Altre abilità
Quindi, quando bambini come Victor creano progetti come questo, imparano anche concetti importanti come le variabili, ma questo è solo l’inizio. Victor, lavorando a questo progetto e creando il codice, ha imparato anche il processo della progettazione, come iniziare col barlume di un’idea e trasformarla in un progetto completamente sviluppato e funzionante come potete vedere qui. Quindi, Victor ha imparato molti principi basilari di della progettazione, come sperimentare nuove idee, come prendere idee complesse e spezzettarle in parti più semplici, come collaborare con altre persone per i propri progetti, come trovare e correggere errori nel software quando qualcosa va storto, come essere tenace e perseverare nonostante lo scoraggiamento che si prova quando le cose non stanno andando bene. Queste sono tutte abilità importanti che non hanno a che fare solo con la programmazione di codici. Sono importanti anche per qualsiasi attività. Ora, chi lo sa se Victor diventerà un programmatore o un esperto di informatica. È probabile che non succeda, ma a prescindere da quello che farà, sarà comunque in grado di fare uso di questa capacità di progettazione che ha imparato. A prescindere dal fatto che diventi un responsabile marketing o un meccanico o un organizzatore nella comunità, queste idee sono comunque utili a tutti. Ripeto, è utile fare un’analogia con il linguaggio. Quando si diventa fluenti a leggere e scrivere non lo si fa solamente per diventare uno scrittore di professione. Poche persone diventano scrittori di professione. Ma imparare a leggere e scrivere è utile a tutti. Ed è la stessa cosa per la programmazione. La maggior parte delle persone non diventerà un esperto di informatica o un programmatore, ma l’abilità di pensare in modo creativo, pensare schematicamente, lavorare collaborando con gli altri – queste sono abilità che si sviluppano anche quando si programma con Scratch – sono cose che le persone possono usare, indipendentemente dal lavoro che fanno.
Non è una questione lavorativa
E non ha a che fare solamente con la vita lavorativa. Programmare permette anche di esprimere le proprie idee e sentimenti a livello personale. Concluderò con un altro esempio. Questo è successo dopo che ho mandato a mia mamma il biglietto per la festa della mamma, e lei ha deciso che voleva imparare ad usare Scratch. Così, ha creato un progetto per il mio compleanno e mi ha mandato un biglietto di buon compleanno fatto con Scratch. Ovviamente, questo progetto non vincerà alcun premio di design, e potete stare sicuri che mia mamma non ha l’ambizione di diventare un programmatore di professione, visto che ha 83 anni. Ma lavorare a questo progetto le ha permesso di creare un nuovo legame con una persona a cui vuole bene e le ha permesso di continuare ad imparare cose nuove e di continuare a esercitare la sua creatività e sviluppare modi nuovi di esprimere se stessa. Quindi, quando diamo un’occhiata e vediamo che Michael Bloomberg sta imparando a programmare, i bambini in Estonia stanno imparando a programmare, perfino mia mamma ha imparato ha programmare, non pensate che sia giunto il momento di pensare ad imparare a programmare? Se vi interessa fare un tentativo, vi esorto ad andare su Scratch. Ovvero scratch.mit.edu, e provate a programmare!