DIDATTICA

Non solo informatica a scuola: così il coding apre all’apprendimento del futuro

L’avvicinamento alla logica del pensiero computazionale non è fine a se stesso. Anzi ha l’effetto di migliorare i processi cognitivi sviluppando competenze critiche e problem solving. Ecco perché è strategico nella scuola digitale. Il programma Scratch e le sue caratteristiche

18 Mag 2020
Alexandra Suardi

Dott.ssa/Spec. in Pianificazione Territoriale ed Ambientale Web Design & Digital Marketing


La programmazione informatica sta prendendo piede nell’istruzione scolastica, anche per l’età prescolare. Il coding può essere affrontato sia nel modo ludico, quindi attraverso il gioco, sia nel modo più pragmatico avvicinandosi alle basi di informatica ed alla vera e propria educazione alla robotica. Vediamo i capisaldi del suo insegnamento, in grado di spingere la scuola digitale.

Cosa insegna il coding agli studenti

Imparare a fare il coding non significa solo “programmare”, ma anche imparare a organizzare le idee, sviluppare il pensiero logico e critico e le capacità di problem solving. In particolare, esiste un programma molto intuitivo e di facile apprendimento che può essere usato per la programmazione veloce negli ambienti scolastici: SCRATCH.

L’azione del linguaggio Scratch è basata sulla metafora del teatro/cinema – le “quattro S”: Stage (palcoscenico) Sprite (“oggetti” ovvero personaggi, attori) Script (“copione”, la parola Script sostituita successivamente da Code “codice”), Scratch (progetto / programma che mette assieme tutto questo). E se l’ambiente di Scratch diventa metaforicamente un teatro, il programmatore si trova a ricopre un ruolo multitasking: l’autore, il regista e lo sceneggiatore.

Scratch: significato, nascita e varietà d’utilizzo

Il nome Scratch deriva dall’omonima tecnica dello scratch usata dai disc jockey per alterare il movimento del disco sul piatto (per ottenere variazioni sonore della musica); quindi il paragone è simbolico e fa intuire la possibilità di remixare i progetti in Scratch.

Scratch è nato nel 2006 come progetto di Lifelong Kindergarten Group dei Media Lab del MIT (MIT – Massachusetts Institute of Technology), il laboratorio dedicato a progetti riguardanti la tecnologia, la multimedialità e il design.

Scratch nasce come un software edu-creativo ispirato soprattutto alle teorie del costruzionismo che “rivendica in pieno” il significato del termine principale “il graffio” – lasciare il segno, quindi “in-segnare”. E mentre si impara a programmare tramite le procedure di letto-scrittura se ne imparano tante altre più accattivanti e significative.

Fra vari usi Scratch contempla anche quello di improvvisato e raccogliticcio (attraverso il senso di programmare con quello che si ha “a portata di clic”) pertanto si distingue anche nella sua varietà d’utilizzo in diverse fasce d’età (dall’età prescolastica, con la versione Scratch Junior 5-7, fino all’età avanzata).

Scratch è un software didattico innovativo ovvero un ambiente di programmazione a blocchi (oggetti) per il coding e la robotica educativa. È un linguaggio molto intuitivo, soprattutto perché è visuale, quindi utilizzabile da chiunque: non solo alunni, ma anche ragazzi e adulti, genitori e/o educatori.

L’idea di questo linguaggio è che anche i bambini o le persone inesperte di linguaggi di programmazione possano imparare importanti concetti di calcolo matematico, a ragionare in modo sistematico, usando la logica, ed a pensare in modo creativo con possibilità anche di lavorare in gruppo.

Scratch consente di elaborare storie interattive, giochi, animazioni, arte e musica, dai livelli più semplici fino ai livelli avanzati con le funzioni di programmare i robot. Inoltre permette di condividere i progetti con altri utenti del web. In pratica la programmazione avviene tramite la scrittura di diverse istruzioni (gli script) che permettano ad un oggetto di fare determinate cose, svolgere la sua funzione o raggiungere uno scopo.

