Scratch (informatica)
Scratch linguaggio di programmazione | |
---|---|
Autore | Mitchel Resnick |
Data di origine | 2006 |
Ultima versione | 3.0 |
Utilizzo | Educativo |
Paradigmi | Programmazione a eventi, Programmazione imperativa |
Tipizzazione | dinamica |
Estensioni comuni | .sb (Scratch 1.4 e versioni precedenti) .sb2 (Scratch 2.0) .sb3 (Scratch 3.0) |
Influenzato da | Logo, Smalltalk, HyperCard, StarLogo, AgentSheets, Etoys |
Ha influenzato | Pocket Code |
Implementazione di riferimento | |
Sistema operativo | Windows, macOS e GNU/Linux |
Licenza | GPLv2 e Scratch Source Code License |
Sito web | scratch.mit.edu |
Scratch è un ambiente di programmazione gratuito, con un linguaggio di programmazione di tipo grafico. Tale linguaggio, ispirato alla teoria costruzionista dell'apprendimento e progettato per l'insegnamento della programmazione tramite primitive visive, è adatto a studenti, insegnanti e genitori ed è utilizzabile per progetti pedagogici e di intrattenimento che spaziano dalla matematica alla scienza, consentendo la realizzazione di simulazioni, visualizzazione di esperimenti, animazioni, musica, arte interattiva e semplici giochi.
Storia[modifica | modifica wikitesto]
Il gruppo Lifelong Kindergarten del MIT Media Lab, guidato da Mitchel Resnick, e la sua società di consulenza, Playful Invention Company, con sede a Montreal, co-finanziato da quest'ultimo con Brian Silverman e Paula Bonta, ha sviluppato la prima versione desktop di Scratch nel 2003. Dal 2007, i progetti possono essere condivisi online con altri utenti, i quali possono apportare modifiche in modo cooperativo.
Con l'introduzione della versione 2.0 di Scratch è diventato possibile definire blocchi utente all'interno di un progetto.[1]
Il nome deriva dalla omonima tecnica dello scratch usata dagli artisti del giradischi, i turntablist, alludendo alla facilità con cui è possibile missare e remixare i progetti Scratch.
Da questa base si sono sviluppate altri progetti, per esempio Snap!, per aggiungere altre funzionalità non presenti nella versione di Scratch.[2]
Una variante di Scratch per bambini da 5 a 7 anni è stata sviluppata sotto il nome di ScratchJr [3].
Descrizione[modifica | modifica wikitesto]
Linguaggio[modifica | modifica wikitesto]
Scratch prevede un approccio orientato agli oggetti (denominati Sprite) ed un linguaggio di programmazione che consente di elaborare storie interattive, giochi, animazioni, arte e musica. Inoltre permette di condividere i progetti con altri utenti del web.
L'idea di questo linguaggio è che anche i bambini o le persone inesperte di linguaggi di programmazione possono imparare importanti concetti di calcolo matematico, a ragionare in modo sistematico, a pensare in modo creativo e a lavorare in gruppo.
Scratch è caratterizzato da una programmazione con blocchi di costruzione (blocchi grafici) creati per adattarsi l'un l'altro, ma solo se inseriti in corretta successione: solo in questo modo si evitano inesattezze nella sintassi.
Ambiente[modifica | modifica wikitesto]
L'ambiente Scratch è disponibile sia via web, sul sito ufficiale scratch.mit.edu, sia come software utilizzabile offline, chiamato Scratch Desktop, disponibile per le piattaforme Windows, MacOS. Al momento non esiste una versione ufficiale [4] di Scratch Desktop per GNU/Linux. L'ultima versione stabile è la versione 3.6.0. pubblicata nel 2019.
Interfaccia utente[modifica | modifica wikitesto]
L'area posta in alto a sinistra è il palcoscenico o "stage area", dove compaiono i risultati e il codice prende vita (es. animazioni, grafica, ecc., tutto in dimensioni piccole, normali o a pieno schermo) mentre gli Sprite, gli oggetti grafici su cui agisce il codice, sono elencati in basso.
Selezionando uno Sprite è possibile associarvi i blocchi di codice, selezionabili dall'area Script, dove sono raggruppati per argomento, trascinandoli nell'area del codice. Se uno Sprite ha associato del codice questo viene visualizzato nell'area a destra ed è possibile modificarlo. Qualsiasi blocco può essere provato con un doppio clic in modo da vederne in anteprima l'azione.
Categoria | Note | Categoria | Note | |||
---|---|---|---|---|---|---|
Movimento | Muove gli Sprite e cambia gli angoli |
Situazioni | Blocchi di gestione degli eventi e da porre come testata. | |||
Aspetto | Controlla la visibilità, i costumi e l'output |
Controllo | Istruzioni se e strutture ciclo/loop | |||
Suono | Esegue brani audio e sequenze audio programmabili |
Sensori | Sensori per gli Sprite e input utente | |||
Penna | Supporto al disegno e alla grafica (Dalla versione 3.0 questa categoria non è automaticamente presente, in quanto va aggiunta manualmente dalla sezione "Estensioni") |
Operatori | Operatori matematici e booleani. | |||
Variabili e liste | Uso di variabili e assegnazione di valori |
Altri blocchi | Procedure personalizzate (funzioni) e controllo di periferiche. |

