’
M. Giordano, C. Moscetti
La Guida Coding e Pensiero Computazionale per le ultime tre classi della Scuola Primaria rappresenta un’assoluta novita nel panorama editoriale italiano poiche integra i percorsi disciplinari curricolari, con le attivita di coding e di sviluppo del pensiero computazionale. Un agile strumento per l’insegnante desideroso di innovare la didattica senza rivoluzionare il proprio modo di essere e di lavorare.
Marco Giordano, Caterina Moscetti Prefazione di Michael Lodi
’
’
CO ING
Caterina Moscetti Docente di Scuola Primaria da sempre curiosa esploratrice di nuovi percorsi didattici che rendano la scuola kids friendly. È la responsabile di CoderDojo Sigillo, club gratuito di programmazione per ragazzi, dove si diverte a combinare creatività e tecnologia. Formatrice Piano Nazionale Scuola Digitale, Net Teacher USR Umbria. Nel progetto INDIRE PON Didatec si è qualificata come esperta nell’uso educativo del coding nella scuola primaria. Utilizza le tecnologie per rendere l’apprendimento un processo creativo, collaborativo e divertente. Il coding applicato alla didattica è la sua ultima, entusiasmante, scoperta.
CO ING e pensiero computazionale nella Scuola Primaria
Marco Giordano Ha studiato ingegneria elettronica per provare che anche gli ingegneri hanno un cuore. Insegna in conservatorio, ha contribuito all’apertura e collaborato nel primo anno di attività del club romano del Coderdojo (un’iniziativa open per l’insegnamento della programmazione a bambini e ragazzi) e partecipa ad un progetto ambizioso di educazione con le tecnologie digitali. Da sempre interessato alla relazione tra espressione artistica e tecnologia, pensa che la passione sia il fuoco che accende la motivazione. Per questo motivo gli piace insegnare coding e tecnologie digitali a bambini, ragazzi e insegnanti. Ma anche e soprattutto, perché impara un sacco di cose…
e pensiero computazionale nella Scuola Primaria
Tutti i progetti Scratch presentati in questo testo sono disponibili sul sito della casa editrice all’indirizzo: http://www.elilaspigaedizioni.it/codingprimaria e nella community di Scratch agli indirizzi: https://scratch.mit.edu/users/EliLaSpiga/ https://scratch.mit.edu/studios/3010435/ https://scratch.mit.edu/studios/3010438/ ISBN 978-88-468-3550-5
O ER SI LE 5 N A 50PE ON 5 E ZI 8-3 G TA 46 IN U 8D P 8-8 M 7 CO CO N 9 B IS cop Coding + dorso.indd 1
Questo volume sprovvisto del talloncino a fianco è da considerarsi campione gratuito fuori commercio.
€ 14,50
INTEGRAZIONI DIGITALI
10/10/16 12:02
Marco Giordano, Caterina Moscetti Coding e pensiero computazionale nella scuola primaria Prefazione di Michael Lodi Responsabile editoriale: Beatrice Loreti Responsabile di produzione: Francesco Capitano Progetto grafico e impaginazione: Foto: Shutterstock
© 2016 Eli – La Spiga Edizioni Via Brecce – Loreto tel. 071 750 701 info@elilaspigaedizioni.it www.elilaspigaedizioni.it
Si ringrazia per la concessione delle immagini il Lifelong Kindergarten Group del MIT Gli autori ringraziano Mitchel Resnick (MIT - Lifelong Kindergarten Group), Carmelo Presicce (MIT - Lifelong Kindergarten Group), Luca Tesauro (Giffoni Innovation Hub), Michael Lodi (Università di Bologna), Maria Beatrice Rapaccini (insegnante - MakerSpace Fabriano), Caterina Maria Sola e tutti coloro che hanno creduto in questo progetto.
Stampato in Italia presso Tecnostampa - Pigini Group Printing Division Loreto - Trevi 16.83.171.0 ISBN 978-88-468-3550-5
Le fotocopie non autorizzate sono illegali. Tutti i diritti riservati. È vietata la riproduzione totale o parziale così come la sua trasmissione sotto qualsiasi forma o con qualunque mezzo senza previa autorizzazione scritta da parte dell’editore.
INDICE PREFAZIONE di Michael Lodi................................................................................................................. 5 1 • Informatica, programmazione, pensiero computazionale................................................................. 5 2 • Pensiero computazionale nella scuola primaria: perché?.................................................................. 6 3 • Pensiero computazionale nella scuola primaria: come?.................................................................... 9
INTRODUZIONE.................................................................................................................................... 15 CAPITOLO 1 – Strumenti.......................................................................................................................... 17 1 • Sviluppare il pensiero computazionale attraverso il coding: quali strumenti.............................. 17 2 • Immagina, crea, gioca, condividi, rifletti: la spirale per lo sviluppo del pensiero creativo.......... 19 3 • Scratch: un ambiente di programmazione visuale........................................................................ 20
CAPITOLO 2 – Indirizzi metodologici................................................................................................... 32 1 • L’ambiente di apprendimento......................................................................................................... 34 2 • Apprendere in modo collaborativo................................................................................................. 37 3 • Osservazione e scoperta.................................................................................................................. 38 4 • Un problema è come un puzzle: l’approccio modulare alla risoluzione dei problemi................. 38 5 • Gli errori sono il miglior modo per imparare................................................................................ 41 6 • Analogico e digitale: due mondi che camminano insieme............................................................ 42 7 • La Valigia degli Script: la cassetta degli attrezzi del programmatore........................................... 43 8 • Costruire i cataloghi digitali............................................................................................................ 44 9 • Come valutare il pensiero computazionale?.................................................................................. 45
CAPITOLO 3 – Digital Storytelling, narrazioni digitali........................................................................ 48 1 • Storytelling e didattica.................................................................................................................... 48 2 • Mi racconto: dal foglio ai bit, tanti modi di rappresentare se stessi............................................. 49 3 • Ti presento Droppy: ascoltare una storia e narrarla con il coding................................................ 57 4 • Alla scoperta del viaggio perenne di Droppy: il ciclo dell’acqua................................................... 61
CAPITOLO 4 – Educazione all’ascolto: il suono prima della musica................................................... 69 1 • Con Droppy alla ricerca dei suoni dell’acqua................................................................................. 70 2 • Inventiamo una storia sui suoni dell’acqua.................................................................................... 74 3 • Una pioggia di note.......................................................................................................................... 79
CAPITOLO 5 – Disegno e arte: dal disegno libero al disegno generativo............................................ 84 1 • Alla scoperta dei volti di Droppy .................................................................................................... 85 2 • Dal disegno tradizionale all’uso dello sketchpad di Scratch......................................................... 86 3 • Il disegno generativo....................................................................................................................... 91
CAPITOLO 6 – Il gioco ......................................................................................................................... 106 1 • Il gioco nella didattica .................................................................................................................. 107 2 • Alla scoperta del gioco e delle sue caratteristiche........................................................................ 108 3 • Giocare con le attività unplugged................................................................................................. 111 4 • I viaggi di Droppy: costruiamo videogiochi................................................................................. 113
Indice
CAPITOLO 7 – Sfide per piccoli programmatori................................................................................ 123 CAPITOLO 8 – La Valigia degli Script.................................................................................................. 128 1 • Gruppo Movimento....................................................................................................................... 129 2 • Gruppo Situazioni......................................................................................................................... 133 3 • Gruppo Aspetto.............................................................................................................................. 135 4 • Gruppo Controllo........................................................................................................................... 137 5 • Gruppo Suono................................................................................................................................ 140 6 • Gruppo Sensori.............................................................................................................................. 141 7 • Gruppo Penna................................................................................................................................ 143 8 • Gruppo Operatori.......................................................................................................................... 143 9 • Gruppo Variabili e Liste................................................................................................................ 145 10 • Gruppo Altri Blocchi..................................................................................................................... 147
GLOSSARIO........................................................................................................................................... 149
PREFAZIONE Michael Lodi*
Pensare come un informatico non vuol dire pensare come un computer! 1 Informatica, programmazione, pensiero
computazionale
Negli ultimi anni anche il docente meno attento e interessato alle nuove tecnologie si è senz’altro imbattuto nel concetto di pensiero computazionale. Si tratta della traduzione di computational thinking, locuzione che ha iniziato ad essere utilizzata dal 2006 nella ricerca in didattica dell’Informatica svolta negli atenei americani e inglesi. Come spesso succede in Italia, i “fenomeni” arrivano in ritardo rispetto ad altri paesi, ma vengono abbracciati poi in modo totale e - a volte - esagerato. Questo porta a chiedersi se quella del pensiero computazionale sia una moda passeggera o piuttosto un’importante innovazione didattica, di contenuti e di metodo. Per rispondere a questa domanda, facciamo un passo indietro. La pervasività della tecnologia nel nostro mondo è palese: smartphone, tablet, lavagne multimediali, ma anche complesse interfacce digitali in automobili ed elettrodomestici. Non a caso anche le preferenze ludiche di bambini e ragazzi sono sempre più orientate verso questo tipo di dispositivi. L’accesso a Internet e ai social network ha cambiato radicalmente il nostro modo di comunicare, relazionarci e, in ultima analisi, vivere la nostra vita. A discapito dell’idea comune, l’Informatica non è la scienza del computer (così come l’astronomia non è la scienza dei telescopi, la biologia non è la scienza dei microscopi, eccetera). L’Informatica si occupa di studiare come venga elaborata, memorizzata e trasmessa l’informazione. Il computer è “solo” uno strumento con cui questo è possibile. Oltre a un potente strumento fisico, il computer appunto, l’Informatica, così come le altre scienze, dispone di strumenti concettuali e linguistici: i linguaggi di programmazione. Tramite i linguaggi di programmazione, è possibile “spiegare ai computer” (che di per sé sono esecutori molto precisi, molto veloci, ma molto stupidi) cosa fare, ovvero, più formalmente, dare loro le istruzioni (in un linguaggio a loro comprensibile) affinché risolvano un problema, forniscano un servizio, elaborino dati, eccetera. Cosa fa dunque un informatico? Formalizza la soluzione di un problema tramite un algoritmo (un algoritmo è una sequenza di passi da compiere per risolvere un problema) e lo traduce poi in un linguaggio di programmazione, demandando così il compito di trovare la soluzione - meccanica e ripetitiva, ma a volte molto laboriosa - a una macchina, che “fa i conti” al posto suo. Dunque la locuzione “pensiero computazionale” è ben lontana dall’essere un invito a “pensare come un computer”. Per il momento, di per sé i computer non “pensano”, almeno non nel modo umano che intendiamo comunemente. È colui che scrive l’algoritmo, e poi il programma, a
*Docente di scuola secondaria, tutor e dottorando all’Università di Bologna. Da sempre appassionato di Informatica, da sempre dispensatore di spiegazioni. Dopo un paio di lauree da informatico teorico, ha unito i puntini occupandosi di insegnamento dell’Informatica in diversi contesti e in maniera creativa. Le sue ricerche, accademiche e personali, vanno dal pensiero computazionale alla… felicità :)
5
Prefazione
dover mettere in atto le sue doti di pensiero: umane e creative, per trovare una soluzione, magari innovativa, ad un problema concreto e reale che si trova davanti. Dunque potremmo dire, in prima battuta, che usare il pensiero computazionale significa “pensare come un informatico per risolvere problemi”. Più formalmente: il pensiero computazionale è un processo di formulazione di problemi e di soluzioni in una forma che sia eseguibile da un agente che processa informazioni. La definizione1 è molto generale: include una qualsiasi formalizzazione che permetta all’esecutore (chi segue una ricetta culinaria, l’appassionato che monta il mobile prefabbricato, il computer che esegue le istruzioni scritte in un preciso linguaggio formale, il robot che salva i feriti in situazioni rischiose, e così via) di risolvere un problema. L’ampiezza e la generalità di questa definizione dovrebbe essere un primo indizio che porta a considerare il pensiero computazionale rilevante in tutti gli aspetti della vita, e dunque rilevante per tutti -, fin dalla scuola primaria.
2 Pensiero computazionale nella scuola primaria:
perché?
Già nel 1962, Alan Perlis (informatico statunitense, tra i pionieri dell’Informatica e dei primi linguaggi di programmazione) sosteneva la necessità per gli studenti del college, di tutte le discipline, di imparare la programmazione e la teoria della computazione, per comprendere in termini computazionali materie quali Matematica ed Economia. La locuzione computational thinking è stata usata per la prima volta da Seymour Papert in Mindstorms2, parlando di educazione matematica con il suo linguaggio di programmazione didattico LOGO, sviluppato al MIT (Massachusetts Institute of Technology). Papert è il padre della teoria dell’apprendimento chiamata costruzionismo, una declinazione del costruttivismo (che fa capo a illustri esponenti quali Jean Piaget e George Kelly). Le teorie costruzioniste e costruttiviste, in estrema semplificazione, ritengono che la conoscenza non sia trasmessa, ma costruita con l’esperienza diretta, anche tramite l’uso di artefatti, sia fisici sia cognitivi. Il linguaggio LOGO, un linguaggio testuale con il quale si danno comandi a una “tartaruga” che disegna forme geometriche sullo schermo, è stato utilizzato in tutto il mondo (e anche in Italia, in alcune sperimentazioni) negli anni Settanta, Ottanta e Novanta per introdurre i bambini, fin dalle scuole elementari, alla realizzazione di forme geometriche digitali in maniera costruttiva: dare le indicazioni alla tartaruga significa dare le istruzioni al computer, cioè descrivere la procedura con cui il disegno deve essere realizzato (esempio, per disegnare un quadrato: per 4 volte, disegna un segmento lungo 100 e gira a destra di 90 gradi). Purtroppo, a partire dagli anni Novanta, si è assistito invece a un cam1 Per una discussione sulla definizione di pensiero computazionale e sulle strategie per insegnarlo al meglio, rimando alla mia tesi di laurea. Lodi, M. (2014), Imparare il pensiero computazionale, imparare a programmare. Laurea magistrale, Università di Bologna. http://amslaurea.unibo.it/6730/ 2 Papert, S. (1980), Mindstorms: children, computers, and powerful ideas, Basic Books New York; tr.it. Mindstorms: bambini, computers e creatività, Emme, Milano 1984.
6
Prefazione bio radicale di rotta per quel che riguarda l’Informatica a scuola: il focus è stato posto sull’alfabetizzazione all’uso di sistemi operativi e software da ufficio (spesso proprietari), o sull’uso del computer come strumento per fruire di contenuti multimediali. Sebbene questi utilizzi siano importanti, hanno in parte allontanato bambini e insegnanti da quell’idea di Informatica come elaborazione di informazioni e risoluzione creativa di problemi, ovvero come strumento per pensare, imparare e imparare ad imparare. L’importanza del pensiero computazionale è stata, negli anni, compresa dalle università e dalla ricerca scientifica: così oggi esistono branche delle varie discipline (come biologia computazionale, archeologia computazionale, eccetera) che si avvalgono, in modo intensivo, non solo dell’uso della tecnologia, ma anche del pensiero informatico per i loro studi. Purtroppo l’istruzione di massa non è andata nella stessa direzione, ignorando quasi completamente il pensiero computazionale. Il problema è stato portato all’attenzione della comunità scientifica nel 2006 da un breve ma influente articolo3 di Jeannette Wing (allora direttrice del Dipartimento di Informatica della Carnegie Mellon University) che fa riemergere l’importanza del pensiero computazionale come “abilità indispensabile per tutti, non solo per gli informatici, che può essere usata nella vita di tutti i giorni oltre che nel lavoro e nelle scienze”. La Wing propone che il pensiero computazionale venga insegnato come “quarta abilità di base”, insieme a leggere, scrivere e calcolare. Da quel momento università, associazioni di insegnanti, governi e ministeri dell’istruzione in tutto il mondo si stanno occupando di rivedere programmi e di introdurre strumenti tecnologici e metodologici affinché il pensiero computazionale sia oggetto di insegnamento nelle scuole. Cerchiamo di analizzare un po’ più nel dettaglio le motivazioni che stanno alla base di questo interesse crescente. Come già detto, viviamo in un mondo in cui le tecnologie sono pervasivamente presenti attorno a noi. Viviamo nella “società dell’informazione”, eppure la conoscenza della tecnologia che ne permette l’elaborazione e la manipolazione è molto bassa. Così come a scuola si studiano le altre discipline per comprendere il mondo che ci circonda, così dovrebbe essere - a maggior ragione oggi - per l’Informatica. L’accesso all’informazione e agli strumenti per elaborarla è oggi anche la principale distinzione tra nord e sud del mondo: il digital divide. Nella nostra società è sempre più difficile comunicare con le pubbliche amministrazioni, cercare lavoro, ma anche socializzare e svagarsi e in generale informarsi senza avere accesso alle nuove tecnologie. L’informatica pervade il mondo del lavoro: è difficile immaginare un mestiere del futuro che non richieda almeno un minimo di conoscenze informatiche (come prevede il co-fondatore di Code.org, Hadi Partovi, ci saranno presto “robot che gireranno hamburger o guideranno camion per il trasporto merci”). Si prevede ad esempio che da qui al 2020 ci saranno 150.000 nuovi posti di lavoro che richiederanno laureati in Informatica, ma le attuali iscrizioni a tale corso di laurea non coprono (se non in piccola parte) tale fabbisogno4. Se non esponiamo fin da gio3 Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49(3), 33-35. 4 Rebooting the pathway to success - preparing students for computing workforce needs
7
Prefazione
vani i ragazzi all’Informatica (nel senso più ampio descritto in precedenza), difficilmente potranno appassionarvisi e decidere - eventualmente - di scegliere una carriera che la riguardi. Ma ci sono motivazioni meno utilitaristiche e più intellettuali. Programmare è un potente strumento di pensiero. Come detto, spiegare ai computer come risolvere un problema richiede una comprensione profonda del problema stesso (che spesso altrimenti rimane poco chiaro, a partire dalla sua formulazione) e della possibile strategia per risolverlo: tale comprensione dev’essere completa e precisa, perché è necessario poi “spiegare” la soluzione a un esecutore molto pignolo e per nulla aperto a libere interpretazioni. E dunque programmare può servire per imparare tante altre cose, così come avviene per la lettura. Dapprima imparare a leggere è il fine dei nostri sforzi. Ma, una volta che siamo “fluenti” nella lettura, possiamo leggere un libro di storia, filosofia, scienze, informatica, pedagogia, e così via. Allo stesso modo, prima si può imparare a programmare e poi si può programmare per imparare: se ad esempio dobbiamo programmare il computer affinché disegni dei poligoni regolari, dovremmo scoprire prima o poi che la somma degli angoli esterni è sempre di 360 gradi, e potremmo farlo in modo pratico e costruttivo, per tentativi successivi, senza bisogno che sia l’insegnante a enunciarci questa regola mnemonica. Imparare a programmare può essere un potentissimo strumento di espressione personale. Spesso si dice che i ragazzi sono “nativi digitali”. Questa locuzione è molto dibattuta e il suo stesso autore l’ha in parte ritrattata: il nostro cervello è sostanzialmente identico da migliaia di anni. I ragazzi di oggi sono molto bravi a usare i dispositivi (spesso perché molto intuitivi, con interfacce touch che non richiedono istruzioni) e a giocare a videogiochi costruiti da altri. Ma raramente sanno interagire con la tecnologia in maniera attiva, cioè non possono utilizzarla per i loro scopi, per realizzare qualcosa di unico e personale. Per usare un’analogia evocativa, è come se sapessero leggere senza saper scrivere. Come visto, leggere è importante, per apprendere e per divertirsi. Ma solo padroneggiando la scrittura un bambino può raccontare - ad esempio - delle sue vacanze in modo unico, personale e creativo. Sapendo programmare, allo stesso modo, potrà realizzare un videogioco per il suo migliore amico, o un biglietto d’auguri per la festa del papà, o ancora una storia animata in cui fa capire di essere triste quando i genitori litigano. E, quando sarà più grande, potrà utilizzare le tecnologie per comunicare, imparare, socializzare, divertirsi, lavorare, fare arte. Non le vedrà come qualcosa di “magico” e “incomprensibile” alla portata di pochi eletti, non sarà spaventato da esse, perché saprà come funzionano, come utilizzarle al meglio, e magari anche quando scegliere coscientemente di non utilizzarle affatto. Programmare può essere uno strumento di crescita personale. Chi realizza software sa che difficilmente si può scrivere un programma perfetto al primo colpo: si procede per raffinamenti successivi, per prove ed errori, in uno sviluppo incrementale continuo (ecco perché, ad esempio, le app sui nostri smartphone ricevono continuamente aggiornamenti). Inoltre, per limiti intrinseci del calcolo automatico, non si può mai avere la certezza che un programma informatico sia “corretto”: l’unico modo per scopriin the United States. Technical report, Association for Computing Machinery (ACM), 2014. http://pathways.acm.org/
8
Prefazione re se funziona è testarlo e farlo testare ad altri, ed eventualmente andare a caccia di bug, cioè di errori, e di correggerli. Un approccio di questo tipo può essere utile in molti ambiti della vita: per liberarsi dal perfezionismo che spesso è causa di procrastinazione e insoddisfazione, per essere aperti all’imprevisto, per sviluppare in generale il cosiddetto growth mindset (l’idea cioè che l’intelligenza possa essere accresciuta con l’impegno e la passione per le sfide). Da quanto detto finora appare chiara la risposta alla domanda con cui abbiamo iniziato questa riflessione: il pensiero computazionale ha un’importanza e una portata tali da non poter più essere trascurato nell’educazione. Proprio per questo, molti paesi l’hanno introdotto nei programmi scolastici, fin dalla scuola primaria. Anche l’Italia si sta muovendo in questa direzione.
3 Pensiero computazionale nella scuola primaria:
come?
Concetti, pratiche e prospettive del pensiero computazionale L’introduzione dell’insegnamento di una nuova e così rilevante area della conoscenza richiede l’individuazione attenta di concetti, pratiche e prospettive che saranno oggetto di apprendimento, studio e valutazione. Senza entrare nel dettaglio, proviamo ad elencare ciò che, secondo la ricerca attuale, fa parte del pensiero computazionale5. Nelle pagine di questo libro incontrerete molti degli elementi elencati in seguito. • Progettando e programmando, i bambini incontrano una serie di concetti che sono comuni a tutti i linguaggi di programmazione: – sequenze: identificare una serie di passi ordinati per risolvere un problema; – condizionali: prendere decisioni in base al verificarsi o meno di una certa condizione; – ripetizioni: eseguire più volte le stesse istruzioni senza doverle riscrivere; – eventi: eseguire istruzioni nel momento in cui accade qualcosa; – parallelismo: far sì che più istruzioni siano eseguite contemporaneamente; – operatori: scrivere espressioni matematiche e logiche; – dati (collezione, analisi, rappresentazione): raccogliere, memorizzare, analizzare e rappresentare informazioni. • Programmando e sviluppando il pensiero computazionale non si apprendono solo concetti, si apprendono anche pratiche, cioè nuovi modi di lavorare e di pensare: – essere incrementali e iterativi: sviluppare un progetto per raffinamenti successivi; – testing e debugging: provare il progetto alla ricerca di errori, e poi risolverli; – riuso e remixing: costruire qualcosa di nuovo sulla base di programmi già scritti da altri; 5 http://scratched.gse.harvard.edu/ct/
9
Prefazione
– scomposizione: scomporre un problema in parti più semplici e facilmente risolubili, per ottenerne poi una soluzione completa; – astrazione: ridurre la complessità per far emergere l’idea principale, tralasciando dettagli inutili e concentrandosi sugli aspetti importanti per la soluzione; – riconoscimento di pattern e generalizzazione: riconoscere che alcune parti della soluzione possono essere riusate o applicate a problemi simili; – automazione: lasciare che sia il computer a svolgere compiti ripetitivi e noiosi, dopo averlo “addestrato”; – simulazione: modellare un processo ed eseguire esperimenti su di esso; – attenzione all’efficienza, calcolabilità e complessità: individuare una strategia di soluzione che porti a un risultato, possibilmente il migliore e usando meno risorse. • Infine il pensiero computazionale può favorire lo sviluppo di prospettive, cioè nuovi modi di vedere il mondo e se stessi: – esprimere se stessi: capire che la computazione può essere un mezzo di espressione; – connettersi: riconoscere il potere della collaborazione con gli altri nella creazione di qualcosa; – farsi domande: utilizzare la computazione per farsi domande sul funzionamento del mondo che ci circonda; – saper gestire la complessità e i problemi difficili: non essere sopraffatti da un problema aperto, ma invece affrontarlo un passo alla volta; – tolleranza per l’ambiguità e i problemi aperti: rendersi conto che i problemi hanno infinite soluzioni, che richiedono ogni volta idee nuove, personali e creative.
Coding e pensiero computazionale Come l’Informatica è più della programmazione, così il pensiero computazionale non può essere identificato con essa. Il pensiero computazionale comunque ha una forte componente legata al coding: il suo obiettivo è quello di descrivere procedimenti effettivi per la risoluzione dei problemi da parte dei computer - al momento questo può essere fatto soprattutto tramite la programmazione. Inoltre la sua definizione origina proprio dalle abilità acquisite dagli informatici progettando e programmando. Attualmente dunque il modo più diffuso, studiato e maturo per favorirne l’acquisizione è - banalmente - insegnare a programmare. Naturalmente tale insegnamento va calato e contestualizzato per il target di riferimento: nel nostro caso, i bambini della scuola primaria. In un’ottica interdisciplinare, ovviamente: costruendo videogiochi, ma anche facendo musica, arte, storytelling e più in generale integrando il coding nei processi di apprendimento di molte altre discipline. Nelle prossime pagine di questo libro, troverete una proposta interessante e basata su importanti ricerche. Infine, come avrete certamente intuito, alcuni concetti, molte pratiche e molte prospettive sono trasversali e possono essere insegnati anche in altre attività, che non necessitano obbligatoriamente di computer e programmazione.
10
Prefazione Per quanto riguarda il coding, tanto in Italia quanto negli altri paesi, sono stati proposti principalmente due approcci. • Il primo approccio è fortemente orientato al problem solving: si forniscono problemi di difficoltà crescente e si chiede al bambino di scrivere un programma in un linguaggio adatto, per esempio in cui le istruzioni sono blocchi colorati che indicano al personaggio l’azione da compiere. I problemi sono resi accattivanti dalla presenza di personaggi animati, spesso tratti da famosi videogiochi. In questo tipo di approccio il bambino è guidato all’apprendimento di concetti, pratiche e prospettive in maniera strutturata: all’inizio si forniscono solo poche istruzioni, poco più di quelle necessarie a risolvere il problema, per poi aumentare gradualmente il numero di istruzioni disponibili e la complessità, e introdurre nuovi concetti, non dimenticando di ripassare e rafforzare i precedenti. • Il secondo approccio è più orientato alla costruzione creativa: si forniscono al bambino, fin dall’inizio, tutti gli strumenti che può utilizzare, quindi tutte le istruzioni del linguaggio scelto. Non si assegna un problema da risolvere, ma piuttosto un progetto da realizzare (il cui tema può essere scelto dallo studente o dall’insegnante) e si lascia che il bambino provi, sperimenti, sbagli e crei liberamente, così come farebbe avendo davanti a sé una scatola di costruzioni senza le istruzioni. Rappresentanti emblematici di questi due diversi approcci sono Code. org6 e Scratch7. Il primo è un progetto pensato per diffondere in maniera capillare il coding e il pensiero computazionale a tutti gli studenti di tutto il mondo, e finanziato da importanti aziende informatiche. Il secondo è un progetto del Lifelong Kindergarten group al MIT Media Lab di Boston, pensato per dare la possibilità a chiunque - principalmente ai bambini e ai ragazzi, ma non solo - di esprimere la propria creatività attraverso un linguaggio di programmazione visuale facile da utilizzare ma dalle potenzialità elevate. Anche nelle proposte italiane sono riconoscibili entrambi gli approcci. Nel “Piano nazionale scuola digitale”8 del 2015 si legge: “Oltre a “Programma il Futuro”, che costituisce l’offerta di base, saranno sviluppate sperimentazioni più ampie e maggiormente orientate all’applicazione creativa e laboratoriale del pensiero computazionale”. Programma il Futuro9 è un progetto del MIUR e del CINI (Consorzio Interuniversitario Nazionale per l’Informatica) che propone le attività di Code.org tradotte in italiano, con l’aggiunta di materiale di supporto per gli insegnanti (spiegazioni approfondite di obiettivi didattici di ciascuna attività, videotutorial, forum di discussione, formazione e supporto agli insegnanti, concorsi...). Si tratta di un progetto ambizioso e utile a “portare il pensiero logico-computazionale a tutta la scuola primaria”10: le attività molto strutturate e il materiale di supporto permettono a tutti gli insegnanti - anche ai meno esperti in questo campo - di proporre attività di coding e pensiero computazionale ai propri alunni. 6 https://code.org/ 7 https://scratch.mit.edu/ 8 http://www.istruzione.it/scuola_digitale/index.shtml 9 http://www.programmailfuturo.it/ 10 (azione #17 del PNSD)
11
Prefazione
Si tratta di una proposta di base, utile per partire, per far appassionare i ragazzi e per facilitare l’insegnante. Il suo principale limite è, come intuibile, lo scarso focus sulla creatività: solo alcuni esercizi proposti lasciano liberi gli studenti di creare i propri giochi, storie o animazioni. Proprio per questo è bene esplorare anche attività più laboratoriali e orientate alla creatività, come chiesto nello stesso piano e come propone il libro che state leggendo. Un fenomeno interessante e ispirato a questi principi è quello dei CoderDojo11, club extrascolastici nati proprio con l’intento di avvicinare i ragazzi alla programmazione con attività di tipo non strutturato, basate sull’apprendimento per scoperta e sulla collaborazione tra pari. Il fenomeno, nato in Irlanda, ha avuto una rapida espansione in Italia: ogni insegnante interessato a questi temi è caldamente invitato a visitare il CoderDojo più vicino12: lì troverà mentor (appassionati volontari, sviluppatori, insegnanti e genitori) che dedicano il proprio tempo libero ad aiutare i ragazzi ad essere creativi con la tecnologia, e potrà meglio comprendere come portare questo approccio nella propria classe.
Robotica educativa e attività unplugged Realizzare un programma per computer o per smartphone non è l’unica applicazione del coding. Sempre più spesso si stanno infatti diffondendo nelle scuole schede elettroniche e robot educativi. L’approccio non cambia: il “cervello” dei robot non è altro che un computer, e dunque va programmato. Sempre più spesso lo si fa con linguaggi visuali: a volte possono essere diversi da quelli più famosi (Blockly e Scratch), ma i concetti, le pratiche e le prospettive del pensiero computazionale che questo tipo di attività sviluppano è invariato - con il vantaggio di fornire oggetti concreti e tangibili sui quali sperimentare, sbagliare, costruire. Infine, come accennato, si può fare pensiero computazionale anche senza programmare… un computer. Sono state proposte molte attività unplugged13: si tratta di attività che non necessitano l’uso di strumenti tecnologici. Sono giochi, da fare con oggetti tradizionali (carta, penna, filo, perline, eccetera), in classe o all’aperto, che sviluppano però concetti, pratiche e prospettive citate14. Chi studia il pensiero computazionale sostiene in particolare l’utilità delle attività in cui gli studenti impersonano agenti computazionali e programmatori (per esempio attività in cui uno studente dovrà scrivere su carta un programma - in un certo linguaggio/simbolismo stabilito - e un altro studente dovrà eseguire fedelmente il programma, che potrebbe contenere ad esempio le istruzioni per riprodurre un disegno oppure per raggiungere un punto preciso in un labirinto costruito in palestra). Tali attività sono infatti importanti perché permettono agli studenti di assumere il punto di vista del computer, cosa che di solito non tendono a fare naturalmente, comprendendone meglio il funzionamento e demistificandolo. 11 https://coderdojo.com/ 12 https://zen.coderdojo.com/ 13 Termine spesso tradotto anche come: “senza rete” o “tradizionali” 14 Le più famose in italiano sono CS Unplugged (http://csunplugged.org/wp-content/ uploads/2016/02/csunplugged-it.2015.1.0.pdf) e le lezioni “tradizionali” proposte da Programma il Futuro - Code.org (http://www.programmailfuturo.it/come/lezioni-tradizionali/introduzione)
12
Caro Insegnante, stai per iniziare un’attività interessante, nuova ed entusiasmante. Sii pronto a non avere sempre tutto sotto controllo, a camminare anche fuori dai sentieri che hai pianificato, a lasciarti ispirare dalle intuizioni e dalle richieste dei tuoi alunni e a divertirti e giocare insieme a loro!
INTRODUZIONE Coding e pensiero computazionale nella scuola primaria è una guida per docenti di scuola primaria. L’obiettivo principale del testo è introdurre percorsi interdisciplinari per lo sviluppo del pensiero computazionale, principalmente attraverso l’utilizzo didattico del coding e dell’ambiente di apprendimento e di programmazione visuale Scratch. L’impostazione metodologica dell’opera è di tipo costruzionista e si ispira al filone pedagogico che da Piaget arriva a Seymour Papert e, più recentemente, alle ricerche ed alle iniziative del gruppo del Lifelong Kindergarten del laboratorio del MIT MediaLab di Boston, coordinato da Mitchell Resnick.
La novità della nostra proposta La guida rappresenta una novità nel panorama editoriale italiano poiché integra i percorsi manipolativi ed esperienziali, pratiche già diffuse nella scuola, con le attività di coding e di sviluppo del pensiero computazionale. Ogni modulo operativo si apre con attività di osservazione, ascolto, produzione e condivisione per poi proseguire con l’introduzione del coding. Tutti i moduli didattici hanno in comune il tema dell’acqua. Tramite questo filo rosso e la guida di un personaggio che prende vita e consistenza attraverso i contributi e l’invenzione degli studenti, si compie un viaggio che attraversa molti territori disciplinari. Questa metodologia permette l’integrazione dei nuovi saperi previsti nel “La Buona Scuola” e nel Piano Nazionale Scuola Digitale, con gli obiettivi di apprendimento e le discipline già definiti per la scuola del primo ciclo di istruzione. Il testo si propone come un agile strumento per l’insegnante desideroso di innovare la didattica senza rivoluzionare il proprio modo di essere e di lavorare. Non è richiesta una forte esperienza pregressa nell’utilizzo delle tecnologie ma solo curiosità e volontà di percorrere percorsi professionali nuovi e divertenti.
Com’è strutturata La guida è strutturata in due sezioni: la prima, metodologica, è dedicata ai suggerimenti per un utilizzo efficace del testo e a un’introduzione al mondo del pensiero computazionale in ambito didattico; la seconda, operativa, è composta da quattro moduli interdisciplinari con indicazioni dettagliate sulle attività da svolgere con gli alunni. Nella seconda sezione, inoltre, è presente la Valigia degli Script che rappresenta un elemento di grande utilità pratica per l’insegnante e di importante valenza didattica per gli alunni. Essa è composta da progetti Scratch, disponibili anche online, che contengono unità minime di programmi, implementabili e combinabili tra loro per la creazione di progetti personali. Il glossario alla fine del testo contiene la descrizione dei lemmi tecnici più utilizzati. I progetti Scratch presentati nel testo sono disponibili online agli indirizzi riportati in quarta di copertina.
15
Introduzione
I percorsi che proponiamo I percorsi presentati rispondono agli obiettivi formativi individuati dalla legge 107/15 (c.d. “Buona Scuola”), in particolare quelli delineati dall’articolo 1, comma 7, ossia:
• sviluppo delle competenze digitali degli studenti, con particolare riguardo al pensiero computazionale; • potenziamento delle competenze logico-matematiche e scientifiche; • potenziamento delle competenze nella pratica e nella cultura musicali, nell’arte, nelle tecniche e nei media di produzione e di diffusione delle immagini e dei suoni; • alfabetizzazione all’arte, alle tecniche e ai media di produzione e diffusione delle immagini; • potenziamento delle metodologie laboratoriali e delle attività di laboratorio.
Il testo proposto si inserisce, inoltre, a pieno titolo nella direzione indicata dal Piano Nazionale Scuola Digitale presentato nell’ottobre 2015 in particolare per quanto riguarda le seguenti azioni:
• azione #6: politiche attive per il BYOD (Bring your own device); • azione #15: scenari innovativi per lo sviluppo di competenze digitali
applicate; • azione #17: portare il pensiero logico-computazionale a tutta la scuola primaria; • azione #26: rafforzare la formazione iniziale sull’innovazione didattica. La trattazione dei temi è snella e calata nel contesto didattico della scuola primaria. Essa fornisce indicazioni per l’introduzione nel PTOF e nella progettazione didattica dei percorsi educativi che utilizzano il coding sia per lo sviluppo del pensiero computazionale, sia per il raggiungimento di obiettivi curricolari. La guida è completata da progetti Scratch elaborati in maniera specifica per i percorsi progettati e utilizzabili liberamente da docenti e studenti.
16
CAPITOLO 1
Strumenti 1 Sviluppare il pensiero computazionale attraverso
il coding: quali strumenti
Uno dei modi per sviluppare il pensiero computazionale è la pratica del coding. In informatica con il termine coding si intende la stesura di un programma, cioè di una sequenza di istruzioni che fanno eseguire ad un calcolatore determinate operazioni. Saper programmare non è soltanto una competenza utile a chi farà lo sviluppatore di software o lavorerà con l’informatica: è anche e soprattutto un’abilità di base fondamentale per favorire un avvicinamento consapevole al mondo delle tecnologie digitali e per attivare processi cognitivi che saranno importanti in qualunque contesto professionale e umano della vita adulta. Programmare infatti: • è un atto creativo, poiché l’alunno è stimolato a realizzare un prodotto attraverso le proprie idee e i propri percorsi mentali; • sviluppa le competenze logiche poiché ne richiede costantemente l’utilizzo; • aumenta la capacità di risolvere problemi in modo creativo ed efficiente; • concorre allo sviluppo del pensiero computazionale; • esercita alla soluzione di compiti complessi; • richiede una pianificazione di passi da svolgere, la coerenza tra esecuzione e pianificazione, il controllo della correttezza delle istruzioni attraverso le attività di debug, ovvero di verifica del programma per individuare e correggere eventuali errori. Sapere quello che c’è dietro ad un prodotto digitale e avere la consapevolezza che sia possibile crearlo o modificarlo in base alle proprie esigenze aiuta gli studenti ad essere utenti attivi e a decidere autonomamente cosa utilizzare e come utilizzarlo. Tale consapevolezza implica il passaggio dall’essere consumatori digitali passivi all’essere produttori: oltre a saper utilizzare un sito web, un videogioco o un’applicazione, è importante poterne realizzare uno o quantomeno essere coscienti dei processi che sono implicati nella loro realizzazione. Gli strumenti per la pratica didattica del coding sono molti e stanno aumentando con l’incremento dell’interesse globale intorno alla tematica. È possibile realizzare attività di coding sia in modalità unplugged, sia utilizzando dispositivi hardware programmabili, software dedicato, tablet e smartphone.
17
CAPITOLO 1 Strumenti
Nei siti http://csunplugged. org/ e http://www. programmailfuturo.it/ come/lezioni-tradizionali/ introduzione si trovano numerosi esempi di attività unplugged che possono essere utilizzate in parallelo alle attività proposte in questa guida.
La modalità unplugged caratterizza quelle pratiche che insegnano Computer Science senza computer, utilizzando cartelloni, griglie, colori, giochi, quiz. Esse introducono, attraverso attività ludiche e stimolanti, concetti come i numeri binari, gli algoritmi e le sequenze di comandi. Esistono poi molti software e app con cui praticare coding nella didattica, utilizzando dispositivi quali computer, tablet, smartphone. Si tratta di software per programmazione a blocchi di videogiochi e animazioni, software per programmare app in modo semplice e guidato, siti con risorse strutturate, piccoli robot a cui dare istruzioni e schede programmabili. Si citano di seguito alcune risorse, adatte agli studenti di scuola primaria, a solo titolo di esempio poiché non è possibile creare una lista esaustiva e definitiva.
Programmi e siti con risorse strutturate: App Inventor, Blockly Games, Google CS Education, Kodable, Lightbot, Programma il Futuro (da Code.org), Scratch, Tynker. App per dispositivi mobili: Daisy the Dinosaur, Kodable, Lightbot, Scratch Junior, Tynker. Robot e dispositivi programmabili: Bee-bot e Blue-bot, Cubetto, Dash and Dot, Lego Mindstorms, MBot, Makey Makey, Little Bits, Robot Turtles. I percorsi didattici presentati nei moduli operativi di questa guida prevedono l’utilizzo del software Scratch e della sua community. Gli strumenti citati in precedenza possono essere comunque utilizzati con gli studenti o suggeriti loro per la libera esplorazione ed il gioco.
Programma il Futuro e Code.org Nel panorama degli strumenti a disposizione degli insegnanti poniamo ora l’attenzione sul progetto “Programma il futuro”, ideato e realizzato dal Miur in collaborazione con il CINI – Consorzio Interuniversitario Nazionale per l’Informatica. L’iniziativa, ispirata dall’esperienza avviata negli Stati Uniti nel 2013 con il portale Code.org, è inserita nel programma “La Buona Scuola” e rappresenta una risorsa a disposizione delle scuole che vogliano introdurre, attraverso attività di coding, percorsi per l’apprendimento dei concetti di base dell’informatica. Il sito http://www.programmailfuturo.it/ fornisce informazioni sul progetto e guida gli utenti alle modalità di utilizzo. La registrazione al sito consente all’utente di attivare una sezione personalizzata, “il cruscotto dell’insegnante”, dal quale gestire le iscrizioni degli studenti, attivarne i corsi e seguirne i progressi. Inoltre ogni studente avrà, in questo modo, un accesso che gestirà attraverso il proprio nome utente e password e gli consentirà di svolgere le attività in modo autonomo e personale.
18
Strumenti CAPITOLO 1
Figura 1.1 Home page del sito “Programma il Futuro” Di che tipo di attività si tratta? Le attività vengono fruite attraverso il sito https://studio.code.org/: si tratta di risorse di facile utilizzo e che non richiedono un’abilità avanzata nell’uso del computer. I percorsi sono caratterizzati dalla presenza di “Lezioni tecnologiche” e di “Lezioni tradizionali” (senza l’utilizzo del computer), organizzate in modo sequenziale e inserite in diverse tipologie di corsi che l’insegnante può attivare e associare alla classe; esistono corsi adatti a tutte le età, dai 4 anni in su.
Figura 1.2 Home page del sito di fruizione delle attività
2 Immagina, crea, gioca, condividi, rifletti: la spirale
per lo sviluppo del pensiero creativo
Le argomentazioni presentate in questo paragrafo sono tratte dalle ricerche e dalle pubblicazioni del gruppo Lifelong Kindergarten del Media Lab del Massachusetts Institute of Technology (MIT). Il gruppo, diretto da Mitchel Resnick, è l’ambiente di ricerca dove è stato realizzato Scratch e dove si sperimentano tecnologie utili per l’apprendimento.
L’importanza del pensiero creativo La nostra società è caratterizzata da rapidi cambiamenti che interessano molti ambiti diversi. Oggi non sappiamo quali saranno le conoscenze necessarie tra qualche anno, sappiamo però che in questo contesto la capacità di pensare soluzioni creative e adatte
19
CAPITOLO 1 Strumenti alle diverse situazioni diventa un elemento fondamentale per la realizzazione personale e professionale delle persone. Per i ragazzi è molto importante imparare a pensare creativamente così da poter trovare risposte personali agli eventi inaspettati e alle richieste della società in cui si troveranno a vivere. Tale approccio fornisce una importante cornice metodologica e concettuale entro la quale inquadrare le attività didattiche proposte in questa guida.
Pensare in modo creativo: un’abilità che si può sviluppare Il gruppo di ricerca del MIT ha osservato le attività e il modo di apprendere dei bambini nella scuola dell’infanzia. Essi giocano con costruzioni, colori, fogli, forme di vario tipo e con materiali che possono essere combinati creativamente per costruire artefatti di vario genere. Dall’osservazione è emerso che essi mettono in atto un processo di apprendimento creativo caratterizzato dalle seguenti fasi, non necessariamente organizzate sempre nello stesso ordine: • il bambino inizia ad immaginare cosa costruire e come utilizzare i materiali che ha a disposizione; • dopo la fase di immaginazione e progettazione, crea il progetto • gioca con la sua creazione; • condivide la propria creazione con altri; • l’esperienza di interazione con gli altri lo porta a riflettere sulla sua creazione e a immaginare nuove idee e progetti, avviando di nuovo il processo. Attraverso questo processo ricorsivo i bambini imparano a sviluppare le loro idee, a verificarle, a sperimentare alternative grazie al confronto e all’interazione con gli altri, affinando, in questo modo, le loro abilità di previsione e invenzione.
Figura 2.1 La spirale dell’apprendimento creativo (per gentile concessione del Lifelong Kindergarten group, MIT Media Lab)
Allo scopo di favorire la creatività, la libera immaginazione e la creazione di artefatti personali, gli strumenti e i materiali didattici, siano essi digitali o meno, dovrebbero essere caratterizzati dalla possibilità di essere utilizzati in molti modi diversi, oltre quelli predeterminati da chi li ha progettati. Scratch è l’esempio principe di strumento con cui i ragazzi possono fare esperienza di un processo costruttivo strutturato e guidato dalla loro immaginazione. Partendo da questi presupposti, e, data l’importanza per gli studenti di sviluppare un pensiero attivo e creativo, il gruppo di ricerca del MIT afferma con forza la necessità di estendere anche agli studenti più grandi questo processo di apprendimento tipico dei bambini della scuola dell’infanzia. Per realizzare ciò è necessario trovare strumenti, materiali e media adatti alle varie fasi del percorso di apprendimento. Resnick sostiene che le tecnologie digitali, se opportunamente progettate e supportate, possono avere un ruolo molto importante in educazione, consentendo di estendere agli studenti più grandi il processo creativo di apprendimento utilizzato nella scuola dell’infanzia.
3 Scratch: un ambiente di programmazione visuale Scratch è un ambiente di programmazione visuale che consente, in modo divertente e creativo, di “scrivere” animazioni e videogiochi uti-
20
Strumenti CAPITOLO 1 lizzando il linguaggio del computer. In questo caso, trattandosi di un sistema di programmazione visuale, le istruzioni si presentano come elementi grafici a forma di blocchi colorati che, incastrandosi tra di loro, danno vita al codice che crea animazioni e videogiochi. Per tali caratteristiche, i software di programmazione visuale rappresentano il primo approccio alle attività di coding. Esiste anche una versione junior di Scratch, disponibile come app per tablet, che, a differenza del programma originale, ha istruzioni che non utilizzano le parole scritte ma solo simboli (frecce, cerchi, ecc...), quindi è utilizzabile anche dai bambini che ancora non hanno appreso la lettoscrittura. Il sito www.scratch.mit.edu è il luogo dove è possibile utilizzare Scratch online, scaricare il software per l’utilizzo offline, trovare materiali utili, interagire e collaborare con gli altri utenti. La consultazione dei materiali e l’utilizzo del software è possibile anche da parte di utenti non iscritti, ma registrandosi si ha esperienza del grande valore aggiunto del sito, ovvero il suo essere una Creative learning community, una comunità per l’apprendimento creativo. Gli iscritti possono pubblicare e condividere i propri progetti, prendere ispirazione da quelli degli altri, confrontarsi con gli altri utenti. La community di Scratch è un luogo protetto al quale è possibile e consigliabile far iscrivere anche i propri alunni, come sarà proposto nei successivi moduli operativi.
È comunque consigliabile installare Scratch sui computer, rendendosi indipendenti dalla rete che potrebbe non essere accessibile o per problemi di disponibilità o per malfunzionamenti temporanei. Per installare Scratch localmente è sufficiente seguire le istruzioni contenute in questa pagina: scratch.mit.edu/ scratch2download/.
Dopo esserci registrati al portale di Scratch, o dopo averlo installato nel proprio computer, cominciamo a dare un’occhiata all’ambiente dove realizzeremo i progetti di coding. Più avanti parleremo della Community e degli strumenti di supporto.
L’editor Dalla home page del portale www.scratch.mit.edu e dopo aver inserito le credenziali del nostro account, seguiamo il link Crea in alto a sinistra ed entriamo nella finestra dell’editor.
Figura 3.1a L’editor di Scratch
21
CAPITOLO 1 Strumenti Esploriamo le sezioni dell’editor seguendo la numerazione della figura 3.1a. Se alcune cose non saranno chiare da subito, non c’è da spaventarsi! Per il momento daremo un’occhiata panoramica, ma nel seguito del libro avremo modo di approfondire. 1. Menu principali dell’editor. Vediamo insieme le funzionalità più importanti: • Menu globo: per selezionare la lingua dell’editor; • File: oltre agli usuali comandi di salvataggio dei progetti, il menu File contiene i comandi per salvare e caricare dal proprio computer il progetto che poi potrà essere aperto anche con l’editor offline. È importante sottolineare che, quando si lavora nell’editor online, ogni modifica viene salvata automaticamente. Da notare anche il comando che permette di registrare fino a 60 secondi di video del progetto; • Modifica: dal menu Modifica è possibile annullare le operazioni fatte, scegliere la modalità di visualizzazione con lo stage (v. punto 3) piccolo e attivare la modalità turbo, nella quale il progetto gira alla massima velocità possibile; • Suggerimenti: apre, alla destra dell’editor, una colonna con una raccolta di progetti e tutorial per imparare ad usare Scratch.
Figura 3.1b Menu tasto destro dello sprite
Figura 3.1c Finestra delle proprietà dello sprite
22
2. In questa area troviamo un pulsante che ci porta alla modalità presentazione, il campo testo per dare un nome al progetto e i tasti bandierina verde e pulsante rosso che servono a far partire e a fermare il programma. 3. Lo stage: questa è la finestra dove succede tutto quello che abbiamo programmato, disegnato, composto! Ogni punto è individuato da una coppia di coordinate cartesiane che hanno origine nel centro dello stage. 4. Lo sfondo e gli sprite: in questa area è possibile: • selezionare uno sfondo per lo stage scegliendolo tra quelli della raccolta di Scratch, disegnandolo con l’editor grafico, importando un’immagine dal computer oppure scattando una foto con la telecamera del computer. Oltre all’immagine, allo sfondo è possibile associare un insieme di istruzioni e uno o più file audio. • Aggiungere o rimuovere uno sprite e modificarne le proprietà. Lo sprite è un elemento fondamentale dei programmi realizzati con Scratch ed è costituito da una o più immagini chiamate costumi, dai file audio associati e dall’insieme di istruzioni che lo governano. Anche in questo caso possiamo scegliere il suo aspetto tra quelli disponibili nella raccolta di Scratch, disegnarlo con l’editor delle immagini, caricarlo da un’immagine dal computer oppure scattando una foto con la telecamera del computer. Facendo clic col tasto destro sullo sprite (figura 3.1b) è possibile duplicare o cancellare lo sprite, salvarlo in un file sul computer oppure renderlo invisibile. Facendo invece clic sulla “i” in alto a sinistra (figura 3.1c) si apre la finestra delle proprietà nella quale possiamo assegnare un nome allo sprite, modificarne l’orientamento, decidere il suo stile di rotazione, stabilire se è visibile nello stage.
Strumenti CAPITOLO 1 5. In questa area è possibile navigare e lavorare alle risorse associate allo sfondo o ad uno sprite, facendo clic su Script, Costumi/ Sfondi o Suoni: • Script: questo tab visualizza nell’area 5 i gruppi di istruzioni disponibili, suddivisi in dieci categorie: Movimento, Situazioni, Aspetto, Controllo, Suono, Sensori, Penna, Operatori, Variabili e Liste, Altri Blocchi. Nell’area 6 vengono elencate le istruzioni che appartengono ad ogni categoria selezionata e che possono essere assemblate nell’area 7; • Costumi (se è selezionato uno sprite) / Sfondi (se è selezionato uno sfondo): quando è selezionato questo tab (fig. 3.2a) nelle aree 5, 6 e 7 vengono visualizzati l’editor delle immagini e gli strumenti per gestire i costumi multipli nel caso degli sprite e i diversi sfondi nel caso dello stage (l’editor grafico è trattato in dettaglio nel capitolo 5, dedicato al disegno); • Suoni: visualizza l’editor dei suoni che possono essere associati allo sfondo o agli sprite.
Figura 3.2a Editor delle immagini 6. Quando è selezionato il tab Script, qui troviamo i blocchi di istruzioni che appartengono al gruppo selezionato e che possono essere trascinati e assemblati nell’area 7 (v. più avanti). 7. Questa è l’area dedicata alla costruzione del codice, ovvero lo spazio dove i blocchi delle istruzioni vengono assemblati per realizzare i programmi che compongono il progetto. Ogni blocco ha una forma che dipende dalla sua funzione e può essere collegato agli altri solo rispettando gli incastri. 8. La valigetta è uno strumento disponibile solo nell’editor online e permette di trasportare oggetti, immagini, suoni, sprite e gruppi di istruzioni da un progetto ad un altro. Ogni utente ha la sua valigetta che rimane la stessa indipendentemente dal progetto su cui sta lavorando. Usarla è molto semplice: è sufficiente
23
CAPITOLO 1 Strumenti trascinare nell’area 8 l’oggetto che si vuole aggiungere oppure cancellarlo selezionando il comando col tasto destro del mouse. La valigetta è molto utile anche nella condivisione di raccolte di immagini o suoni tra utenti diversi. Supponiamo, ad esempio, che io voglia condividere con altri una raccolta di immagini. Mi basterà creare un progetto che contiene le immagini come sfondi o costumi degli sprite e poi condividerlo. Gli altri utenti potranno accedere al progetto “contenitore” con il loro account e copiare nella propria valigetta le immagini a cui sono interessati, ritrovandole disponibili in qualunque altro progetto apriranno. 9. In quest’area si trovano cinque utili pulsanti. I primi quattro consentono di duplicare, cancellare o ridimensionare uno sprite, mentre il quinto visualizza l’aiuto per un singolo blocco istruzione. 10. Qui si trovano i tasti Condividi e Vai alla pagina del progetto. Il primo ci permette di condividere il nostro progetto con la community rendendolo visibile a tutti gli utenti che vorranno utilizzarlo, esplorarne il codice sorgente o farne un remix (per capire meglio cos’è un remix v. più avanti). Il secondo tasto chiude la pagina dell’editor e ci porta alla pagina di presentazione del progetto (fig. 3.2b), dove è possibile indicare le istruzioni su come utilizzarlo, le note e i credits ed eventuali parole chiave.
Figura 3.2b Pagina del progetto
24
Strumenti CAPITOLO 1 Abbiamo visto che uno sprite è un elemento fondamentale dei programmi in Scratch ed è costituito dall’insieme di uno o più costumi, file audio e istruzioni che lo animano. Ogni sprite ha quindi un insieme di istruzioni che lo governano e che sono visibili nell’area grigia a destra dell’editor (v. sopra, al punto 7), selezionando lo sprite che ci interessa (v. sopra, al punto 4) e il tab Script (v. sopra, al punto 5). Per associare istruzioni ad uno sprite basterà quindi trascinare i blocchi dalle categorie in cui si trovano nell’area grigia degli script, considerando che:
• ogni blocco-istruzione ha una forma e un incastro che sono funzionali al modo in cui si può combinare con altri blocchi; • i gruppi di blocchi si formano in senso verticale; • per combinare tra loro i blocchi con incastri compatibili, è sufficiente avvicinarli fino a quando la giunzione tra i loro incastri non si illumina; • cliccando con il tasto sinistro del mouse su un’istruzione, si seleziona tutto il gruppo di istruzioni al di sotto di quella, e lo si può spostare o eliminare; cliccando con il tasto destro del mouse su un’istruzione compare un menu che permette di duplicare il gruppo, cancellarlo, aggiungere un commento o visualizzare la pagina di aiuto di quella istruzione (fig. 3.2c); • per eliminare un’istruzione o un gruppo di istruzioni, è sufficiente trascinarli nel cestino o nell’area del “magazzino delle istruzioni”, al centro dell’editor; • cliccando su un gruppo di istruzioni queste vengono eseguite indipendentemente dall’evento a cui sono associate; • per essere eseguito, un gruppo di istruzioni deve cominciare con uno dei blocchi che non hanno un incastro sul lato superiore, come, ad esempio, <quando si clicca su questo sprite> nella categoria Situazioni, oppure <quando vengo clonato> nella categoria Controllo; • un gruppo di istruzioni può essere copiato in un altro sprite trascinandolo dall’area grigia degli script e rilasciandolo sull’icona dello sprite destinatario che si trova in basso a sinistra.
Figura 3.2c Menù dei blocchi
Un commento è un testo associato ad una istruzione o ad un gruppo di istruzioni per spiegare il loro scopo, il loro funzionamento o semplicemente per fissare un appunto; i commenti non hanno alcuna rilevanza dal punto di vista del funzionamento del programma, ma sono utilissimi per spiegare a se stessi o agli altri come funziona!
La Community di Scratch
Figura 3.3 Home page del portale della community Prima della presentazione guidata della Community, vi invitiamo a praticare una divertente esplorazione libera e a consigliare la stessa attività agli alunni: la metodologia più efficace è certamente quella
25
CAPITOLO 1 Strumenti che trova il giusto equilibrio tra informazione guidata e libertà di esplorazione. Iniziamo ora la visita guidata! Dopo aver aperto la pagina all’indirizzo www.scratch.mit.edu, nella barra in alto della home page troviamo le seguenti voci di menu: Crea, Esplora, Discuti, Info, Aiuto, Cerca, Unisciti alla comunità di Scratch, Entra.
Crea Cliccando su Crea si accede al software Scratch per iniziare subito a creare progetti online seguendo le informazioni descritte in precedenza.
Esplora La sezione Esplora contiene una raccolta delle gallerie e dei progetti condivisi dagli utenti della community. Sono organizzati per tematiche e discipline ed esiste anche una sezione dedicata ai soli progetti pubblicati in italiano. Consultare i progetti di altri utenti è utile per: • esplorare e far esplorare ai propri alunni le infinite tipologie di progetti che si possono creare con Scratch (il limite è solo la creatività!); • prendere ispirazione dai progetti degli altri utenti; • utilizzare la funzione del remix per pubblicare nel proprio account progetti esistenti aggiungendo modifiche personali. Facendo il remix di altri utenti, gli alunni apprendono l’importanza della condivisione e della citazione della fonte. Il sito di Scratch, infatti, suggerisce di ringraziare gli autori del progetto originale e crea in automatico l’albero del remix che mostra in forma grafica tutti i progetti legati dal remix; • divertirsi con le animazioni e i giochi creati dalla Community; • condividere progetti su tematiche oggetto di approfondimento scolastico.
Figura 3.4 Sezione Esplora
26
Strumenti CAPITOLO 1
Figura 3.5 L’albero del remix Discuti La sezione Discuti è il luogo dove è possibile interagire con gli utenti registrati della community per chiedere consigli, discutere delle proprie idee e confrontarsi sulle tematiche afferenti a Scratch, alla creatività e molto altro ancora. L’area è composta da una serie di forum i primi dei quali sono in inglese, seguiti dai forum in molte altre lingue. È presente anche quello in lingua italiana dove si ritrovano gli utenti del nostro paese. Senza aver effettuato l’accesso è possibile soltanto consultare le discussioni; per rispondere o per avviare una nuova discussione è necessario accreditarsi con il proprio account.
Figura 3.6 I forum Info La sezione Info è utile per avvicinarsi all’apprendimento creativo del Lifelong Kindergarten del MIT e dunque allo spirito di Scratch. È una sezione che contiene informazioni generali su Scratch, sul suo utilizzo nelle scuole di tutto il mondo, sul perché è importante imparare a programmare. È presente anche una sezione dedicata in modo specifico a genitori ed educatori, una breve ed utilissima introduzione alla community e alle sue linee guida.
27
CAPITOLO 1 Strumenti
Figura 3.7 Info
Aiuto
Figura 3.8 L’Help di Scratch
Nella prima parte della sezione Aiuto sono pubblicati materiali che guidano l’utente passo passo ad una prima esplorazione e possono essere proposti agli alunni come attività iniziale. Scorrendo in basso si trovano pubblicate una guida in pdf sulle funzioni essenziali di Scratch e le interessanti schede (Scratch cards). Ogni scheda ha due facce: nella parte frontale si mostra cosa si può fare con Scratch e nel retro come realizzarlo (es. “dire qualcosa”). Le schede possono essere liberamente scaricate, stampate e consegnate agli alunni.
Unisciti alla comunità di Scratch
Figura 3.9 Le guide di Scratch
Per utilizzare la community come membro attivo e non solo come spettatore, è necessario iscriversi e creare un proprio profilo. Per avviare il percorso clicca su “Unisciti alla comunità di Scratch” e segui le istruzioni. La procedura di iscrizione per i ragazzi richiede l’indirizzo email dei genitori o dei tutori che dovranno confermare l’account. Prima di procedere all’iscrizione degli alunni della propria classe consigliamo di inviare una comunicazione ai genitori con la descrizione delle attività e la richiesta di un indirizzo email dell’adulto di riferimento. L’iscrizione degli alunni può quindi avvenire in classe oppure può essere svolta a casa insieme ai genitori.
Footer
Figura 3.10 La finestra di registrazione
Figura 3.11 Il Footer
28
La parte inferiore del sito (footer = piè di pagina) è ricca di informazioni utili. Vi suggeriamo di condividere e discutere con gli alunni le Linee Guida della Comunità, sono un concentrato di educazione alla cittadinanza e alla competenza digitale!
Strumenti CAPITOLO 1 Utilizzare il proprio account: creazione gallerie e progetti, seguire gli altri utenti, commentare, progetti preferiti e progetti che piacciono, il remix Ogni utente registrato può accedere inserendo le proprie credenziali dopo aver cliccato su Entra, nella parte destra della barra superiore in home page. A questo punto la schermata sarà personalizzata.
Figura 3.12 Schermata dell’account personale Cliccando sulla freccia che si trova alla destra del proprio nome utente apparirà un menu a tendina con funzioni utili a gestire il proprio account: Profilo, Le mie cose, Configurazione Account. Come utilizzare la community da utente registrato? Vediamo le principali funzioni.
Creare progetti e condividerli Si suggerisce di iniziare a creare qualche progetto e a condividerlo, seguendo i brevi passaggi descritti all’inizio del paragrafo 3.
Gallerie/Studio La Galleria, o Studio in inglese, è lo spazio dove gli utenti possono raccogliere i propri progetti e/o quelli degli altri utenti. Sono utilissime raccolte tematiche di progetti create dagli utenti della community. Consultare Gallerie Per esplorare le numerose gallerie esistenti occorre fare clic su Esplora e poi su Gallerie. È possibile anche selezionare la tematica di interesse (animazione, arte, musica, ecc.). Una volta selezionata la galleria è possibile seguirla cliccando in alto a destra su Segui in modo da ritrovarla agevolmente nel proprio profilo personale che riporta le gallerie che si stanno seguendo. Creare Gallerie Ogni utente registrato può creare le proprie Gallerie seguendo questo percorso: • cliccare su Le mie cose nel menu a tendina del proprio profilo o nell’immagine della cartella “Le mie cose” che si trova alla sinistra dell’immagine del profilo; • a questo punto cliccare su Nuova Galleria, in alto a destra. Inserire progetti in Gallerie Per aggiungere progetti ad una Galleria occorre essere in una delle seguenti condizioni: • essere il proprietario della Galleria (cioè averla creata); • essere nominato curatore della Galleria dal proprietario;
29
CAPITOLO 1 Strumenti
• aggiungere ad una Galleria il cui proprietario ha permesso a
chiunque di inserire progetti (attivando l’opzione Allow anyone to add projects).
Uno dei percorsi per inserire progetti nelle gallerie:
• creare un nuovo progetto (o sceglierne uno esistente) e poi condividerlo cliccando su Condividi in alto a destra nel progetto;
• selezionare la galleria di interesse ed aprirla; • selezionando Aggiungi Progetti si apre in basso una barra dove
è possibile selezionare il proprio progetto (o uno tra i preferiti, oppure uno tra gli ultimi visitati) o si può inserire l’URL del progetto in alto al centro (si può facilmente copiare e incollare l’indirizzo del progetto dalla barra di navigazione).
Figura 3.13 Pubblicazione nelle Gallerie Seguire gli utenti della community La forza della community di Scratch sta nelle migliaia di utenti che ogni giorno condividono le proprie idee. Come per le gallerie, è utile seguire gli utenti che pubblicano progetti che riteniamo interessanti, così da ritrovarli velocemente nel nostro profilo e ricevere i loro aggiornamenti. Possiamo selezionare gli utenti da seguire tra le persone che già conosciamo o esplorando progetti e gallerie: l’autore di ogni progetto è riportato sotto il titolo del progetto stesso. Il nome dell’autore è un link attivo alla pagina del profilo dell’utente: basta cliccare, vedere gli altri progetti e decidere di seguirlo cliccando in alto a destra su Segui.
Interagire con gli altri utenti Per interagire con gli altri utenti è possibile utilizzare la sezione Discuti, descritta in precedenza. Oltre a questa modalità è possibile interagire: • inserendo commenti sotto i progetti degli altri utenti; • mostrando apprezzamento per i progetti inserendoli tra i propri preferiti (cliccando la stellina sotto l’anteprima del progetto) o cliccando sul simbolo del cuore che indica il mi piace (nel proprio profilo personale rimarrà traccia dei soli progetti preferiti); • facendo il remix dei progetti degli altri utenti ed inserendoli, quindi, nel proprio account. Vediamo come si usa il remix, funzione di cui abbiamo già parlato in precedenza: • apri il progetto di un altro utente cliccando su Guarda dentro, in alto alla destra del titolo;
30
Strumenti CAPITOLO 1
• clicca su remix, in altro a destra. Ora il progetto è nel tuo account:
non si tratta di copiare ma di ispirarsi dalla creatività altrui! • fai delle modifiche personali e ringrazia l’autore nello spazio dedicato.
Figura 3.14 Forme di interazione con gli utenti ScratchEd: la community per gli educatori che usano Scratch Per gli educatori è stato creato uno spazio dedicato in cui gli utenti condividono risorse e storie, fanno domande, conoscono persone e si tengono informati sugli eventi. È una comunità in continua crescita alla quale si accede, oltre che dal link diretto https://scratch. mit.edu/educators/, anche dalla home page del sito della Community Scratch. Come educatore, inoltre, è possibile richiedere un account docente di Scratch che permette di creare account di classe, account studente e gestire i progetti e i commenti degli studenti. Per ottenere un account docente è necessario richiedere l’iscrizione compilando il modulo online dedicato. Per info e iscrizione: https://scratch.mit.edu/educators/
Figura 3.15 Collegamento a ScratchEd
Figura 3.16 Home page della community ScratchEd
31