Scratch è un applicazione gratuità scaricabile direttamente dal sito dedicato. Sul sito sono presenti anche il manuale e diversi tutorial oltre alle informazioni suddivise per categorie utenti: alunni, genitori, educatori.

È possibile usare Scratch in due modalità:

  • Modalità online: registrandosi direttamente sul sito e procedere seguendo dei tutorial partendo da zero (opzione “Impara come creare un progetto in Scratch”) o partendo già da un progetto fatto (opzione “prova i progetti per iniziare”)
  • Modalità offline (in locale): scaricando il software gratuito per poi sperimentarlo in locale sul proprio pc (senza doversi necessariamente registrare sul sito)

Il sito di Scratch mette a disposizione manuali gratuiti (in diverse lingue), gallerie di progetti, materiali informativi, video tutorial, forum di discussione e permette inoltre di scaricare più di 4 milioni progetti (gratuiti con licenza Creative Commons) oppure di caricare i propri progetti condividendoli con altri utenti di tutto il mondo.

La Comunità online di Scratcher è molto forte, incoraggiante e consiglia ai suoi membri di seguire le seguenti linee guida:

  • Sii rispettoso: nel condividere e commentare progetti tieni in considerazione che le persone sono di varie età provenienti anche d aculture molto diverse.
  • Sii costruttivo: commenta progetti che ti piacciono e offri i tuoi suggerimenti.
  • Sii onesto: non copiare altri, non diffondere fake news e non cercare di igannare altri membri.
  • Aiuta la Comunità di Scratcher a mantenere il sito un luogo amichevole: segnala eventuali anomalie e/o commenti inappropriati oppure offensivi.

Interfaccia: ambiente di programmazione

All’apertura Scratch si presenta col suo ambiente di programmazione (editor), come nell’immagine illustrata:

L’interfaccia grafica è semplice ed intuitiva. Oltre al menu principale (Barra degli strumenti del tipo classico “File – Modifica – Tutorial”), lo schermo visualizzato all’apertura dell’applicazione viene suddiviso in tre parti verticali con:

  • le schede di lavorazione a sinistra: 3 TAB denominati: Codice (Script) – Costume – Suoni che servono per animare l’oggetto selezionato
  • l’area di lavoro centrale (in cui viene visualizzato il contenuto rispetto alla scheda selezionata a sinistra; di cui di conseguenza cambiano le opzioni/funzioni “proposte”)
  • l’area dello Stage (palcoscenico) che occupa la parte destra: questa è l’area di lavoro (sotto la quale si trova il Pannello degli Sprite (oggetti), alla quale si affianca Pannello Sfondi delle dimensioni moto ridotte).

Le 3 schede principali: Codice-Costume-Suoni

  • La scheda Codice (Script) contiene diverse funzioni suddivise in 9 categorie (distinte anche per colore); esse consentono di governare il movimento, il controllo, il suono ecc. (dell’oggetto selezionato) con un semplice trascinamento nell’area di Script a destra (ovvero l’area centrale).
  • La Scheda Costume permette di gestire il costume dello Sprite (cambiandogli colori oppure l’intero costume scegliendo dai template disponibili, oltre ad avere possibilità di crearlo completamente nuovo elaborando anche gli elementi grafici)
  • La Scheda Suoni gestisce la parte audio, anche qui usando i suoni già a disposizione, oppure importando i propri file audio o registrandone una traccia direttamente nell’applicazione.

Codice: Blocchi e script

Un Blocco non è altro che un’istruzione (un pezzo di codice) che appartiene ad una categoria (vedi l’illustrazione qui sotto) visualmente contraddistinta anche da un colore (es. azzurro movimento, viola aspetto, ecc.) e da una forma che anch’essa visualmente fa intuire in che modo possono essere abbinati tra di loro (i blocchi).

Categorie del CODICE (script da usare) BLOCCHI di esempio sei possibili forme di BLOCCO

Fonte: Imparare a programmare con Scratch: il manuale per programmatori dai 9 anni in su – M.Boscaini, M.Beri (Apogeo)

