1. CHE COS'È IL CODING? - icmorzenti.gov.it · potrà riprodurre e completamente il disegno. Per...
Transcript of 1. CHE COS'È IL CODING? - icmorzenti.gov.it · potrà riprodurre e completamente il disegno. Per...
1
INDICE
1. Che cos’è il coding?
2. Coding senza Computer
1. L’insegnante robot
2. Il programmatore e il grafico
3. Conosciamo Scratch Junior
1. Creiamo un nuovo progetto
4. Tutte le istruzioni
1. Le istruzioni di Start
2. Le istruzioni di Movimento
3. Le istruzioni di Aspetto
4. Le istruzioni di Suono
5. Le istruzioni di Controllo
6. Le istruzioni di And
5. Aggiungere un nuovo Personaggio
6. Aggiungere scena e sfondi
7. Mani in pasta! Scratch si presenta!
8. Alcuni trucchi del mestiere
9. Conclusioni
1. CHE COS'È IL CODING?
Prima di iniziare a scendere nello specifico di quello che sarà il nostro breve
viaggio all'interno del mondo del coding, credo sia importante parlare prima insieme
2
di alcuni concetti chiave di questa disciplina, perché il coding sta entrando a gamba
tesa in molte realtà scolastiche italiane.
Inutile negare l'evidenza, il computer (o in generale qualsiasi strumento
tecnologico moderno), buono o malvagio che sia, è ormai parte integrante non solo
delle nostre vite ma anche di quelle dei nostri bambini e studenti.
Sono sicuro che per molti di voi questo è sicuramente un fatto negativo e posso
benissimo capire le ragioni, ma io preferisco vedere in questa cosa una grande
opportunità.
Sono ormai molte le discussioni riguardanti il rapporto tra i bambini e la
tecnologia: c'è chi pensa che siano uno strumento distruttivo che porta
all'isolamento della persona, e che facilitando molte operazioni che erano abituali
nella vita di tutti i giorni, portino ad un deficit nelle capacità umane.
Altre persone invece vedono le nuove tecnologie come uno strumento per
accrescere la propria intelligenza e come strumento creativo per esprimere la nostra
fantasia. Vivendo a stretto contatto con molti ragazzi e bambini, mi accorgo che
riguardo al suddetto tema c'è molta ignoranza. Probabilmente la verità sta nel
mezzo: un qualsiasi strumento di
grandi potenzialità, posto nelle
mani dell’uomo, può avere una
valenza costruttiva e distruttiva
contemporaneamente.
Si pensi anche all'oggetto
più banale: un coltello può essere
usato per tagliare una bistecca o per uccidere un uomo.
La nostra sfida sta proprio nello scoprire dove stanno i benefici di uno
strumento e sfruttarlo per quello che di positivo può portare nelle nostre vite.
Oggi con le nuove tecnologie stiamo vivendo lo stesso principio,
l'avvicinamento di bambini e ragazzi a questi strumenti è inevitabile e non può e non
deve essere ostacolato. Piuttosto deve essere guidato verso un uso consapevole.
3
Quello di cui mi accorgo maggiormente però è che spesso anche i genitori o
educatori non sono pronti in prima persona ad affrontare questo tema, e non
essendo preparati loro non riescono a trasmettere un uso intelligente. Il problema è
che se non si conosce lo strumento che si ha in mano si rischia, e su questo la
tecnologia è un esempio molto forte, di farne un uso passivo, di essere usati
piuttosto che usare. Per questo credo sia importante in primo luogo insegnare a
come usare questi strumenti per fare in modo che essi facciano ciò che noi vogliamo.
Ed ecco che qui entra in gioco il coding!
Ma che cosa significa questa parola così
all'avanguardia e che può sembrarci forse
troppo lontana da noi? Nulla di più semplice,
fare coding significa sviluppare il pensiero
computazionale. Una tecnica (come l'analisi
logica, o la matematica) che aiuta a sviluppare
competenze logiche e capacità di risolvere
problemi in modo creativo ed efficiente,
qualità che sono importanti per tutti i futuri cittadini. Il modo più semplice e
divertente di sviluppare il pensiero computazionale è attraverso la programmazione
(coding) in un contesto di gioco.
Come vedremo meglio poi, fare un programma significa stendere una sequenza
di istruzioni che, eseguite da un calcolatore, danno vita alla maggior parte delle
meraviglie digitali che usiamo quotidianamente.
4
Il pensiero
computazionale quindi è
un processo mentale per
la risoluzione di problemi
costituito dalla
combinazione di metodi
caratteristici e di
strumenti intellettuali,
che hanno tutti valore
generale.
5
2. Coding senza Computer
Vorrei ora proporvi alcune attività per iniziare a fare coding insieme ai ragazzi,
prima ancora di accendere computer o tablet.
Al primo incontro con i bambini mi piace iniziare la lezione ponendo la seguente
domanda: “Quanti di voi hanno mai fatto un programma prima d'ora?”. Ovviamente
nessuno alzava la mano, ma se riformuleremo la domanda con: “Quanti di voi hanno
mai dato indicazioni stradali ad una persona che si era persa?”, ecco che le mani
alzate saranno decisamente aumentate.
Creare un
programma non è
niente di più che dare
delle istruzioni chiare e
comprensibili
all'interlocutore
che ci sta di fronte e che
verranno poi eseguite.
Certo, dare delle
indicazioni
stradali ad una persona
è un programma estremamente semplice: non ci sono né variabili né condizioni né
cicli.
C'è poi una seconda leggera ma sostanziale differenza tra il 'programmare' una
persona e il programmare un computer: l'uomo è estremamente intelligente (è
dotato di raziocinio e capacità di critica), mentre un computer è estremamente
“stupido” (ma incredibilmente veloce). Ad una persona innanzitutto possiamo
parlare italiano ed è in grado di rielaborare, capire e adattare il comando
impartitogli; un computer, oltre a non poter fare queste cose, comprende e sa
6
eseguire solamente istruzioni di estrema semplicità e se comunicategli nel suo
linguaggio, il linguaggio di programmazione.
7
2.1 L’insegnante Robot
Il gioco è molto semplice:
L'insegnante che terrà la lezione dovrà immedesimarsi in un robot a cui
nessuno però ha mai scritto un programma (quindi sostanzialmente è un ammasso
di ferraglia).
Il compito dei ragazzi sarà quello di dare delle istruzioni al robot per fargli
compiere un tragitto predefinito evitando un paio di ostacoli per arrivare al punto
finale.
La difficoltà dell'insegnante sarà proprio quella di riuscire a cercare di imitare il
funzionamento di un computer, quindi di non eseguire istruzioni aggiuntive oltre a
quelle fornite dallo studente.
Per farvi capire meglio, provo a riportarvi alcuni esempi che molto probabilmente
accadranno anche nella vostra classe:
8
E se alcune classi non hanno mai parlato di gradi?
Molto meglio, ecco un ottimo pretesto per parlare di matematica, ma questa volta
con un fine forse diverso: far funzionare in modo corretto il nostro robot, e in futuro
9
tutti i nostri videogiochi; perché sì, la matematica è ingrediente necessario quando,
facendo attività di coding, si andranno a progettare e programmare i nostri
videogiochi!
Via via apportando modifiche sui nostri errori, creeremo una sequenza di
istruzioni che riusciranno a portare il nostro robot dal punto iniziale a quello finale.
La seconda sfida è poi quella di cambiare continuamente il punto di partenza
del robot, e cercare di scrivere una sequenza di istruzioni che se eseguite riescano
sempre a portare il robot a destinazione.
Se prima erano sufficienti 5 passi per giungere in prossimità dell'ostacolo, ora
magari saranno eccessivi o insufficienti. La soluzione a questo problema incorpora la
clausola “cammina fino a quando”.
Un esempio potrebbe quindi essere: “Cammina fino a quando non incontri la
sedia, ruota a destra di 90° , cammina fino a quando non trovi la cattedra, ruota di
90° verso sinistra, fai 2 passi ecc..ecc..”.
10
Questo gioco permette di introdurre il bambino al pensiero computazionale, di
fargli capire l'importanza dei dettagli e della consequenzialità delle istruzioni, in un
ambiente che non sia subito quello dell'apparecchio elettronico.
11
2.2 Il programmatore e il grafico
In questa seconda attività, vogliamo far vedere ai bambini come funziona la
programmazione con penna e carta a quadretti.
Il gioco viene svolto a gruppi di 2, uno sarà il programmatore, e il secondo
l'esecutore.
Al programmatore viene dato un disegno su carta a quadretti come il seguente:
Suo compito sarà quello di
scrivere un
programma utilizzando
solamente delle istruzioni
definite, per
descrivere come riprodurre questo
disegno all’esecutore.
Le istruzioni utilizzabili sono:
Muoviti a destraCambia colore matita
Muoviti a sinistraDisegna nella posizione
Muoviti in basso
Muoviti in alto
12
Una volta che il programma è stato scritto lo passeremo all’esecutore che,
armato di foglio con la griglia bianca e leggendo le istruzioni che i simboli descrivono,
potrà riprodurre e completamente il disegno.
Per questo esempio una delle tante soluzioni corrette potrebbe essere:
Se volete provare ad incrementare la difficoltà del gioco, aumentiamo il
numero di caselle che compongono il disegno e il numero di colori utilizzati,
potranno essere scambiati utilizzando il comando ‘cambia colore matita’
Ipotizziamo che inizialmente si
possiede in mano la matita di Una
.
13
soluzione per disegnare questa figura potrebbe essere:
Le istruzioni si presentano in modo ciclico e ripetitivo, ad esempio le
istruzioni nella prima riga vengono ripetute per 5 volte
consecutivamente.
Questo codice si potrebbe semplificare aggiungendo un’istruzione di controllo
che permette di ripetere un numero finito di volte determinate
istruzioni. 5
3 Conosciamo Scratch Junior È finalmente arrivato il momento di parlare di ScratchJR!
14
Scratch Junior è la versione per bambini del più
famoso Scratch, programma che funziona su
computer o in rete al sito: www.scratch.mit.edu.
Scratch Junior, invece, gira esclusivamente su tablet o
ipad ed è un ambiente di programmazione grazie al quale è
possibile avvicinarsi al coding senza dover necessariamente parlare di
programmazione classica, escludendo di conseguenza argomenti come variabili,
condizioni e cicli.
Scratch Junior consente ai più piccoli di creare giochi e storie interattive in
modo intuitivo, mentre, a loro insaputa, imparano a risolvere problemi e a esprimersi
in maniera creativa. Consente dunque di imparare le basi della programmazione
attraverso di essa.
È possibile utilizzare il programma su iPad e tablet; naturalmente la natura
stessa dell'app non permette di avere a disposizione tutte le funzioni utilizzabili da
pc, tuttavia offre comunque una buona base per bambini e ragazzi che vogliano
avvicinarsi al programma in maniera soft.
15
3.1 Creiamo un nuovo progetto
Apriamo l’applicazione di Scratch Jr e clicchiamo sul pulsante a forma
di casetta che troviamo nella schermata di avvio.
Successivamente ci troveremo nella schermata dove verranno raccolti tutti i
nostri progetti, per crearne uno nuovo toccare il simbolo +.
17
1. Home
2. Stage
3. Schermo intero
4. Aggiungi/Rimuovi griglia
5. Scegli sfondo
6. Aggiungi testo
7. Resetta animazione
8. Start & Stop programma
9. Pagine
10.Informazioni sul progetto
11.Annulla modifiche
12.Script del programma
13.Area di programmazione
14.Blocchi di istruzioni
15.Blocchi categorie
16.Personaggi
4. Tutte le istruzioni Andiamo ora a scoprire tutte le istruzioni che l’ambiente Scratch JR ci propone.
Come possiamo notare, le istruzioni sono suddivise in 6 categorie:
Nello specifico troviamo:
Start: Istruzioni per l’avvio di una sequenza.
Movimento: Istruzioni per controllare il movimento del personaggio.
Aspetto: Istruzioni per controllare l’aspetto grafico del personaggio
Suono: Istruzioni per riprodurre dei suoni.
Controllo: Istruzioni per controllare il flusso di una sequenza.
18
End: Istruzioni per terminare una sequenza.
4.1 Le istruzioni di Start
Nel mondo della programmazione, anche a livelli professionali, quando si inizia
a scrivere un flusso di istruzioni, è sempre necessario comunicare al programma il
‘quando’ quel blocco di comandi deve iniziare l’esecuzione.
Questo set di istruzioni ci permette appunto di decidere l’inizio di una
determinata sequenza, e come possiamo intuire anche dalla forma arrotondata sulla
sinistra del tassello, non può che essere il primo della serie.
Vediamone il significato singolarmente:
Questa istruzione fa iniziare la sequenza di istruzioni ad essa concatenata quando si preme il tasto ‘start’. Vedi pg 17.
Questa istruzione fa iniziare la sequenza quando tocco il personaggio.
Questa istruzione fa iniziare la sequenza quando due personaggi nella scena vengono a contatto.
Questa istruzione fa iniziare la sequenza quando riceve una busta di colore arancione. Toccando la freccetta in basso è possibile cambiare il colore della busta.
Questa istruzione spedisce a tutti i personaggi di una scena la busta del colore selezionato. (In questo caso arancione).
19
4.2 Le istruzioni di Movimento
Arriviamo a parlare delle istruzioni forse più intuitive da parte di un bambino:
quelle di movimento. Come avranno imparato dal gioco in cui dovevano pilotare il
robot umano, non è sufficiente comunicare al personaggio il tipo di istruzione da
compiere (come vai avanti, girati a destra…), ma è anche necessario comunicare una
quantità.
Infatti, come potete notare in quasi tutte i blocchi, è presente un numerino,
che è possibile andare a modificare toccandoci sopra.
In Scratch JR le grandezze che noi andremo a inserire non rappresentano
un’unità di misura precisa (come centimetri, pixel o gradi), ma rappresentano una
grandezza adimensionale.
Questa istruzione permette di far muovere il personaggio a destra del valore inserito nel riquadro bianco.
Questa istruzione permette di far muovere il personaggio a sinistra del valore inserito nel riquadro bianco.
Questa istruzione permette di far muover il personaggio in altro del valore inserito nel riquadro bianco.
Questa istruzione permette di far muover il personaggio in basso del valore inserito nel riquadro bianco.
20
Questa istruzione permette di far roteare il personaggio verso destra del valore inserito nel riquadro bianco.
Questa istruzione permette di far roteare il personaggio verso sinistra del valore inserito nel riquadro bianco.
Questa istruzione permette di far compiere al personaggio un salto sul posto ad un’altezza indicata dal valore nel riquadro bianco.
Questa istruzione permette di far ritornare il personaggio all’ultima posizione assegnata.
21
4.3 Le istruzioni di Aspetto
Il terzo set di istruzioni permette di andare a modificare come il personaggio si
presenta sulla scena, il suo aspetto appunto; ad esclusione però del disegno in sé del
personaggio, per modificare quello (ad esempio aggiungere un cappello al gatto) lo
vedremo tra qualche pagina.
Questa istruzione permette di far comparire un fumetto sopra il personaggio per un tempo limitato. È possibile modificare il testo del fumetto premendo il riquadro bianco.
Ingrandisce il personaggio della dimensione inserita, in questo caso 2.
Rimpicciolisce il personaggio della dimensione inserita, in questo caso 2.
Riporta la dimensione del personaggio alla grandezza originale.
Questa istruzione rende invisibile il personaggio.
Se invisibile, questa istruzione, riporta il personaggio visibile.
22
4.4 Le istruzioni di Suono
Scratch JR permette anche la riproduzione di alcuni suoni semplici, o di
registrare audio esterni da poi riprodurre all’interno della storia o videogioco.
Questa istruzione, se eseguita, riproduce un piccolo suono simile ad uno scoppio.
Questa istruzione non è direttamente trascinabile nell’area di programmazione, ma se premuto, permette di registrare suoni o frasi. Al termine della registrazione viene generato una nuovo tassello simile al primo.
4.5 Le istruzioni di Controllo
Altra grande categoria nel mondo della programmazione sono le istruzioni di
controllo, ovvero tutte quelle istruzioni che permetto di modificare il normale flusso
di esecuzione di una catena di istruzioni.
Scratch JR preferisce non presentare tutte le strutture di controllo utilizzate
normalmente nell’ambito della programmazione, per non rendere eccessivamente
23
complesso la comprensione di questo programma. Vengono di conseguenza escluse
istruzioni di selezione, condizioni, cicli while e variabili.
Vediamo però le istruzioni che abbiamo a disposizione.
Questa istruzione blocca mette in attesa lo scorrere dell’esecuzione delle istruzioni della singola catena in cui è inserito per l’unità di tempo inserito nel riquadro bianco. Il valore inserito non è espresso in secondi.
Questa istruzione ferma definitivamente l’esecuzione di una catena di istruzioni.
Questa istruzione permette di cambiare la velocità di esecuzione delle istruzioni, potendo scegliere su tre differenti valori: lento, normale, veloce.
Questa istruzione è un ciclo, e permettere di ripetere tutte le istruzioni contenute al suo interno tante volte quanto il numero inserito nel riquadro bianco.
4.6 Le istruzioni di End
Ultima sezione è quella delle istruzioni che chiudono una sequenza di comandi.
Anche il tipo di conclusione di una sezione di codice è importante, vediamo di seguito
quali istruzioni possiamo usare da mettere in coda.
24
Questa è istruzione conclude semplicemente la sequenza di codice.
Questa istruzione si chiama loop, e continua a ripetere la sequenza all’infinto.
Questa istruzione permette di cambiare scena quando viene eseguita, nella fattispecie questa istruzione fa passare alla schermata numero 2. Nelle prossime pagine scopriremo come creare e modificare una nuova scena.
5. Aggiungere un nuovo personaggio
Scratch JR possiede una grande vastità di personaggi che possiamo aggiungere
al nostro progetto premendo sul pulsante indicato.
Individuato il personaggio, possiamo o inserirlo nella storia, oppure scegliere di
apportare delle modifiche premendo sul pulsante a forma di pennello.
27
1. Annulla modifiche
2. Ripeti modifiche
3. Disegna figure
4. Nome del personaggio
5. Taglia
6. Duplica
7. Ruota
8. Trascina
9. Salva
10.Riempi
11.Scatta una foto
12.Paletta colori
13.Dimensione righe
È giusto ricordare che ogni personaggio possiede le proprie istruzioni e i
proprio comandi per poter prendere parte nella storia in maniera autonoma agli
altri personaggi.
28
6. Aggiungere scena e sfondi Come per i personaggi è possibile aggiungere differenti scene, con una leggera
ma sostanziale differenza: mentre è possibile inserire un numero arbitrario di
personaggi, per le scene è possibile inserirne al massimo 4.
Ogni scena è indipendente l’una dalle altre: ciò che i personaggi fanno in una
scena, non si ripercuote nelle scene successive. Ho la sola possibilità di cambiare
scena in automatico, utilizzando l’apposita istruzione di End che abbiamo visto in
precedenza
Per aggiungere una nuova scena basta premere il pulsante come nell’immagine
sottostante:
29
Per ogni scena creata possiamo aggiungerci un’immagine di sfondo, accedendo
al grande catalogo che Scratch JR ci offre, premendo sul pulsante in alto che raffigura
un paesaggio. Diamo un’occhiata ad alcune immagini che possiamo utilizzare.
Notate che come per i personaggi, anche per gli sfondi è possibile, premendo il
tasto pennello, andare a modificare un’immagine di sfondo, portando tutte quelle
modifiche creative che un bambino può immaginare.
Vediamo un’ immagine in cui abbiamo inserito qualche sfondo e qualche
personaggio:
31
7. Mani in pasta! Scratch si presenta!
Siamo arrivati quasi alla fine di questa dispensa introduttiva, abbiamo fatto una
corposa introduzione su quello che è il mondo del coding e sulle potenzialità di
Scratch JR, cosa manca? Vedere un piccolo programma funzionante!
Ho preparato una storiella in cui i protagonisti interagiscono fra di loro,
vediamo di scoprire insieme le varie istruzioni assegnate a tutti i personaggi.
Il gattino è il primo a partire, infatti il blocco di istruzioni ha inizio con la
bandierina verde. Quindi:
Quando inizia il gioco, fai 5 passi verso destra, comunica 2 frasi di saluto tramite
fumetto, aspetta un tempo di 5 (vi ricordo che non sono secondi), dice altre 2 frasi
tramite fumetto, ed infine spedisce una busta arancione.
Quando si spedisce una busta di un determinato colore, questa può essere
ricevuta da tutti i personaggi presenti in quella scena (non da personaggi di altre
schermate). In questa storia è Chitcken che sta aspettando questo segnale, vediamo:
32
Infatti quando questo personaggio riceve la busta diventa visibile (dopo
vediamo perché era invisibile), scende verso il basso di 4 passi, comunica 2 frasi
attraverso i fumetti, ed infine fa passare la storia alla schermata numero 2.
Vediamo però che Chicken esegue alcune istruzioni quando inizia la storia.
Questo perché ho voluto che inizialmente fosse invisibile e che comparisse nella
storia solamente al segnale inviato dal gatto tramite la lettera arancione.
Ho anche accelerato la velocità di esecuzione del codice per rendere più veloce
(praticamente immediato) la sua transizione da visibile a invisibile all’inizio della
storia. Dopo questa istruzione ho ripristinato la velocità di esecuzione a normale.
Nel prossimo capitolo vi mostrerò il significato di quell’istruzione
apparentemente inutile di fai 0 passi verso sinistra.
33
Ho voluto animare il gattino nella seconda schermata, facendogli compiere dei
salti che verranno ripetuti fino alla fine della storia grazie all’istruzione di chiusura
loop.
Vediamo che eseguirà anche l’istruzione fumetto quando un personaggio gli
manderà il segnale spendendo una busta rossa.
Dato che questa sarà l’ultima istruzione che compie, ho preferito inserire
un’istruzione di stop per far terminare l’intera esecuzione del programma.
34
Il personaggio Chitcken quando inizia la scena chiama con un fumetto il
personaggio Pig, facendo partire il suo blocco di istruzioni inviando una busta
arancione.
35
Anche Pig, come per Chitcken nella schermata precedente, inizialmente non è
presente nella scena, infatti quando inizia la scena, velocemente, scompare, fa 0
passi verso sinistra, e riporta la sua velocità di esecuzione a normale.
Mentre, quando riceve il segnale tramite la busta arancio inviata da Chitcken,
torna visibile, fa 4 passi verso sinistra, saluta con l’istruzione fumetto, si arresta per
un tempo di 4, e infine invia a tutti i personaggi di quella schermata una busta di
colore rosso.
Sia Cat che Chitcken, quando ricevono una busta rossa, eseguono la medesima
istruzione fumetto.
Questo è stato un primo semplice programma, per provare a mettere insieme
qualche pezzo e concretizzare tutti questi concetti detti fino a ora.
È una storiella molto semplice, composta da sole 2 schermate, un gioco per i
bambini potrebbe essere proprio quello di inventare il finale.
Nonostante la sua semplicità abbiamo però capito come sia importante anche
comprendere la scansione temporale degli eventi nella storia che abbiamo ideato e,
36
tramite l’invio e la ricezione delle buste colorate fra i vari personaggi, riuscire a
scandire il tutto in modo ordinato nel tempo.
Questo è un ottimo esercizio per i bambini, nel provare a sistemare le loro idee
e trovare soluzioni in merito, hanno la possibilità di esercitare il famoso pensiero
computazionale.
37
8. Alcuni trucchi del mestiere
Prima di concludere questa dispensa introduttiva e rimandarci poi agli incontri
in aula, vorrei illustrarvi alcune tecniche forse non molto intuitive, ma che
permettono di creare ottimi effetti grafici, ma soprattutto apprendere l’effetto delle
combinazioni delle istruzioni, se eseguite contemporaneamente.
Questo comando lo abbiamo usato anche nella storia precedente. Anche se
apparentemente fare 0 passi verso una direzione, permette di far ruotare il
personaggio, che altrimenti guarderebbe a destra.
38
Questa istruzione esegue simultaneamente due sezioni di codice, una che fa
ruotare il drago, e la seconda che lo rimpicciolisce. L’effetto è che il drago
rimpicciolisce roteando.
Ora vorremmo far compiere al coniglio 4 balzi in avanti. Combiniamo quindi
simultaneamente le istruzioni di movimento salto e vai avanti.
39
Ora vorremmo azionare i comandi della palla solamente quando il pinguino si
scontra con essa. Facciamo quindi roteare questo personaggio e scivolare in avanti
di 3 fino a quando non tocca la palla con la testa.
Vediamo che la palla compie simultaneamente 2 operazioni quando viene
toccata da un altro personaggio. Oltre che girare su se stessa, si muove in avanti,
dando come effetto finale un rotolamento.
40
9. Conclusioni
Spero che questa dispensa vi sia stata utile per capire le logiche base della
programmazione e vi abbia dato alcuni spunti di attività per poter iniziare a parlare
di di coding in aula.
Non ci resta che lasciare questi strumenti in mano alla creatività dei bambini e
vedere quali storie fantastiche riusciranno ad inventare e dare vita!
Ci vediamo in aula!
Buon lavoro!!