Ci siamo lasciati ad inizio dicembre 2013, con la nostra prima “merenda robotica”: è stata un’esperienza apprezzata da tutti i partecipanti e questo ci spinge a migliorarla ulteriormente e riproporla nelle prossime settimane.
Il post di oggi riguarda invece un altro aspetto al centro dell’impegno di “A Bit C”: avvicinare bambini e ragazzi alla programmazione.
Da qualche cassettino della memoria abbiamo tirato fuori il LOGO, un linguaggio di programmazione particolarmente “facile”, destinato proprio ai bambini: nato nel 1967 su base LISP ( un altro linguaggio di programmazione diffuso nell’epoca ), è diventato negli anni famoso nelle versioni che prevedevano l’impiego di un puntatore a forma di “tartaruga” ( anche se nelle prime versioni, era necessaria molta fantasia ).
Da un altro cassettino è uscito anche Big Trak, ( http://en.wikipedia.org/wiki/Big_Trak ), un piccolo carro armato giocattolo degli anni 80, che era possibile programmare attraverso un tastierino, per farlo muovere secondo una sequenza preimpostata.
Visto che da queste esperienze un po’ di anni sono passati, ci siamo chiesti: “cosa c’è a disposizione dei bambini di oggi, per avvicinarsi alla programmazione?”.
Lo strumento più diffuso è sicuramente “Scratch”, nelle sue numerose varianti e interpretazioni: scopriamolo più da vicino.
Scratch
si tratta di un linguaggio di programmazione altamente visuale, nato nel 2006: i programmatori, giovani e non, vengono messi in condizione di animare degli elementi sullo schermo, facendoli interagire – se lo vogliono – tra di loro, attraverso dei blocchi di codice standard: “muovi l’oggetto sullo schermo”, “fallo ruotare”, etc.
Scratch è molto diffuso anche in Italia, in quanto spesso scelto come punto di partenza dai numerosi CoderDojo ( vere e proprie palestre di programmazione ) presenti anche nel nostro Paese ( http://www.coderdojoitalia.org/ ).
Per diffondere anche da noi l’impiego di questo linguaggio, l’associazione Dschola ( http://www.dschola.it/ ) dal 2012 organizza l’Italian Scratch Festival, che nel 2013 ha coinvolto più di 30 scuole.
Per iniziare con Scratch, il giusto punto di partenza è il sito dedicato: http://scratch.mit.edu/.
Anche se viene impiegato con bambini piccoli ( a partire dai 5 anni ), questo linguaggio inizia ad esprimere al meglio il suo potenziale educativo a partire dagli 8 anni.
La natura visuale e ad oggetti di Scratch si sposa al meglio con l’immediatezza dell’interazione tramite interfacce “touch”, a cui sempre più bambini si stanno abituando grazie alla crescente diffusione dei tablet.
Proprio in questa direzione, sono nate delle applicazioni che, inspirandosi a Scratch, rendono ancora più facile l’esperienza di apprendimento. Tra queste, particolarmente degna di nota è “Hopscotch”, scopriamola 😉
Hopscotch
Hopscotch è un’applicazione gratuita per tablet iPad. Ben impostata e facile da impiegare, permette di creare facilmente piccoli giochi, in maniera molto simile a scratch, da cui prende ispirazione diretta. I progetti possono essere condivisi, per poi essere ulteriormente ripresi e rielaborati ( remixati, per usare un loro termine ) da altri programmatori. L’integrazione con il tablet è notevole: ad esempio, si può usare il microfono per avviare un’azione. Un suono forte può “spaventare” un mostro e farlo scappare o ancora, farlo rimpicciolire. Anche l’inclinazione del tablet può essere impiegata, consentendo la creazione di giochi particolarmente interessanti.
L’età ideale per avvicinarsi ad Hopscotch è tra gli 8 ed i 12 anni e per metterlo alla prova, si può partire da qui: https://www.gethopscotch.com/
Come nel caso di Scratch, non è ancora pronto per Hopscotch un percorso di apprendimento.
In questo senso, potrebbe essere interessante conoscere più da vicino … Tynker!
Tynker
Disponibile sul sito Tynker.com, ancora una volta siamo di fronte a qualcosa che trova le sue radici in Scratch: moduli di azioni che permettono di gestire degli oggetti sullo schermo, direttamente tramite il browser.
Questa volta però siamo di fronte a qualcosa di molto più strutturato: Tynker offre delle vere e proprie lezioni, corrispondenti a delle scenette, che guidano esercizio dopo esercizio i giovani programmatori ( la cui età di destinazione è tra i 9 ed i 13 anni, anche se le prime lezioni possono tranquillamente essere affrontate da bambini più piccoli ) nell’apprendimento dei diversi concetti legati alla programmazione ( azioni, cicli, cicli condizionali, variabili, etc. ). Un sistema di “gamification” offre numerosi incoraggiamenti, premiando i diversi progressi e stimolando un continuo progresso.
Tynker, nel caso di impiego da parte di singoli bambini, non è gratuito: costa 50 dollari. Se però offerto in un contesto scolastico, è prevista una versione gratuita, oltre a dei moduli “premium”.
Rispetto ad altre risorse, Tynker è sicuramente ben impostato: per metterlo alla prova, si può utilizzare l’ora di programmazione ( hour of code, http://code.org/ ), un’iniziativa a cui Tynker aderisce per consentire a programmatori e docenti di mettere alla prova le varie proposte educative.
L’indirizzo da cui partire è questo: http://www.tynker.com/hour-of-code/
Come abbiamo, visto, Tynker si rivolge a bambini che hanno già qualche anno di scuola alle spalle. Per i più piccoli, esistono delle alternative, tra cui l’interessante Kodable
Kodable
Kodable insegna le basi: logica, sequenze, condizioni, cicli, funzioni e … debugging. Grazie ad un percorso progressivo e dinamiche di gioco, è in grado di accompagnare i bambini già a partire dai 5 anni nell’apprendimento intuitivo di concetti che gli torneranno molto utili nei suoi passi successivi.
Come Hopscotch, Kodable è un’applicazione per iPad. Gratis nella versione di base, permette di acquistare ulteriori lezioni all’interno dell’applicazione stessa. Anche in questo caso, oltre all’applicazione è disponibile del materiale didattico, utile per genitori ed educatori nel supporto dei giovani programmatori.
Per scoprirlo più da vicino, si parte da http://www.surfscore.com/
Se invece si cerca qualcosa di più “giocoso”, Cargo Bot viene in nostro soccorso!
Cargo Bot
Un braccio robotico, delle casse da spostare e .. voilà, un crescendo di puzzle da risolvere è servito.
Cargo Bot, un’applicazione per iPad completamente gratuita, non è un vero e proprio strumento ideato per insegnare a programmare, ma un gioco molto utile per sviluppare un approccio logico in un contesto stimolante e piacevole.
Il gioco è disponibile qui: http://twolivesleft.com/CargoBot/ e per chi vuole cimentarsi nello sviluppo di giochi simili, lo si può fare direttamente tramite l’iPad grazie al linguaggio Codea ( http://twolivesleft.com/Codea/ ), adatto in questo caso ai ragazzi con già alle spalle una certa domestichezza con la programmazione in generale.
AppInventor
Nel nostro percorso, ci siamo già imbattuti in molte app. Del resto, data la diffusione di smartphone e tablet ed il loro costo costantemente in discesa, è facile che bambini e ragazzi ne abbiano a disposizione uno.
Se le app viste fino ad ora erano prevalentemente per iOS, con AppInventor abbiamo a disposizione una fantastica risorsa per il mondo Android. Di cosa si tratta?
Stiamo parlando di un software gratuito, nato in casa Google e poi traslocato al MIT ( Massachussets Institue of Technology), disponibile come servizio anche via browser, che permette in pochi minuti di generare un’applicazione, perfettamente funzionante, che sarà possibile installare su di uno smartphone Android.
AppInventor è adatto ai bambini un po’ più grandi e tra le tante risorse di cui abbiamo scritto, Scratch a parte, è la prima di cui abbiamo trovato del buon materiale in italiano, disponibile all’indirizzo http://www.app-inventor.it/
Per chi non ha a disposizione uno smartphone, l’ambiente di sviluppo mette a disposizione un emulatore molto completo e reattivo.
Il linguaggio, completamente visuale e per molti aspetti derivato da Scratch, è facilmente impiegabile da ragazzi dai 10 anni di età in su, anche se nello sviluppo di applicazioni più avanzate, richiede molta pazienza e concentrazione.
Le potenzialità sono notevoli: grazie a blocchi capaci di riconoscere comandi vocali, leggere codici a barre, interagire con altri dispositivi grazie al protocollo bluetooth e molto altro, AppInventor consente ai programmatori di sviluppare applicazioni estremamente elaborate e funzionali, in grado in molti casi di competere con applicazioni a pagamento disponibili nello store Android.
AppInventor è, per complessità generale, un gradino sopra alle altre soluzioni viste in questo breve elenco ed anche se promette che le prime applicazioni sono realizzabili in pochi minuti, per sfruttarne appieno il potenziale richiede molto tempo, impegno ed attenzione: una vera e propria sfida per i ragazzi più appassionati, capace però di regalare grandi soddisfazioni.
Si parte da qui: http://appinventor.mit.edu/
CodeHS
Una menzione speciale, nel nostro elenco, la facciamo volentieri per CodeHS, non tanto per quello che è attualmente, ma per quello che potrebbe essere anche da noi in Italia.
Si tratta di un vero e proprio ecosistema, soggetto ad un pagamento mensile, con non solo un percorso guidato per imparare a programmare, ma anche la disponibilità di veri e propri tutor ( un modo per ragazzi un po’ più grandi e con maggiore esperienza di arrotondare un po’ ), in grado di supportare gli studenti nel percorso di apprendimento.
Pensato sia per un percorso individuale che un percorso scolastico, CodeHS avvia gli studenti, per consentire un passaggio “indolore” verso la scoperta di linguaggi di programmazione veri e propri. Non è una delle opzioni più economiche, ma è ben strutturato ed ha molte recensioni positive.
Per conoscerlo meglio: http://codehs.com/
CodeCademy
Chiudiamo questa carrellata con una delle nuove piattaforme di e-learning, che si è specializzata nello sviluppo di competenze su linguaggi di programmazione come JavaScript, Ruby, PHP, Python. Si chiama CodeCademy e per scoprirla si parte da qui: http://www.codecademy.com/
Attraverso un’esperienza di auto-apprendimento completamente gratuita stimolata da continui riconoscimenti, gli utenti di questa piattaforma possono apprendere i rudimenti di molti importanti linguaggi in uso nello sviluppo di applicazioni di ogni genere.
Oltre ai percorsi di apprendimento, CodeCademy cerca di proporsi come punto di incontro, dove esperti ed appassionati possono condividere le proprie conoscenze, aiutando i più inesperti a migliorare.
Siamo di fronte ad una piattaforma adatta a ragazzi un po’ più grandi ( almeno dai 10 anni di età ), che può rivelarsi uno stimolo in più per vivere un rapporto positivo con la programmazione.
Al pari di altre realtà formative, come Kahn Academy ( https://www.khanacademy.org/ ) permette allo studente di gestire in autonomia i tempi del suo apprendere, senza forzature o scadenze, lasciando sempre disponibile ed accessibile il materiale didattico. Avremo modo di entrare più nel dettaglio di queste opzioni, scoprendo anche altre delle numerose piattaforme disponibili.
La nostra carrelata, per ora si chiude qui:
abbiamo visto tante risorse, adatte ad avvicinare bambini e ragazzi alla programmazione: molte di queste sono gratuite e molte altre hanno costi decisamente ridotti. La reale barriera all’ingresso? Purtroppo, la più grande, è la lingua. La maggior parte di queste risorse sono in inglese e per quanto semplici ed orientate a bambini e ragazzi, richiedono un livello di comprensione della lingua inglese che supera quello che mediamente viene fatto apprendere alle elementari ed anche per i bambini delle medie, alcuni passaggi possono risultare indebitamente complessi.
E’ sicuramente questo lo scoglio più grande che rischia di tenere lontano i nostri bambini da quella che altrimenti è un’offerta formativa sempre più interessante.
Lo Stato italiano, contrariamente a Stati come l’Estonia, non ha deciso che imparare a programmare debba far parte del percorso formativo di tutti gli studenti, a partire dai 6 anni di età e per questo motivo, questo tipo di formazione rimarrà – si spera ancora per poco – solo su base volontaria.
Compito di associazioni come A Bit C è quindi anche quello di ridurre le barriere all’accesso a questo tipo di proposte formative e – risorse e supporto permettendo – ci impegneremo nei prossimi mesi anche in questa direzione.
Nel mentre, genitori ed educatori sono chiamati ad uno sforzo in più, per accompagnare i bambini ed i ragazzi nell’impiego di questi strumenti, facendo non solo da guida e accompagnatori nella scoperta e apprendimento dei concetti di programmazione, ma anche da intermediari linguistici nell’accesso agli strumenti. Si tratta di un doppio ruolo davvero sfidante, per cui spesso purtroppo non sono disponibili le giuste risorse.
Alla prossima! 😉
Cerroni Vincenzo dice
Ciao Sig. Giacobbe,
Sono un vecchio tecnico riparatore TV, vorrei tentare di riprogrammare la memoria di un giocattolo di mio nipote; non è tanto il recupero che di per se non è niente, quanto avvicinarlo a riprogrammare una memoria per gioco e forse in futuro chi lo sà?
Sarebbe un giochino certamente più importante che vedere Barba Papa.
Grazie Sig. Giacobbe della sua gentile collaborazione
Vincenzo Cerroni (Ceccano – Frosinone)
Alberto dice
Vincenzo, scusa per il ritardo nel risponderti!
Ci stai coinvolgendo in una bellissima esperienza: un nonno e suo nipote che mettono le mani insieme in un vecchio gioco per ridargli vita, una vera e propria esperienza difficile da dimenticare.
Sono sicuro che tuo nipote, indipendentemente dall’esito dell’esperienza, apprezzerà il tempo passato insieme: se poi avrai modo di spiegargli passo passo quello che stai facendo o comunque cercando di fare, riuscirai anche a trasformare quella che per lui apparentemente è “magia” in un processo che potrà intuire e fare proprio.
I giochi che abbiamo segnalato in questo articolo possono essere d’aiuto, stimolando un processo di apprendimento compatibile con il livello di competenze raggiunto dai bambini e ragazzi che li usano: tienine conto e se vedi che il tuo nipotino si distrarrà durante il vostro esperimento, prova a proporgli in alternativa di esplorare insieme uno di questi giochi, una più che valida alternativa allo stare passivamente davanti alla televisione.
Un saluto!