Uno Script è una sequenza di istruzioni collegate tra di loro, quindi una serie di blocchi incastrati (a sequenza). Impilare i blocchi è un’operazione molto semplice: scegliendo la categoria desiderata e l’azione precisa (il blocco) tramite la tecnica “drag’n’drop” la si inserisce nella parte destra (area di lavoro). L’esecuzione di uno script avviene con un semplice click (dopo averlo selezionato).

Da qui poi si apre la panoramica sulla varietà di combinazioni possibili tra blocchi e script, abbinandoli tra loro ed assegnandoli ai rispettivi Sprite. Ovviamente è sempre possibile eseguire le solite operazioni di modifica, copia, incolla, e sposta sui singoli blocchi e/o script.

A che serve il pannello Stage

Questo pannello diventa il palcoscenico dove le storie create, i giochi e le animazioni prendono vita: tramite l’esecuzione degli script assegnati allo Sprite selezionato con due controlli generali (bandiera verde – START per iniziare lo script e un cerchio di colore rosso – STOP per fermarlo).

Inoltre gli Sprite si muovono e interagiscono tra di loro sullo Stage (in base al codice rispettivamente assegnato). Allo Stage è possibile assegnare lo sfondo (scegliendone uno dai template già predisposti oppure creandone uno nuovo con possibilità di personalizzarlo anche successivamente)

Lo Stage misura 480 unità in larghezza e 360 unità in altezza. E’ suddiviso in una griglia x-y, di cui il centro dello Stage ha la coordinata x pari a 0 e la coordinata y pari a 0.

Illustrazione: Dimensioni dello STAGE (con la coordinata 0,0 indicata al centro)

In questo modo attraverso lo Stage, testando il codice nell’immediato, Scratch permette di sperimentare l’ideazione e la realizzazione di progetti, comprendendo il rapporto esistente tra codice sorgente (script) ed il risultato visibile.

A che serve il pannello Sprite

Gli Sprite sono personaggi, possono essere diversi, personalizzati a piacimento (variandone anche i Costumi) ed a ciascuno vengono attribuite delle azioni e/o animazioni da eseguire (mediante il Codice). Essi possono interagire tra di loro oppure compiere azioni indipendenti.

Pannello SPRITE con le informazioni sullo Sprite selezionato

Fonte: Imparare a programmare con Scratch: il manuale per programmatori dai 9 anni in su – M.Boscaini, M.Beri (Apogeo)

Come funziona l’editor di immagini (costumi-sfondi)

Quando viene selezionato uno Sprite oppure uno Sfondo è possibile usare Editor delle immagini. Nel caso dello Sprite questo si riferisce alla scelta e modifica del Costume del personaggio scelto. Invece nel caso della scelta dello Sfondo al posto della Scheda (TAB) Costume appare la scheda Sfondo con l’Editor che permette la modifica e personalizzazione dello Sfondo scelto.

Editor immagini (COSTUMI) Editor immagini (SFONDI)

Algoritmo: avvicinarsi alla programmazione

L’algoritmo è un concetto fondamentale dell’informatica. “Un algoritmo è un procedimento o programma che risolve un determinato problema attraverso un numero finito di istruzioni elementari, chiare e non ambigue” (Wikipedia). Un algoritmo può essere rappresentato in diverse forme in svariati ambiti. Se pensiamo ad una ricetta di cucina anch’essa ha il suo procedimento (logico e fattibile) così come uno spartito musicale.

Nella scuola primaria un esempio quotidiano da “tradurre” in forma di algoritmo può essere: l’esecuzione di operazioni tra numeri a più cifre (es. trovare il numero minimo o massimo). Questo tipo di algoritmo viene usato esattamente per scegliere il prezzo minore (o maggiore) tra prodotti dello stesso genere quando si va fare la spesa. La familiarità di questo algoritmo ad esempio facilita l’avvicinamento all’informatica ed al concetto di programmazione, superando eventuali ostacoli di teoria e mettendo in pratica nel modo intuitivo, semplice e stimolante attraverso Scratch.