A lato della cartella Script, ve ne sono altre due per Costumi e Suoni. Una barra espandibile a destra è dedicata alla guida.
Le aree sono state riorganizzate nella versione 2.0.[5]
Comunità[modifica | modifica wikitesto]
Lo slogan della comunità online di Scratch recita "Immagina, Programma, Condividi", sottolineando l'importanza della condivisione e degli aspetti sociali della creatività nella filosofia alla base di Scratch.
I progetti Scratch, essendo a codice aperto, sono liberamente modificabili e utilizzabili per creare nuovi progetti. I progetti possono essere inviati direttamente dal programma al sito web di Scratch, e qualsiasi membro della comunità può scaricarne il codice per studiarlo o modificarlo in un nuovo progetto. I membri possono inoltre creare gallerie di progetti, commentare, taggare e aggiungere ai preferiti. Tutti i progetti sul sito sono condivisi con licenza Creative Commons "Share-Alike" e riprodotti su un browser (utilizzando Flash Player).
Il sito web riceve quasi 10 milioni di visite al mese e al 2 gennaio 2013 i membri registrati sono 1.349.093 (di cui 402.697 hanno condiviso progetti), per un totale di più di 4.200.000 progetti condivisi (più di un progetto inviato al minuto). Il sito web organizza periodicamente il "Scratch Design Studio", competizione per incoraggiare la creazione e condivisione di progetti dalla grafica elementare.
Nel 2008, la piattaforma della comunità online di Scratch (denominata "ScratchR[6]") ha ricevuto una menzione onoraria all'Ars Electronica Prix.
Esiste anche una comunità online per educatori, denominata ScratchEd.
Note[modifica | modifica wikitesto]
- ^ Kids' Programming Tool Scratch Now Runs In The Browser, TechCrunch, May 2013.
- ^ BYOB homepage, University of California, Berkeley.
- ^ Informazioni su ScratchJr, su scratchjr.org.
- ^ Download Scratch
- ^ Mitchel Resnick, Andrés Hernández, Natalie Rusk, Evelyn Eastmond, Karen Brennan, Amon Millner, Eric Rosenbaum, Jay Silver, Brian Silverman, Yasmin Kafai e John Maloney, Scratch: Programming for All, in Communications of the ACM, vol. 52, n. 11, November 2009, pp. 60–67, DOI:10.1145/1592761.1592779. URL consultato il 25 gennaio 2014 (archiviato dall'url originale il 5 luglio 2017).
- ^ ScratchR - Scratch Wiki, su en.scratch-wiki.info. URL consultato il 29 ottobre 2020.
Voci correlate[modifica | modifica wikitesto]
Altri progetti[modifica | modifica wikitesto]
Wikibooks contiene testi o manuali su Scratch
Wikimedia Commons contiene immagini o altri file su Scratch
Collegamenti esterni[modifica | modifica wikitesto]
- (MUL) Sito ufficiale, su scratch.mit.edu.
- (EN) Opere riguardanti Scratch, su Open Library, Internet Archive.
- Scratch, su packages.debian.org.
- Presentazione di Scratch, su scratch.mit.edu.
- Download dell'ambiente Scratch, su scratch.mit.edu.
- (EN) Mitch Resnick, Let's teach kids to code (video), su ted.com.
Controllo di autorità | LCCN (EN) sh2008006648 · GND (DE) 7860906-9 |
---|