CoderDojo: come spiegare ai bambini la programmazione nel mondo reale

Si può portare la programmazione nel mondo reale?

A inizio estate ci siamo incontrati per ragionare sulle novità che avremmo potuto introdurre nel CoderDojo. È un’iniziativa che coinvolge molti di noi di Imola Informatica per avvicinare i bambini e i ragazzi alla programmazione e farli appassionare con attività divertenti.

Venivamo da due anni di Scratch nei quali avevamo esplorato quasi tutte le possibilità, compreso stendere l’impasto della pizza! 🙂 Negli eventi di solito portiamo anche attività di Tinkering, un metodo educativo per avvicinare bambini e ragazzi allo studio delle materie STEM (Scienze, Tecnologia, Ingegneria, Matematica) in modo pratico, giocando.

Avendo notato una netta separazione tra le attività di programmazione e quelle di Tinkering, abbiamo valutato la possibilità di avvicinare le due cose: si poteva portare la programmazione nel mondo reale? C’era modo di far toccare con mano gli effetti della programmazione, fuori da un computer?

Ai bambini interesserà?

Abbiamo quindi organizzato un evento con l’obiettivo di dimostrare che i principi di programmazione possono essere connessi alla realtà, ad esempio programmando un robot per eseguire dei movimenti.

I bambini erano stupefatti ed entusiasti!

Avendo avuto un riscontro positivo, abbiamo sviluppato ulteriormente l’idea. Facendo delle ricerche ci siamo accorti che la programmazione poteva essere fatta solo nel mondo virtuale o in quello reale. I due mondi non erano realmente integrati. Ci siamo quindi inventati un mondo per bambini in cui prima si simula una soluzione e poi si verifica, nella realtà, se funziona. Vogliamo quindi condividere qualche dettaglio di questa esperienza.

Un rover su Marte!

Nell’ultimo CoderDojo abbiamo tentato una replica di alcune delle attività che la Nasa ha utilizzato con il “Mars Rover Curiosity”.
Immagine del portale sul quale i bambini caricavano la loro simulazione per inviarla al Mars Rover Curiosity (interpretato da un MBot)

Muovere un robot su Marte è decisamente più complicato che farlo nel cortile di casa. Ogni comando subisce un ritardo di una decina di minuti e il feedback arriva sulla terra dopo altri 10. In quei 20 minuti il rover è fermo e può affondare, scivolare o altro. Quello che si fa in queste situazioni è simulare l’ambiente in cui è presente il robot ed inviargli un pacchetto unico di istruzioni.

 

Abbiamo utilizzato Scratch come simulatore di ambiente e un tool appositamente realizzato da Imola Informatica che prende i comandi del rover simulato e li traduce in un linguaggio Arduino (sia nella versione per Arduino che per MBot). I comandi sono poi inviati ad un Mbot che, nell’ambiente reale, esegue il pacchetto di comandi. I bambini quindi accendevano l’MBot e verificavano se il loro Mars rover andava dove volevano che andasse.

Quando l’Mbot non raggiungeva il traguardo, il primo istinto dei bambini era di spostare gli ostacoli. Dopo un po’ hanno capito che quello che dovevano cambiare era la posizione degli ostacoli nella simulazione.

Qualche dettaglio sul progetto

Il progetto Scratch non è altro che un file compresso con all’interno immagini comandi e suoni utilizzati dal programma, in particolare c’è un file json con all’interno il codice legato ad ogni singolo sprite. Il traduttore estrapola il codice dello sprite che nella simulazione rappresentava il robot e traduce ogni comando nel corrispondente comando per MBot (o Arduino) per permettere un maggior riutilizzo. Non tutti i comandi però possono essere tradotti. Ad esempio, il robot non ha cognizione dei punti cardinali quindi i comandi “punta in alto” non possono essere eseguiti.

Nell’evento la simulazione era fornita ai bambini, che dovevano solo modificarla se necessario e scrivere i comandi da impartire al robot. Al prossimo evento probabilmente riporteremo questo sistema di simulazione ma chiederemo di osservare il capo in cui si muoverà il Mars Rover (la realtà) e successivamente di creare la simulazione.

A questo progetto hanno partecipato Francesco Panico, Luca Poli, Giuliano Santandrea, Alberto Tartaglione e Giacomo Lorenzo. Per la realizzazione del progetto di simulazione abbiamo coinvolto 2 stagisti delle scuole superiori venuti in azienda per l’alternanza scuola lavoro.

Mi diverto con i computer sin da bambino, prima per gioco, poi come studente e infine per lavoro. Ho lavorato in molti ambiti: coaching, insegnamento, sviluppo e l'enterprise architecture. Ho ricoperto tutti i ruoli presenti nell'IT: sviluppatore, tester, architetto IT, team leader, scrum master, manager, stakeholder, committente ... Un giorno insegnavo a dei bambini a creare dei piccoli videogiochi: ho scoperto che un bambino era riuscito a programmare senza aver prima imparato a leggere e scrivere. Non immaginavo fosse possibile. Quel bambino mi ha fatto capire che per trovare soluzioni innovative ai problemi, a volte serve cambiare punto di vista. Ogni giorno accendo il computer per realizzare le aspettative dei nostri clienti, conscio che c'è sempre un modo di fare le cose, anche se queste sembrano difficili o impossibili.