Si tratta di un linguaggio di programmazione grafico (non testuale), gratuito e disponibile anche online. Grazie alla sua interfaccia, decisamente accessibile e intuitiva, è adatto ad educare una larga fascia di età al pensiero computazionale: dagli ultimi tre anni della scuola primaria al primo biennio superiore (ma anche fino ad arrivare ai corsi universitari). Si possono realizzare contenuti digitali interattivi come storie, animazioni, giochi, prodotti artistici e simulazioni tecnico-scientifiche adatte al contesto.
Scratch ha un semplice editor grafico, tipo paint, in cui si creano oggetti grafici detti sprite; una libreria ne contiene alcuni già fatti. Ad ogni sprite è possibile associare:
diverse versioni grafiche, dette costumi, utili per dare l'impressione del movimento, se visti in rapida successione, oppure per cambiare aspetto quando all'occorrenza.
diversi suoni.
una serie di azioni, script, rappresentate graficamente da blocchi, detti mattoncini, contenute in una libreria standard da cui si possono trascinare nella finestra di programmazione. I blocchi hanno forme ed incastri diversi in modo tale che si possano collegare tra loro solo azioni sintatticamente compatibili; così si evitano i frequenti errori che impediscono spesso ai neofiti di concentrarsi sugli aspetti logici della programmazione. E' possibile definire nuovi blocchi, a partire da quelli già presenti, che possono essere conservati e condivisi in rete.
Uno script viene eseguito in seguito al verificarsi di un determinato evento: ad es. quando si clicca sulla bandiera verde, al click del mouse, quando si preme un tasto, quando si tocca un colore particolare o il bordo..
Lo scenario finale, detto stage, risulta dalla composizione dinamica di tutti gli sprite che vengono sovrapposti ad un'immagine statica di sfondo.
Si può realizzare efficacemente fin da subito: basta, per ogni sprite (multitasking), scegliere e collegare logicamente la sequenza di azioni che risolvono l'algoritmo. Ovviamente ogni azione ha regole di funzionalità che ci obbligano a mettere a punto logiche efficaci per la realizzazione dell'idea. Così, intuitivamente, iniziamo a programmare. Le azioni disponibili sono tantissime e utili per comprendere, attraverso il divertimento, argomenti che normalmente si affrontano a scuola con altre modalità: ad es. il concetto di variabile viene utilizzato spontaneamente (e forse inconsapevolmente dal punto di vista del programmatore esperto). Tra le principali azioni ci sono quelle di movimento, gli eventi (event-driven), le operazioni logico-matematiche e i blocchi tipici della programmazione strutturata.
L'aspetto intrinsecamente collaborativo di Scratch è garantito dal supporto di una vastissima comunità internazionale (che ha già creato oltre 3 milioni di progetti), un vero e proprio social network, che incoraggia in modo esplicito la collaborazione tra utenti, la copiatura (o meglio il remix) dei progetti, i commenti e lo scambio di aiuto e di materiali.
La vera peculiarità di Scratch, è la sua dichiarata finalità pedagogica:
“Scratch aiuta i giovani ad imparare a pensare in modo creativo, a ragionare in maniera sistematica e a collaborare; oggi tutte queste sono capacità essenziali.”
Mitchel Resnick, direttore presso il MIT Media Lab ed uno dei creatori di Scratch, impegnato nello sviluppo di strumenti educativi e di attività di progettazione didattica a contatto con le tecnologie, considera la programmazione una via importantissima per imparare e che imparare a programmare significa imparare molte altre cose e afferma:
"è utile fare un’analogia con la lettura e la scrittura. Quando si impara a leggere e scrivere, si aprono nuove opportunità per imparare molte altre cose. Quando si impara a leggere, allora si potrà anche leggere per imparare. E imparare a programmare è la stessa cosa.
L’analogia con la lettura e la scrittura è decisamente efficace, perché offre al concetto di programmazione una visione più ampia e non limitata al solo obiettivo di realizzare oggetti informatici. Continua Resnick:
"Quando si diventa fluenti a leggere e scrivere non lo si fa solamente per diventare uno scrittore di professione. Poche persone diventano scrittori di professione. Ma imparare a leggere e scrivere è utile a tutti. Ed è la stessa cosa per la programmazione. La maggior parte delle persone non diventerà un esperto di informatica o un programmatore, ma l’abilità di pensare in modo creativo, pensare schematicamente, lavorare collaborando con gli altri, sono cose che le persone possono usare, indipendentemente dal lavoro che fanno."
Ecco perché uno strumento come Scratch può essere utile nella didattica.
CICLI E INPUT VARIABILI
Disegnare un quadrato di lato 100; un vertice nell'origine.
Disegnare un quadrato di lato variabile; un vertice nell'origine.
Disegnare un pentagono di lato variabile, un esagono, ecc
Disegnare un poligono in generale di lato variabile; introdurre la variabile numero lati ( da 3 a 20)
Disegnare n poligoni di n lati ( 4 quadrati che formano una griglia, 5 pentagoni, ecc...)
Disegnare un cerchio di raggio variabile.
Disegnare una spirale
Disegnare un poligono con le seguenti variabili: lato, numero lati, posizione di un vertice, angolo iniziale.
Disegnare un quadrato di lato variabile; disegnare le sue diagonali; l'intersezione delle diagonali coincide con l'origine del piano cartesiano.
Disegnare infiniti triangoli che hanno un vertice fisso nell'origine e gli altri due vertici random.
Disegnare infiniti triangoli che hanno i tre vertici random; random anche spessore e colore.
Sistema solare
Colorare l'area percorsa da un pianeta alternativamente con due colori diversi ad intervalli di tempo costanti
Realizzare un piano cartesiano di passo variabile
SISTEMA SOLARE
http://www.solarsystemscope.com/
Far ruotare uno sprite attorno ad un altro fisso; ci sono due metodi...
Realizzare il sistema solare per quanto possibile, ad es. rispettando le distanze...
IL LATO OSCURO DELLA LUNA
Moon Phase and Libration, from the Other Side
Realizzare una animazione con il sole, la terra e la luna:
terra e luna sono due sfere ognuna di due colori, bianco e nero;
la luna deve avere il lato oscuro sempre rivolto verso l'esterno rispetto alla terra.
la terra non deve avere un lato oscuro sempre verso l'esterno rispetto al sole.
spiegare l'algoritmo.
Flappy
Alternando i costumi simulare il battere delle ali
farlo scendere sempre
premendo space farlo risalire
quando risale inclinarlo verso su di 45°
introdurre il movimento di una coppia di tubi (con un passaggio nel mezzo) da dx verso sx
per ogni coppia di tubi che raggiunge il bordo sx incrementare il punteggio ( che parte da zero)
se flappy urta il tubo il gioco termina
la pipe che raggiunge il bordo sx ricompare a dx cambiata in dimensioni, colore e posizione lungo y
introdurre due pipes
clonare pipe
Problem solving e creatività:
due personaggi si incontrano e si salutano
Indovina un numero: semplice, impiccato, superenalotto a due numeri e a più numeri
il peso forma