Di conseguenza, partendo da un modo giocoso e ludico Scratch può essere utilizzato per introdurre elementi fondamentali dell’informatica stimolando un eventuale futuro apprendimento di altri linguaggi di programmazione. Esempio:

  • Inseriamo 3 numeri (ABC)
  • Assegniamo MAX alla variabile A.
  • Controlliamo se B è maggiore del MAX.
  • Se è vero assegniamo a MAX il valore B, altrimenti non facciamo nulla.
  • Controlliamo se C è maggiore del MAX e se vero sostituiamo il valore.
  • Se ad esempio inseriamo questi tre numeri:

A=3 B=6 C=2

  • Assegniamo MAX =A ovvero in questo caso MAX=3.
  • Si controlla se B è maggiore del MAX. In questo caso è vero, quindi mettiamo MAX=B ovvero MAX =6.
  • Poi controlliamo se C, ovvero 2, è maggiore del MAX. In questo caso non è vero, quindi non sostituiamo nulla.

Infine viene visualizzato il MAX dei tre numeri in output.
In questo caso avremo che il massimo tra i tre numeri è 6.

Esempio esercitazione in Scratch: calcolo il massimo fra 3 numeri inseriti dall’utente

Pensiero computazionale con Scratch

Uno dei concetti fondamentali della programmazione è quello di variabile. Una variabile è un dato che ha un nome e un valore. Attraverso i valori delle variabili i programmi risolvono i problemi di calcolo (algoritmi). Scratch permette di elaborare variabili e liste di valori, offre controlli per la selezione e l’iterazione di istruzioni con cicli di vari tipi, oltre al controllo delle animazioni (anche molto complesse), combinando anche più processi contemporaneamente, facendoli interagire, con possibilità di inserire altri elementi come eventi etc.

A volte è necessario alterare l’esecuzione sequenziale delle istruzioni. Ad esempio, se abbiamo la necessità di eseguire delle istruzioni per premiare le risposte corrette in un gioco e non premiare in caso di risposte sbagliate, dobbiamo “confrontare” le risposte. Questo procedimento è alla base delle “decisioni” nei linguaggi di programmazione.

Scratch può “prendere decisioni” in maniera tale da alterare il flusso sequenziale delle istruzioni di un algoritmo. Di solito sono necessari i cosiddetti operatori di confronto che possono essere: matematici (maggiore-minore-uguale), logici (e-o-non) e/o relazionali (if-then-else).

Molto spesso capita di dover ripetere più di una volta la stessa sequenza di operazioni. Piuttosto che copiare le stesse istruzioni e metterle in sequenza (soluzione inaffidabile, non efficiente e molto spesso non efficace), Scratch mette a disposizione diverse istruzioni speciali (di controllo) chiamate cicli (loop), che possono essere: infiniti, controllati (da un numero “limite” o da una condizione) e/o annidati.

Insomma per quanto possa essere semplice ed intuitivo, Scratch si presta benissimo all’uso da parte degli utenti di livelli avanzatissimi e più impegnativi, non perdendo nello stesso tempo il suo fascino dettato dalla sua flessibilità e dall’immediatezza del risultato ottenuto.

Non solo programmare: gli obiettivi di Scratch

Gli utenti di Scratch mentre si esercitano nelle procedure della programmazione apprendono molto di più, come:

  • progettare per blocchi logici;
  • inferire, per deduzione, quando possibile alla migliore spiegazione, in caso di incertezza;
  • collaborare e condividere;
  • coniugare creatività e rigore procedurale,
  • costruire narrazioni efficaci;
  • imparare anche sbagliando (dando il valore ai propri errori);
  • aumentare competenze trasversali (come l’intelligenza emotiva).

E mentre l’imparare procede di pari passo col divertirsi (senza paura di sbagliare), si formano i sentieri lungo i quali far percorrere l’apprendimento nell’arco dell’esistenza – il traguardo principale di un percorso educativo.

@RIPRODUZIONE RISERVATA

Articolo 1 di 4