Programmare con Scratch

Programmare con Scratch

STEM ED ESPERIENZE DI CLASSE | Informatica, Tecnologia, Matematica, Fisica, Biologia, Chimica

Imparare a programmare in modo semplice e divertente? Si può fare anche a scuola grazie a Scratch, un linguaggio a blocchi che può essere utilizzato nell’ambito dei progetti didattici più diversi. Ecco allora come muovere i primi passi in classe in questo ambiente.

Alberto Barbero

Il logo del software Scratch

Videogiochi, animazioni grafiche, storie interattive, simulazioni, ipertesti: sono sempre più numerosi i progetti didattici che si avvalgono di questo tipo di oggetti informatici. E costruirli sta diventando sempre più facile, grazie ad ambienti di sviluppo amichevoli che, oltre a consentire di ottenere risultati soddisfacenti con poco sforzo, permettono di capire meglio anche la logica degli algoritmi e quindi dei computer. È il caso di Scratch, il linguaggio a blocchi sviluppato nel 2007 dai ricercatori del Lifelong Kindergarten Group dell’MIT MediaLab di Boston, guidati da Mitchel Resnick.

Una vasta comunità virtuale

La codifica dei programmi in Scratch è molto semplice e consiste nell’impilare blocchi di forma e colore diverso, a seconda dell’istruzione che si vuole utilizzare: proprio come si fa con i mattoncini delle costruzioni, che vengono incastrati pezzo dopo pezzo. Un approccio che sa di ludico, ma che in realtà permette di avvicinarsi con profitto ai concetti di base della programmazione e del computational thinking. Non solo. In pieno spirito 2.0, il sito di Scratch è diventato il punto di riferimento di una vera e propria comunità virtuale che può trovare e condividere manuali gratuiti, gallerie di progetti, materiali informativi, video esplicativi, forum di discussione e permette di scaricare più di 6 milioni (al primo ottobre 2014) di progetti completamente gratuiti con licenza Creative Commons o di caricare i propri progetti condividendoli con gli altri utenti sparsi per il mondo. Scratch, che è un prodotto gratuito, può essere utilizzato direttamente online oppure scaricato in una versione offline (Scratch 2.0), che può essere costantemente aggiornata mano a mano che vengono aggiunte nuove funzionalità.

Interfaccia del software

Gli elementi base: sprite, stage, script

L’elemento base di Scratch è lo sprite, un oggetto grafico come la figurina del gatto che rappresenta l’icona del programma stesso. È possibile utilizzare sprite messi a disposizione da Scratch, oppure disegnarli a piacere attraverso un semplice programma di disegno o, ancora, utilizzare immagini importate da file o scattate con una macchina fotografica digitale o con la webcam. Gli sprite, inoltre, possono essere personalizzati con costumi e suoni diversi. Lo sprite viene collocato all’interno di un’area denominata stage, palcoscenico, dentro la quale può interagire con altri sprite durante l’esecuzione del programma, eseguendo azioni descritte in uno o più script, il vero e proprio codice associato ad ogni sprite e formato da blocchi impilati. In pratica, gli script rappresentano le istruzioni che indicano allo sprite che cosa deve fare: parlare, muoversi, suonare, nascondersi, mostrarsi, eseguire calcoli e tanto altro ancora.

Uno sguardo all’ambiente

Diamo insieme un’occhiata all’ambiente di sviluppo di Scratch 2.0.
Oltre alla barra dei menu in alto, dove si trovano i soliti comandi di apertura e salvataggio dei file, l’ambiente è suddiviso in tre aree. A sinistra troviamo lo stage, che parte di solito quando si fa clic sul pulsante con la bandierina verde, posto sopra lo stage stesso. Al centro troviamo l’elenco dei blocchi per codificare il programma, suddivisi in categorie; sono in pratica i mattoncini che si utilizzano per costruire il programma impilandoli nella sequenza desiderata. Infine a destra c’è l’area per programmare, detta area Script, in cui si trascinano e si impilano con la tecnica del drag and drop i blocchi che servono alla codifica del programma.

Imparare a programmare

I blocchi sono suddivisi in 10 categorie di colore diverso in base all’azione che effettuano. Nelle categorie Movimento, Aspetto, Suono si trovano i blocchi che permettono di applicare allo sprite le animazioni e i suoni desiderati; nella categoria Penna, i blocchi per sviluppare programmi di scrittura e disegno; nelle categorie Controllo, Operatori, Variabili e Liste, i blocchi per codificare le principali strutture algoritmiche (“se... allora...”; “altrimenti”; “ripeti fino a quando”; “ripeti n volte” ecc.) che agiscono sulle variabili. E ancora: i blocchi per la gestione degli eventi che lanciano l’esecuzione degli script stanno nella categoria Situazioni; quelli per testare il verificarsi di certe situazioni nella categoria Sensori e infine quelli nuovi che si possono creare associando loro uno script in modo da gestire i sottoprogrammi nella categoria Altri Blocchi.
Uno script viene mandato in esecuzione in seguito al verificarsi di un determinato evento (per esempio Quando si clicca sulla bandiera verde, Quando si preme un tasto, Quando si riceve un messaggio). Il collegamento tra blocchi può avvenire solo secondo modalità predeterminate: per esempio, sopra un blocco della tipologia Cappello, alla quale appartiene Quando si clicca sulla bandiera verde, non è possibile incastrare nessun altro blocco. In questo modo la scrittura dei programmi risulta semplificata, perché vengono eliminati gli errori di tipo sintattico.
Ulteriori spunti per imparare a programmare in Scratch possono essere trovati leggendo le Scratch cards, oppure consultando la sezione All tips che si trova in alto a destra nell’ambiente di sviluppo di Scratch.

