Programmare per gioco: Scratch

Confesso che il mio rapporto con Scratch è del tutto particolare, ma per spiegarmi debbo partire da lontano.
Come molti (molti si fa per dire. Non eravamo poi così tanti) insegnanti della mia età, ho iniziato a lavorare col LOGO di Seymour Papert.
Il LOGO permetteva ai ragazzi di disegnare sullo schermo passando dei comandi ad un triangolino (la famosa “tartaruga”). I comandi erano abbastanza numerosi, ma bastava conoscerne anche pochi (cinque o sei) per cominciare a lavorare ed a produrre cose interessanti.
L’importanza didattica consisteva nel fatto che i ragazzi cominciavano a sperimentare ed acquisivano da subito una certa autonomia. LOGO cambiava radicalmente il rapporto fra umano e computer e spingeva i ragazzi a provare, provare, provare.

Scratch-1
Un interessante disegno realizzato con una procedura LOGO (cioè un gruppo di comandi ripetuto più volte)

 

Non per niente molti consideravano il LOGO la bandiera del costruttivismo.
Il tempo però passa e le cose passano di moda, complice anche il desiderio continuo di novità. Così fu anche per il LOGO. Era un peccato, ma, come molti altri, non me ne rendevo conto. All’epoca, ero preso da Game Maker (vedi post precedente) e forse ero scusabile.
Cos’era, in realtà, che rendeva il LOGO poco attuale? Semplice: il fatto che fosse poco user-friendly (il concetto stava appunto venendo di moda allora). Si poteva accettare LOGO al tempo del DOS, che era una gestione del sistema a linea di comando, ma al tempo di Windows 3.1?
Eravamo tutti ipnotizzati dalla metafora del desktop, dalla gestione grafica dei file e delle cartelle. Ad ogni modo, ci fu chi capì che assieme all’acqua del bagnetto stavamo buttando anche il bambino e corse ai ripari.
L’idea di realizzare una specie di visual logo venne a parecchi e così nacquero StarLogo TNG (The Next Generation, addirittura!) e, appunto, Scratch, entrambi ad opera di gruppi di studio del MIT. Anche Mark Overmars, l’autore di Game Maker, ne fece una versione, chiamata Drape, in seguito immeritatamente dimenticata.
Naturalmente i figli somigliano al genitore solo in parte: è la legge dell’evoluzione.

Scratch-2

Così Scratch ha preso da papà LOGO la facilità d’uso, la tendenza allo sperimentale, la possibilità di realizzare procedure. In più è veramente user-friendly.
Guardate, nell’illustrazione qui sopra, il semplicissimo programma che realizza quelle stelle a mille punte: “quando premo la barra spaziatrice, abbassa la penna e metti il colore blu, infine esegui la procedura mioblocco; la procedura mioblocco equivale a ‘avanti di 80 passi, gira a destra di 123 gradi’ “. Forse l’unico sforzo che richiede Scratch è quello di esplorare i tanti comandi minori che offre, ma più che uno sforzo, è un divertimento.
Potete usarlo online visitando questo indirizzo: //scratch.mit.edu/projects/31876/. Potete scaricarlo per usarlo in locale qui: //scratch.mit.edu/scratch2download/
I comandi sono intuitivi e vengono rappresentati da blocchetti variamente sagomati e diversamente colorati a seconda del tipo, da inserire l’uno sotto l’altro, come si può vedere nell’illustrazione. I valori, le variabili, i calcoli, vengono inseriti tramite altri blocchetti all’interno dei comandi. Niente di più facile! Non stupisce che Scratch e sue derivazioni siano i più utilizzati dai coder.
Ecco, arrivato a questo punto, mi rendo conto che non ho veramente spiegato come funziona Scratch: ma il fatto è che è così semplice che non vorrei rovinare la scoperta a chi non lo conosce e vuole cimentarsi.
Aggiungerò invece alcune considerazioni d’ordine generale. Innanzitutto, Scratch è essenzialmente la sua interfaccia: il meccanismo interno può essere realizzato con mezzi differenti. Ne è diffusa anche una versione on line realizzata con javascript.
L’interfaccia scratch-like è più intuitivo di quello di Drape e forse anche di StarLogo.
Scratch è considerato in genere adatto ai giovani delle elementari, al massimo delle medie, ma, come accade per ogni linguaggio, è sempre possibile creare qualcosa di interessante anche con mezzi limitati. Inoltre, non si deve dimenticare che gli obiettivi di un insegnante che utilizza in classe o in laboratorio Scratch sono essenzialmente trasversali e solo secondariamente disciplinari.

Scritto da: Paolo Freschi