Scratch: programmare come un professionista
I linguaggi di programmazione per il web e le applicazioni desktop hanno la reputazione di essere difficili da imparare. Se si tocca più da vicino questo argomento, ci si rende presto conto che c’è molta verità in questo; solo dopo studi approfonditi e un’applicazione costante, infatti, si può affermare di conoscere bene i linguaggi tradizionali come C++, C# o Java. Con Scratch, tuttavia, l’apprendimento è molto più veloce: se volete imparare a programmare in condizioni semplificate, questa piattaforma di linguaggio open source è la soluzione giusta. In questo tutorial imparerete esattamente in cosa consiste e come funziona questo progetto di programmazione, che si rivolge principalmente ai bambini.
Cosa c’è dietro al progetto Scratch?
Scratch è un progetto open source sviluppato e gestito intorno al linguaggio di programmazione omonimo dal Lifelong Kindergarten Group, un team di ricerca del MIT Media Laboratory di Cambridge. Il progetto è in gran parte finanziato dalla National Science Foundation (NSF) e da donatori volontari. La prima versione del linguaggio di programmazione visuale orientato all’istruzione è stata rilasciata nel 2007, incluso il proprio ambiente di sviluppo (basato su Squeak). L’attuale versione si basa su HTML5 e JavaScript e offre, tra l’altro, il supporto per il funzionamento touch nei browser per i dispositivi mobili Safari e Chrome.
Scratch è stato progettato per rendere i principi basilari della programmazione più accessibili e comprensibili per chi non ha esperienza, soprattutto per i bambini e i giovani. In Scratch, infatti, non ci sono tutti quegli elementi che rendono difficile l’inserimento intuitivo, mentre è stata data particolare importanza ai componenti che sono considerati favorevoli e motivanti. I progetti finiti possono essere pubblicati sulla piattaforma Scratch e quindi condivisi con il resto della community. Scratch ha messo al primo posto l’aspetto dell’apprendimento ludico, che dovrebbe avere sempre la massima priorità nella programmazione per bambini.
Scratch è utilizzato in oltre 150 paesi in tutto il mondo; il progetto, l’interfaccia e i numerosi tutorial sono disponibili in più di 40 lingue. Indipendentemente dal fatto che l’apprendimento avvenga nell’ambito di una lezione scolastica o a casa, è sempre gratuito.
Cosa contraddistingue la programmazione con Scratch?
Scratch si basa su un’interfaccia utente grafica che elimina la necessità di una sintassi complicata del linguaggio o di una digitazione ridondante del codice. In primo luogo, come già menzionato, vi è il desiderio di aiutare chi è alle prime armi a fare l’esperienza della programmazione. Pertanto, l’aspetto della facilità d’uso ha sempre la priorità sulla varietà delle funzioni. Nonostante queste limitazioni, Scratch presenta alcune importanti caratteristiche dei tradizionali paradigmi di programmazione, come mostra l’elenco seguente. Pertanto Scratch è:
- visuale: tutti gli elementi di Scratch sono rappresentati da una rappresentazione grafica comprensibile, caratterizzata ad esempio da comandi di programmazione con schemi a blocchi, che si possono facilmente inserire e assemblare tramite drag-and-drop.
- orientato agli oggetti: nella programmazione Scratch non sono disponibili né classi, né un sistema di ereditarietà. Tuttavia, per aspetti come l’incapsulamento dei dati (accesso controllato ai dati tramite interfacce definite) o il polimorfismo (gli oggetti possono accettare diversi tipi di dati), Scratch ricorre ad alcuni aspetti della programmazione orientata agli oggetti.
- imperativo: alcuni degli script per la programmazione con Scratch seguono il paradigma della programmazione imperativa. Le sequenze di comando specificano l’ordine in cui le azioni devono essere eseguite.
- orientato agli eventi: ogni script che si utilizza in un progetto Scratch inizia non appena si verifica l’evento definito nel suo modulo di intestazione. Utilizzando un blocco “Attendere fino a”, è possibile ritardare il caricamento di un progetto fino al verificarsi di un evento specifico.
- supporto al parallelismo: Scratch supporta la divisione dei programmi per computer in singole sottocomponenti e questa è una caratteristica del principio della programmazione parallela.
Tutorial su Scratch: imparare a programmare con Scratch
Sbagliando s’impara: ciò vale anche per la programmazione con Scratch. Anche se il progetto di programmazione pone ostacoli iniziali notevolmente inferiori rispetto ai linguaggi di programmazione classici, è comunque necessaria una certa formazione per conoscere e interiorizzare l’interfaccia utente e i componenti disponibili. Nel seguente tutorial su Scratch, vi mostreremo come accedere alla piattaforma e vi presenteremo tutti i componenti importanti dell’interfaccia utente. Infine, vi illustriamo la programmazione con Scratch utilizzando un progetto di esempio concreto.
Se volete insegnare ai bambini la programmazione con Scratch, dovreste prima approfondire voi stessi la conoscenza della piattaforma open source. Migliore è la comprensione del linguaggio e della sua interfaccia utente, migliore è il supporto che potete dare le prime volte.
Entrare a far parte della community di Scratch: come accedere alla piattaforma di programmazione
Per avviare un progetto Scratch, non è necessario creare un account. Potete accedere alla piattaforma Scratch semplicemente usando un browser a vostra scelta e premendo direttamente il pulsante “Crea”. Per poter entrare a far parte della grande community di Scratch e condividere dopo il completamento video, giochi, ecc. con altri utenti, l’account è invece indispensabile. Pertanto converrebbe comunque registrarsi.
Per creare un account utente, cliccate sul pulsante “Unisciti alla community di Scratch” e inserite il nome utente desiderato e una password sicura nel menu sottostante:
Dopo aver cliccato su “Avanti”, vi verrà chiesto di fornire alcune informazioni personali come il paese di origine o la data di nascita. Per completare la registrazione, inserite un indirizzo e-mail valido nell’ultimo passaggio e cliccate su “Crea il tuo account”.
In questo modo si effettua automaticamente il login. Nella vostra casella di posta elettronica troverete anche un link di attivazione che potrete utilizzare per sbloccare le funzioni di pubblicazione e di commento dei progetti Scratch programmati.
Se si desidera utilizzare Scratch per scopi didattici, si ha la possibilità di richiedere un account docente. Questo particolare tipo di account consente di predisporre le classi e di creare e gestire account personali per gli studenti. Il team di Scratch verificherà manualmente tutte le richieste di account docente, processo che solitamente può richiedere un massimo di 24 ore.
Apprendere Scratch: usare l’interfaccia utente
Dopo aver creato un account utente e aver effettuato il login nel vostro profilo, avete a disposizione diverse opzioni, selezionabili tramite la barra del menu superiore.
Ad esempio, se cliccate sul pulsante dell’account (sull’immagine e sul nome dell’account), potete gestire il vostro profilo personale, effettuare le impostazioni per la posizione, la password e l’indirizzo e-mail o accedere alla panoramica dei progetti attivi (“I miei progetti”). Da qui è inoltre possibile anche disconnettersi:
Le altre voci di menu disponibili si riferiscono alle seguenti funzionalità:
- Crea: la componente centrale del progetto web Scratch è l’ambiente di sviluppo grafico, che si avvia tramite la scheda “Crea”. Con l’aiuto di questo web editor potete programmare tutte le vostre applicazioni Scratch direttamente nel browser.
- Esplora: in questa sezione è possibile richiamare i progetti di altri utenti. Non è solo possibile riprodurli o giocarci, ma anche visualizzarne la programmazione Scratch completa. Progetti di tipo simile sono raggruppati in uno “Studio”.
- Idee: la sezione “Idee” vi dà accesso a vari tutorial e guide che possono aiutarvi a creare i vostri progetti, soprattutto quando si tratta di trovare nuove idee. Inoltre, qui trovate il link per scaricare l’applicazione Scratch (per Windows 10, macOS, ChromeOS, Android), che permette di programmare con Scratch senza una connessione Internet attiva.
- Info: se richiamate la voce di menu “Info”, sarete inoltrati a una pagina di informazioni generali sul progetto Scratch. Tra le altre cose troverete link a materiale informativo per genitori e insegnanti, consigli e una sezione FAQ.
Comprendere l’editor Scratch: come funziona la programmazione Scratch
L’ambiente di sviluppo Scratch ricorda sotto molti aspetti un kit per la creazione di un sito, il che non è sorprendente considerando il carattere modulare degli script disponibili. Oltre a questi script, che costituiscono la maggior parte degli elementi utilizzabili, è possibile aggiungere a un progetto anche costumi e suoni, che si possono poi controllare o utilizzare anche tramite script. Con un clic su “Aggiungi estensione” potete appunto estendere la gamma di script, ad esempio con strumenti da disegno, registrazione video o una funzionalità text-to-speech.
Scratch vi fornisce una varietà di costumi, suoni e script che potete immediatamente incorporare nei vostri progetti. In alternativa, è possibile importare o registrare proprie immagini e suoni se non si riesce a trovare l’elemento giusto nel materiale esistente. Possono essere generati anche degli script personali.
Costumi: dare vita a figure e oggetti
Che si programmi con Scratch un gioco, un video o un’animazione o anche solo un semplice fumetto, i personaggi e gli altri oggetti sono gli elementi centrali della/e vostra/e storia/e. Nella scheda “Costumi” è possibile selezionare e integrare un numero qualsiasi di elementi grafici per il vostro progetto. Potete scegliere tra il materiale visivo disponibile, dipingere a mano gli oggetti o importare elementi grafici salvati in locale. Avete anche la possibilità di scattare una foto se il vostro dispositivo è dotato di una macchina fotografica.
Una volta selezionati i costumi, potete modificarli. A questo scopo selezionate l’oggetto desiderato nel menu laterale sinistro (dove è anche possibile cancellarlo in qualsiasi momento cliccando sull’icona del cestino) e poi utilizzate gli strumenti dell’editor disponibili per cambiare i colori, rimuovere alcuni dettagli con una gomma, aggiungere del testo o deformare l’oggetto. È anche possibile convertire la grafica in una grafica raster o vettoriale. Nel campo “Costume” si può anche definire il nome del costume di cui i rispettivi script avranno bisogno in seguito come dimensione di riferimento.
Sul bordo inferiore destro della finestra si trova il pulsante “Sfondi”. Con questa opzione è possibile impostare l’immagine di sfondo per il proprio progetto. Anche in questo caso, è possibile scegliere da una selezione fornita da Scratch, importare le proprie immagini o muovere il pennello e dipingere il proprio sfondo.
Suoni: elementi audio e musica di sottofondo
Per molti progetti creativi, essenziale quanto le figure e gli oggetti è il giusto sfondo sonoro. Quando si programma con Scratch si implementano e si gestiscono tutti gli elementi audio tramite il menu “Suoni”. Come per gli elementi grafici, è disponibile una selezione già pronta di suoni Scratch, a cui si può accedere tramite “Seleziona suono”. Altrimenti avete la possibilità di importare o registrare suoni, a condizione che abbiate un microfono collegato.
I suoni inseriti possono essere selezionati nel menu a sinistra cliccando sull’immagine in miniatura corrispondente e successivamente modificati in vari modi. Ad esempio, è possibile tagliare le sequenze selezionate, regolare il volume o aumentare o diminuire la velocità di riproduzione. Poiché anche i suoni sono integrati nel progetto Scratch tramite script, ogni suono ha bisogno di un nome univoco, che viene assegnato nel campo “Suono”:
Script: l’essenza della programmazione con Scratch
Per poter programmare con successo con Scratch, è particolarmente importante esercitarsi con l’uso degli script. Il codice effettivo che c’è dietro a questi viene generato automaticamente non appena si trascina uno dei blocchi disponibili nel progetto, che si tratti di un evento, di una funzione, di un operatore o di una variabile. Come utente avete la possibilità di concentrarvi completamente sull’attribuzione di valori individuali a ogni script e sull’assegnazione delle componenti grafiche e sonore appropriate.
Per tutti gli script predefiniti ci sono descrizioni precise che indicano la loro funzione. Se si desidera utilizzare uno script nel progetto, è sufficiente trascinare il rispettivo blocco, in modo da richiamare i componenti dello script in Scratch, nella finestra centrale dell’editor. I valori o le opzioni da definire possono essere visualizzati direttamente sul blocco e qui possono anche essere digitati o selezionati direttamente. Se un nuovo script deve fare riferimento direttamente a uno script già inserito, è sufficiente attaccarlo al blocco corrispondente, come in un puzzle.
La difficoltà nell’apprendimento di Scratch non è dover interiorizzare regole sintattiche o un formato di markup, ma comprendere la funzione dei singoli script per poterli utilizzare e combinare in modo ottimale.
Programmare con Scratch: un semplice progetto d’esempio
Dopo avervi presentato nella parte precedente di questo tutorial le componenti più importanti di questa piattaforma di programmazione, vi illustriamo ora le possibilità di Scratch con un esempio concreto.
Nella prima fase cercheremo un’immagine di sfondo per il nostro progetto muovendo il mouse sopra l’icona dello sfondo nella parte inferiore dello schermo e cliccando su “Nuovo sfondo”. Abbiamo scelto il motivo “Blue Sky”, che usiamo senza modificarlo:
In seguito, aggiungiamo una figura al progetto di esempio. Poiché attualmente vediamo la scheda “Sfondi” al posto della scheda “Costumi”, clicchiamo a questo scopo sul pulsante “Seleziona figura” (in basso a destra). Scratch offre una gamma di varie figure con diversi costumi, con i quali in seguito si possono simulare sequenze di movimento. La figura “gatto”, ad esempio, è disponibile nelle varianti “gatto-a” e “gatto-b”, che, riprodotte una dopo l’altra, danno l’impressione che il gatto stia correndo.
Più varianti di costume sono disponibili per una figura, più la sequenza di movimento verrà programmata meglio!
Nell’ultimo passaggio di questo piccolo esempio vogliamo arrivare al punto centrale della programmazione con Scratch e rendere la figura controllabile. Ad esempio, per far correre il gatto da sinistra a destra, mentre si tiene premuto il tasto “freccia a destra”, inserite i seguenti script:
- Evento: quando si preme il tasto [ ]
- Controllo: attendere [ ] secondi
- Aspetto: passare al costume successivo
- Movimento: spostarsi di [ ] passi
Nello script evento si assegna il tasto desiderato, nel nostro caso “freccia a destra”. Con lo script successivo di “controllo” si determina il tempo tra un cambio di costume e un altro. Se inserite il valore “0.2”, vuol dire che passano 0,2 secondi prima che la figura cambi aspetto, il che rende la sequenza di movimento più naturale. Lo script “Aspetto” assicura che avvenga il passaggio da “gatto-a” a “gatto-b” finché si tiene premuto il tasto freccia. Il quarto script della sezione “Movimento” permette di spostare la figura a destra quando si cambia costume. Abbiamo deciso di inserire 10 passi regolari:
Potete testare il risultato di questo piccolo esempio di codice direttamente sulla pagina di progetto Scratch!
Pubblicare il proprio progetto
Una volta che siete entrati a far parte della community di Scratch e avete creato il vostro account utente, potete pubblicare i vostri progetti di programmazione sulla piattaforma Scratch in qualsiasi momento. A tale scopo, premete il tasto “Pubblica” nella barra del menu superiore.
Nella finestra che si apre, è ora possibile modificare il titolo del progetto, scrivere istruzioni, allegare note e ringraziamenti. Spostando il cursore a sinistra in “Commenti on”, disattivate opzionalmente la funzione di commento per il progetto.