Verso una didattica innovativa

Tutto pronto quindi per programmare? Sembrerebbe di sì. Ma, come spesso capita, “avere una bici” non significa per forza “essere capaci di pedalare”. Occorre a questo punto sforzarsi di trovare esercitazioni che permettano di sfruttare al meglio le potenzialità dello strumento, per raggiungere gli obiettivi desiderati in base al contesto in cui si agisce. Un aiuto ci viene scartabellando il materiale informativo che si trova sul sito di Scratch e scaricando i numerosi progetti condivisi in rete, per cogliere suggerimenti e idee su come affrontare alcuni temi in modo non del tutto canonico. Per esempio, è possibile introdurre il concetto di contatore attraverso la progettazione e realizzazione di un programma per la gestione di un semplice quiz, in cui a inizio elaborazione un contatore viene posto a zero e incrementato di un'unità ad ogni risposta corretta. Oppure insegnare a far sì che lo sprite insegua il cursore del mouse realizzando quindi animazioni che possono essere utilizzate nello sviluppo di un videogioco più complesso. Anche su Youtube si trovano diversi video che possono aiutare non solo a imparare a programmare in Scratch, ma anche a trovare idee nuove da usare in classe.
Da queste idee possono nascerne altre per modulare la didattica coniugando, quando possibile, aspetti ludici al rigore scientifico. Una scommessa non facile ma molto stimolante, che richiede al docente di rimettersi in gioco per appassionare la platea e per non buttare via un’ottima occasione di dimostrare capacità e professionalità.

Scratch day: un appuntamento internazionale, un concorso italiano

Scratch è usato in tutto il mondo e un segnale del suo successo viene dalla pagina web sulle statistiche d’uso, dalla quale emerge che sono oltre 4 milioni gli utenti iscritti al sito. Ma ciò che meglio fa capire cosa sia diventato per il mondo della scuola e dell’educazione al coding in generale è lo Scratch Day. Lanciata nel 2008, l’iniziativa riunisce ogni anno tutti gli appassionati del programma, con eventi, tavole rotonde, incontri organizzati a livello locale. Anche il mio istituto, l’IIS Vallauri di Fossano, nel 2011 ha partecipato al suo primo Scratch Day, organizzando un contest interno per progetti sviluppati dagli studenti delle classi prime del settore tecnologico e del liceo delle scienze applicate. Al concorso hanno partecipato più di 30 progetti e una decina sono stati selezionati per il giudizio finale. Alla premiazione hanno preso parte rappresentanti del Dipartimento di Informatica dell’Università di Torino e del CSP Piemonte, un centro di ricerca e innovazione nel campo delle nuove tecnologie digitali. Il buon livello degli elaborati ha ulteriormente rafforzato la validità di Scratch a supporto della didattica, consentendo la ripetizione dell’esperienza negli anni successivi.

Così ogni anno gli studenti delle classi prime applicano i concetti di programmazione di base appresi nelle discipline informatiche allo sviluppo di un programma ludico-educativo, coinvolgendo insegnanti e compagni nella ideazione e nella risoluzione dei problemi che si trovano ad affrontare. Il risultato è tanto entusiasmo e voglia di provarci, magari puntando a vincere uno dei premi ipertecnologici messi in palio dalla scuola.
Proprio dall’esperienza del Vallauri è nato, nel 2012, il progetto chiamato Italian Scratch Festival, organizzato dall’associazione Dschola di Torino: un contest nazionale con l’obiettivo di condividere buone pratiche e valorizzare i migliori elaborati in Scratch dei ragazzi del primo biennio delle superiori delle scuole nazionali. L’edizione del 17 maggio 2014 ha visto un grande interesse e una buona partecipazione, con una quarantina di progetti presentati da 24 scuole. A questo link una presentazione dei progetti vincitori – il primo premio è andato proprio a uno studente del Vallauri – con il rinvio a un servizio del Tg Leonardo dedicato alla competizione.

Scheda didattica

Programmare con Scratch

di Alberto Barbero

Articolo PDF

Programmare con Scratch

di Alberto Barbero

 

Alberto Barbero: insegna discipline informatiche presso l’IIS Vallauri di Fossano (CN). Inoltre collabora con il dipartimento di informatica dell’Università di Torino, è docente in corsi PAS e autore per Pearson Italia.