Alberto Pian
Math Genius
CODING A SCUOLA
O
T
T
A
R
EST
internet: deascuola.it
e-mail:
[email protected]
Redattore responsabile: Alessio Delfrati
Tecnico responsabile: Alessandro Cafagna
Redazione: Matteo Dell’Orto, Mandeka Papini
Redazione digitale: Vincenzo Belluomo
Progetto grafico: Maura Santini, Ediset s.r.l.
Impaginazione: Annalisa Possenti
Copertina: Maura Santini, Simona Speranza
Disegni: Claudia Benassi, Gabriella Bianco
Art Director: Nadia Maestri
Proprietà letteraria riservata
© 2015 De Agostini Scuola SpA – Novara
1ª edizione: Febbraio 2015
Printed in Italy
Le fotografie di questo volume sono state fornite da: Shutterstock
Immagini di copertina: Shutterstock
Ricerca iconografica per la copertina: Cristina Colombo
L’Editore dichiara la propria disponibilità a regolarizzare eventuali omissioni o errori di attribuzione.
Nel rispetto del DL 74/92 sulla trasparenza nella pubblicità, le immagini escludono ogni e qualsiasi possibile intenzione o effetto promozionale verso i lettori.
Tutti i diritti riservati. Nessuna parte del materiale protetto da questo copyright potrà essere riprodotta in alcuna forma senza l’autorizzazione
scritta dell’Editore.
Il software è protetto dalle leggi italiane e internazionali. In base ad esse è quindi vietato decompilare, disassemblare, ricostruire il progetto
originario, copiare, manipolare in qualsiasi modo i contenuti di questo software. Analogamente le leggi italiane e internazionali sul diritto
d’autore proteggono il contenuto di questo software sia esso testo, suoni e immagini (fisse o in movimento). Ne è quindi espressamente
vietata la diffusione, anche parziale, con qualsiasi mezzo. Ogni utilizzo dei contenuti di questo software diverso da quello per uso personale
deve essere espressamente autorizzato per iscritto dall’Editore, che non potrà in nessun caso essere ritenuto responsabile per eventuali
malfunzionamenti e/o danni di qualunque natura.
Eventuali segnalazioni di errori, refusi, richieste di chiarimento/funzionamento dei supporti multimediali o spiegazioni sulle scelte operate
dagli autori e dalla Casa Editrice possono essere inviate all’indirizzo di posta elettronica [email protected]
INDICE
1. PROGRAMMARE NON È QUELLO CHE PENSATE ...................................................................................................... 5
PROGRAMMARE È COME ESSERE PROPRIETARI DI UN LIDO A RIMINI ......................................5
Partiamo dal mondo reale (real world)..................................................................................................5
Complessità e interazione .....................................................................................................................6
Il punto di vista del governo. La buona scuola ...............................................................................................7
Intercettare i messaggi per provocare un’azione ..................................................................................7
Dal coding al gioco ................................................................................................................................8
QUANTE CONOSCENZE, ABILITÀ E COMPETENZE SI METTONO IN MOTO! .................................8
VERSO COMPETENZE MULTIDISCIPLINARI E TRASVERSALI..........................................................9
Conoscenze e abilità ..............................................................................................................................9
Competenze multidisciplinari logiche ...................................................................................................9
Competenze multidisciplinari linguistiche ............................................................................................9
Competenze multidisciplinari creative ................................................................................................10
Competenze sociali ..............................................................................................................................10
Competenze diffuse .............................................................................................................................10
Indicazioni utili per iniziare .......................................................................................................................10
Il parere dello psicologo Jacopo Lorenzetti..................................................................................................11
“E SE…”: UN GIOCO CHE NON FINISCE MAI................................................................................12
Il ruolo del docente ..............................................................................................................................13
COME E PERCHÉ PARTIRE DA UNA DIDATTICA INDUTTIVA FONDATA SUI PROBLEMI
E SULLE SFIDE ....................................................................................................................................13
Il Challenge Based Learning ................................................................................................................13
La “prova del joystick”, ovvero: l’importanza della sfida...............................................................................14
La tradizione dell’indagine ..................................................................................................................14
Workflow. Il coding in una metodologia induttiva .............................................................................15
IL CODING IN AMBITO MULTIDISCIPLINARE E INTERDISCIPLINARE .........................................16
Un esempio di workflow multidisciplinare più complesso. Diventiamo reporter multicanali ..............................16
NON C’È CODING SENZA INTERFACCIA, SPECIALMENTE IN CAMPO EDUCATIVO ..................18
Programmare non vuol dire solo stilare una lista di istruzioni............................................................18
Come può un insegnante aiutare i suoi studenti a costruire efficaci interfacce? ...............................................19
3
2. IL CODING E IL GIOCO, UN BINOMIO VINCENTE ............................................................................................ 20
PROGRAMMAZIONE E GIOCO AI DUE POLI ...................................................................................20
Programmare giocando .......................................................................................................................20
Apprendimento e multicanalità ...........................................................................................................20
Carlo Cioppa, lo studente che ha imparato a sviluppare con YouTube .............................................................21
Il ruolo del docente: come sollecitare lo studente al coding ...............................................................22
PARTIAMO DA UN DIAGRAMMA DI FLUSSO .................................................................................22
Applicazioni suggerite per creare diagrammi di flusso .......................................................................22
PROGRAMMARE INTERAZIONI E GIOCHI CON APPLICAZIONI CONOSCIUTE ..........................23
Creiamo un puzzle investigation con Keynote o PPT ..........................................................................23
Workflow di base per la creazione di una struttura a tre ancoraggi ...................................................25
Un altro esempio con iPad: Make It .....................................................................................................25
3. DIVERSI LIVELLI E STRUMENTI DI PROGRAMMAZIONE.................................................................................... 27
PROGRAMMARE GIOCANDO: SCRATCH ........................................................................................27
I blocchi programmabili .......................................................................................................................27
L’ambiente di Scratch ...........................................................................................................................27
L’esempio del lido e altri script ............................................................................................................28
PROGRAMMARE A OGGETTI IN MODO GRAFICO CON SCRIPT: LIVECODE ..............................31
Sviluppare contemporaneamente per tutti i dispositivi ......................................................................31
Associare gli script agli oggetti ...........................................................................................................32
Catturare i messaggi, provocare degli eventi ......................................................................................34
L’esempio del lido ................................................................................................................................35
PROGRAMMARE A OGGETTI IN MODO GRAFICO SENZA SCRIPT: HYPERSTUDIO...................36
Web app, HTML 5 e widget .................................................................................................................36
Una struttura a stack e card ................................................................................................................36
Web app e Hyperstudio ............................................................................................................................38
I linguaggi del futuro: Swift.......................................................................................................................38
4. NON TRASCURIAMO LA ROBOTICA ................................................................................................................. 40
PARLANO GLI INSEGNANTI: UNA TRADIZIONE CHE VIENE DA LONTANO ................................40
I kit Lego ..............................................................................................................................................40
La robotica educativa secondo Donatella Merlo della Casa degli insegnanti ....................................41
SPHERO: MATEMATICA E STORYTELLING ......................................................................................42
Obiettivi .................................................................................................................................................42
Tracciare un triangolo senza un piano cartesiano ...............................................................................43
Scheda di controllo (triangolo) ..................................................................................................................45
Sfidare gli studenti ...............................................................................................................................45
Coding e storytelling con Sphero.........................................................................................................45
GLOSSARIO DI BASE DEL CODING ..................................................................................................47
4
Coding a scuola
1. Programmare non è quello che pensate
PROGRAMMARE È COME ESSERE PROPRIETARI DI UN LIDO A RIMINI
Partiamo dal mondo reale (real world)
Siamo i proprietari di un lido (uno stabilimento balneare) a Rimini. Vogliamo offrire un servizio impeccabile ai nostri clienti, che sono comodamente sdraiati sui loro lettini o seduti sulle loro sedie a sdraio.
C’è chi vuole da bere, chi cerca un materassino per andare a fare il bagno, chi desidera un pallone,
chi chiede lezioni di nuoto, chi desidererebbe un servizio di baby sitting, chi vorrebbe una crema solare con un fattore di protezione più elevato, chi si vuole semplicemente alzare per fare due passi sul
bagnasciuga.
Per soddisfare tutte le richieste dei nostri bagnanti ci siamo impegnati molto. Prima dell’estate abbiamo stipulato un accordo con il vicino istituto alberghiero e molti ragazzi di quattordici-quindici anni
hanno accettato di aiutarci per imparare il mestiere e per guadagnare qualcosa. Dato che non hanno
mai prestato servizio in un lido e sono in difficoltà, abbiamo predisposto delle istruzioni da eseguire
automaticamente.
© De Agostini Scuola
5
Coding a scuola
Il meccanismo è semplice: quando da un nostro cliente parte il messaggio perfavore, i ragazzi in servizio
più vicini lo intercettano.
inizio messaggio perfavore
guarda chi_chiama
ascolta che_cosa_vuole
se che_cosa_vuole contiene “acqua”
allora
vai al bar
prendi l’acqua
portala a chi_chiama
altrimenti
lascia passare il messaggio perfavore
fine se che_cosa_vuole contiene “acqua”
fine messaggio perfavore
Solo il ragazzo addetto all’acqua consegnerà la bottiglietta al cliente. Tutti gli altri lasceranno passare il
messaggio.
Complessità e interazione
Le cose possono essere anche un po’ più complesse di così. Per esempio, se il cliente chiede una ribollita,
che è una zuppa toscana, probabilmente non sarà nel menu del lido e può anche capitare che i gestori
non conoscano questo piatto e quindi, in entrambi i casi, il cliente non potrà essere accontentato.
Bisogna che i ragazzi abbiano a disposizione un elenco di prodotti che possono offrire in modo da controllare se è possibile soddisfare le richieste dei clienti.
Allora le istruzioni di prima potrebbero essere riscritte in questo modo:
inizio messaggio perfavore
guarda chi_chiama
ascolta che_cosa_vuole
consulta l’elenco
se che_cosa_vuole non è in elenco
allora
parla a chi_chiama: Mi scusi non abbiamo che_cosa_vuole
quindi
lascia passare il messaggio perfavore
fine se che_cosa_vuole non è in elenco
se che_cosa_vuole contiene “acqua”
allora
vai al bar
prendi l’acqua
portala a chi_chiama
altrimenti
lascia passare il messaggio perfavore
fine se che_cosa_vuole contiene “acqua”
fine messaggio perfavore
6
© De Agostini Scuola
Coding a scuola
Il ragazzo che serve l’acqua intercetta il messaggio del cliente, controlla se la richiesta compare nell’elenco. Se non compare, lo comunica al cliente. Se invece compare e si tratta di acqua, gli servirà la bottiglietta, altrimenti lascerà passare il messaggio. Lasciare passare il messaggio significa che il messaggio
passerà di ragazzo in ragazzo finché sarà raccolto da chi potrà soddisfare la richiesta. Così se il cliente
desidera fare un giro in gommone, il ragazzo addetto al deposito delle imbarcazioni del lido gliene potrà
noleggiare uno. Analogamente, il ragazzo addetto all’apertura degli ombrelloni raccoglierà la richiesta
dei clienti che desiderano un po’ d’ombra.
Per eseguire queste istruzioni abbiamo utilizzato una “struttura di controllo” del tipo se–allora–altrimenti
(if–then–else) tipica del coding. Con questa semplice struttura si possono fornire istruzioni anche molto
complesse.
Il punto di vista del governo. La buona scuola1
Serve un piano nazionale che consenta di introdurre il coding (la programmazione) nella scuola
italiana. A partire dalla primaria: vogliamo che nei prossimi tre anni in ogni classe gli alunni imparino a risolvere problemi complessi applicando la logica del paradigma informatico anche attraverso
modalità ludiche (gamification). A partire dall’autunno, dopo Stati Uniti e Inghilterra, lanceremo in
Italia l’iniziativa Code.org, aggregando associazioni, università e imprese, in una grande mobilitazione per portare l’esperienza nel maggior numero di scuole possibili.
Come sollecitiamo i ragazzi a essere “produttori digitali” nella scuola secondaria? Il punto di arrivo
sarà promuovere l’informatica per ogni indirizzo scolastico. Fin dal prossimo anno, vogliamo attivare un programma per “Digital Makers”, sostenuto dal Ministero e anche da accordi dedicati con la
società civile, le imprese, l’editoria digitale innovativa. Concretamente, ogni studente avrà l’opportunità di vivere un’esperienza di creatività e di acquisire consapevolezza digitale, anche attraverso
l’educazione all’uso positivo e critico dei social media e degli altri strumenti della rete. E imparando
a utilizzare i dati aperti per raccontare una storia o creare un’inchiesta, oppure imparando a gestire
al meglio le dimensioni della riservatezza e della sicurezza in rete, o ancora praticando tecniche di
stampa 3D. Questo servirà a rafforzare le ore di Tecnologia e di Cittadinanza e Costituzione nella
scuola secondaria di primo grado, quelle di Informatica nei licei scientifici e negli istituti tecnici e
professionali, promuovendo inoltre la contaminazione con ogni altra disciplina.
Intercettare i messaggi per provocare un’azione
Però che gusto c’è a gestire un servizio di ragazzi che servono ai tavoli e custodiscono gommoni e aprono
ombrelloni? Perché non rendiamo un po’ più divertente questo servizio?
Cominciamo affidando lo stesso compito a più ragazzi. Non sarà più solo uno a fornire acqua, ma due
o tre. A custodire i gommoni saranno in quattro, ad aprire gli ombrelloni in cinque. Inoltre ogni ragazzo
potrà eseguire più compiti: il ragazzo A potrà fornire acqua e custodire gommoni, B custodire gommoni
e aprire ombrelloni, C potrà fare tutto quanto. Immaginiamo anche di essere i proprietari di un lido molto
affollato e che diversi clienti avanzano richieste nello stesso momento: chi vuole l’acqua, chi chiede di
aprire l’ombrellone, chi desidera noleggiare un gommone. Anzi, c’è qualcuno che vuole l’acqua da portare in gommone e un altro che vuole aprire l’ombrellone e desidera anche l’acqua.
1 https://labuonascuola.gov.it/documenti/La%20Buona%20Scuola.pdf?v=d0f805a
© De Agostini Scuola
7
Coding a scuola
Che pasticcio! Chi intercetterà i messaggi dei clienti? I ragazzi più vicini? Quelli più veloci? Quelli che
hanno meno compiti da eseguire in quel momento?
Non solo: se un ragazzo intercetta tre messaggi riguardanti compiti che può eseguire, che cosa farà? A
quale messaggio risponderà per primo? Lascerà passare gli altri messaggi o dovrà rispondere lui?
Questa è una bella complicazione!
Dal coding al gioco
Potremmo creare un gioco: il gioco del lido. Il giocatore deve fare in modo, manovrando i suoi ragazzi, di
soddisfare il maggior numero di richieste che provengono da clienti sempre più agitati e impazienti, che
vogliono sempre di più e sempre più in fretta. Se un ragazzo per tre volte non soddisfa un cliente, viene
licenziato (eliminato). Chi vincerà? I ragazzi manovrati dal giocatore o i clienti?
Le istruzioni si complicheranno parecchio. Dovremo inserire parametri quali distanza e velocità dei ragazzi, assegnare loro dei livelli di potenza che aumentano o diminuiscono in base al numero di richieste che devono soddisfare. Dovremo prevedere delle azioni ripetitive (cicli di repeat), delle variabili che
possono contenere oggetti da verificare in base a determinate condizioni (per esempio la variabile fretta_del_cliente conterrà un numero da 1 a 5 che esprime la velocità con cui il cliente deve essere servito).
Programmare è infatti un lavoro complesso ma divertente. Bisogna procedere per gradi e pensare bene
a tutte le interazioni.
Tuttavia non è così che possiamo proporre un gioco per il pubblico dei videogame. Infatti, non bastano
delle istruzioni per creare un gioco. Anzi, direi che, agli occhi del cliente, le istruzioni che noi scriviamo
non sono affatto determinanti. Quello che conta sono la grafica, i disegni, gli oggetti 3D che ruotano
su se stessi, la musica, la fluidità e la definizione delle immagini. Se il gioco sarà destinato a tablet e
smartphone allora conterà anche come reagirà al “tocco” delle dita, se sarà più o meno sensibile e rapido.
Per il cliente l’aspetto del gioco e la sua funzionalità sono più importanti delle istruzioni che lo compongono. Il gameplay (la giocabilità del videogame) è più importante. Non si può giocare male, anche se le
istruzioni sono perfette!
Bisogna quindi pensare alla grafica, al modo in cui ragazzi e clienti sono rappresentati, a come deve
essere raffigurato l’ambiente di gioco del lido, alle sdraio, agli ombrelloni. Ci occorrono dei designer di
interfaccia, gente tosta che sappia disegnare, studiare i colori, creare le forme.
E se poi, dopo tanta fatica, riusciamo finalmente a creare il nostro gioco, che cosa resta ancora da fare?
Be’, lo dovremo promuovere, bisognerà studiare una campagna pubblicitaria, stampare un opuscolo,
scrivere degli articoli, preparare una guida al gioco, diffondere la notizia sui social network, creare un sito
di riferimento. Avremo bisogno anche di un consulente di marketing e di qualcuno che tenga i conti degli
incassi, delle tasse da pagare, delle spese e dei guadagni.
Vogliamo ragionare insieme su questo processo che abbiamo appena descritto?
QUANTE CONOSCENZE, ABILITÀ E COMPETENZE
SI METTONO IN MOTO!
Avete idea di quante competenze si possono sviluppare intorno a un’attività di programmazione di un
videogioco? Proviamo a elencarle. In questo elenco teniamo conto del fatto che le conoscenze e le abilità puramente disciplinari sono elementi specifici e puntuali, relativi all’informatica. Ora, la questione di
fondo è che tutta la logica delle strutture di programmazione è applicabile in qualsiasi contesto e per
qualsiasi disciplina. Se consideriamo una didattica attiva e multicanale, fondata sulla ricerca di risposte,
8
© De Agostini Scuola
Coding a scuola
su indagini e problem solving, le abilità e le conoscenze in ambito di coding diventano facilmente delle
competenze multidisciplinari, se lo studente è in grado di utilizzarle in altri ambiti che non siano quello
strettamente informatico.
Per questo ci pare importante che le potenzialità cognitive del coding siano effettivamente sfruttate fino
in fondo grazie alla collaborazione delle altre discipline, rispetto alle quali il coding può rappresentare il
filo rosso, il tessuto che le tiene legate.
VERSO COMPETENZE MULTIDISCIPLINARI E TRASVERSALI
Conoscenze e abilità
t
t
t
t
t
t
t
t
t
t
t
t
t
t
t
t
t
t
t
t
t
capacità di creare valori e proprietà
capacità di assegnare valori e proprietà a “oggetti”
capacità di creare messaggi
capacità di costruire condizioni
capacità di creare opposizioni
capacità di creare collegamenti
capacità di creare interazioni temporali
capacità di creare interazioni con dati quantitativi (velocità, distanza ecc.)
capacità di effettuare calcoli, dai più semplici ai più complessi (dipende dal grado di programmazione
che si vuole raggiungere)
saper scrivere un piano di passaggi da realizzare secondo un ordine
saper individuare una nomenclatura appropriata di oggetti
saper scrivere le istruzioni in forma sequenziale
saper scrivere una guida
saper tradurre le istruzioni in lingua 2
saper rappresentare con degli schizzi semplici oggetti e sfondi
saper scegliere i colori in modo funzionale al gioco e alla funzione degli oggetti
saper ricercare immagini e disegni nei diversi canali
saper raccogliere informazioni su tutti gli aspetti dei videogame
saper raccogliere informazioni sull’utilizzo dei videogame da parte del pubblico
saper confrontare le strutture e le funzioni dei videogame
saper individuare i target di riferimento per il proprio gioco
Competenze multidisciplinari logiche
t
t
t
t
t
t
legare le condizioni fra loro
creare e gestire strutture di controllo fondate su scelte
creare e gestire variabili
creare e gestire ripetizioni, cicli e loop
gestire funzioni (dipende dal grado che si vuole raggiungere con la programmazione)
creare e rappresentare diagrammi di flusso
Competenze multidisciplinari linguistiche
t esporre le proprie idee a voce
t rappresentare le proprie idee in forma di appunti e bozzetti
© De Agostini Scuola
9
Coding a scuola
t
t
t
t
t
organizzare in forma logica e sequenziale le proprie idee
raccontare un procedimento logico
raccontare il gioco e le sue parti
spiegare il gioco
comunicare con il team di compagni che collabora alla creazione e con il docente
Competenze multidisciplinari creative
t
t
t
t
t
t
trarre ispirazione da altri giochi e interfacce di videogame e di applicazioni
creare situazioni di gioco originali
offrire al giocare un’esperienza coinvolgente
scegliere le colonne sonore appropriate
selezionare proposte grafiche coerenti
costruire una visione coerente e armonica del prodotto
Competenze sociali
t
t
t
t
organizzare e richiedere dei test e coordinare i beta testing
comprendere e analizzare le aspettative del pubblico
sapersi confrontare con le critiche
gestire la comunicazione nei forum e nei social network
Competenze diffuse
Oltre a quelle che abbiamo elencato, esiste una serie molto estesa di conoscenze, abilità e competenze
associate alla programmazione di un videogioco. Queste sono attinenti a tutti i campi del sapere: se il
videogioco è ambientato nel passato saranno messe in moto conoscenze e competenze storiche e geo
grafiche, se è regolato da leggi fisiche (la forza di attrazione di corpi celesti, per esempio), richiederà conoscenze e competenze in quel campo, e così via. Poi ci sono anche altre conoscenze e competenze disciplinari
che hanno un carattere potenzialmente trasversale. Per esempio la matematica è un pilastro della programmazione, quali che siano il tema del videogioco o il suo ambito disciplinare. Anche l’italiano e la lingua straniera (non solo per una pubblicazione in lingua inglese, ma anche per acquisire informazioni utili nel mondo
dei videogame) mettono in gioco altrettante competenze e conoscenze disciplinari di carattere trasversale.
Quindi abbiamo innumerevoli motivi per trasformare il coding in un’attività didattica in grado di unire
fra loro argomenti, saperi e competenze che provengono da differenti ambiti disciplinari. Per questo la
costruzione di un videogioco può essere concepita proprio come la tela che unisce ciò che a scuola normalmente è separato, diviso in compartimenti stagni, come le diverse discipline di insegnamento.
Indicazioni utili per iniziare
Le attività di coding a scuola sono molto diffuse da parecchi anni in tutto il mondo. Fino dagli
anni Settanta molti docenti si sono posti il problema di impiegare il coding nella didattica. Esiste
quindi una grande mole di risorse, applicazioni, siti Web, articoli, libri in tutte le lingue che sarebbe
un’impresa titanica documentare. Volendo suggerire qualche riferimento, diamo al lettore alcune
indicazioni come semplici punti di partenza per sviluppare autonome ricerche in questo campo.
Il sito di riferimento delle indicazioni governative è http://code.org. Nella settimana internazionale
del coding ci sono invece numerosi eventi legati a questo tema segnalati dal sito http://codeweek.eu
10
© De Agostini Scuola
Coding a scuola
(per una ricerca dettagliata basta andare su http://events.codeweek.eu/search/). Un’occhiata al
documento del Ministero A scuola di coding è necessaria per capire le motivazioni dell’introduzione del coding nei programmi di studio e anche per avviare “l’ora del codice” nelle classi:
http://hubmiur.pubblica.istruzione.it/web/ministero/cs230914. Fra queste iniziative figura un corso
per la programmazione con Scratch, un linguaggio che permette di programmare in maniera
intuitiva tramite l’utilizzo di oggetti: http://studio.code.org. L’insegnante che si iscrive ha a disposizione un ambiente interattivo per gestire la propria classe, mentre gli studenti seguono le lezioni
e fanno gli esercizi proposti. Per approfondire diversi linguaggi e tecniche, relativi in particolare
all’HTML 5, ci possiamo rivolgere a http://www.html.it; mentre per i corsi (in lingua inglese) il
sito di riferimento è https://www.codeschool.com Infine segnaliamo un articolo interessante (fra
i numerosi disponibili) di Immacolata Nappi, Robotica Creativa e New Technology: un supporto
reciproco per l’apprendimento, che propone una visione interessante a proposito della robotica:
http://www.educationduepuntozero.it/tecnologie-e-ambienti-di-apprendimento/robotica-creativa-new-technology-supporto-reciproco-l-apprendimento-40102012153.shtml.
Il parere dello psicologo Jacopo Lorenzetti
Quali competenze mettono in moto le attività di programmazione?
Le attività legate alla programmazione richiedono un misto di competenze, abilità e conoscenze.
Da un lato la razionalità del programmatore, che pianifica passo dopo passo la procedura necessaria, dall’altro la sensibilità del grafico nel progettare l’interfaccia in una maniera che sia intuitiva e
comprensibile per l’utente. Come posso assicurarmi che il prodotto del mio lavoro non sia frainteso
o, peggio, incompreso? Quali operazioni devo fare e in che ordine per raggiungere il mio risultato?
Ho una chiara visione d’insieme o mi sono perso nei dettagli? La mia idea è concreta, so come si fa
a realizzarla? E se non lo so, come posso impararlo?
Quindi, sul piano didattico, si tratta di attività di problem solving?
Sì. Per esempio il punto di vista della psicologia dello sviluppo e dell’apprendimento, la questione è
chiara: la programmazione e la costruzione dell’interfaccia stimolano il problem solving, la metacognizione, l’immedesimazione negli altri (teoria della mente), il pensiero logico. Le domande che si
pone il professionista (o l’appassionato) al lavoro sono le stesse domande che si pone lo studente
nel suo apprendimento. Ancora meglio, sono le stesse domande che noi insegnanti/educatori vogliamo che i nostri studenti imparino a porsi.
Quindi tu credi molto nelle possibilità cognitive offerte dal coding?
Io credo che programmare (e progettare, al di là dell’aspetto tecnico del coding) possa diventare
un’esperienza di apprendimento completa per un ragazzo, che nello sviluppare il proprio progetto
trova modo di monitorarsi, riflettere sui propri obiettivi, e infine trova gratificazione nel risultato
prodotto, forse anche più di quanta può dargliene un voto. Questo tipo di compito ha il grande
potere di essere realmente immersivo: io sono protagonista del mio studio, libero nella sperimentazione, e quindi anche nella scoperta, la forma più spontanea e solida di apprendimento.
In questo modo l’insegnante può anche catalizzare l’attenzione e promuovere le competenze di
quegli studenti che normalmente hanno difficoltà ad apprendere con i canali tradizionali della
lezione frontale (come chi ha difficoltà di letto-scrittura) oppure faticano a trovare la motivazione
allo studio.
© De Agostini Scuola
11
Coding a scuola
Mi ricorda un caso che hai seguito, quello di R. (uno studente con bisogni educativi speciali).
Pensavo proprio a lui. Quando l’ho incontrato per la prima volta aveva 12 anni e frequentava la
prima media. Aveva ricevuto una diagnosi mista di dislessia grave e ADHD (deficit dell’attenzione
con iperattività) dal consultorio locale e la famiglia lamentava la sua intolleranza nei confronti dello
studio e dei compiti, come anche i suoi insegnanti che, esasperati, erano giunti a chiedere addirittura l’aiuto del sostegno. R. si era seduto davanti a me nello studio e parlava liberamente dei suoi
interessi, la sua passione per i videogiochi di guerra e di combattimento. Un ragazzino molto educato e solare. A un certo punto, era necessario valutare a che punto fossero le sue abilità linguistiche
e quindi gli ho dovuto sottoporre un compito scritto di natura molto scolastica, simile a una verifica
sul lessico. Nel giro di pochi secondi R. si è spento, come se si fosse “disattivato”. Quello non era il
suo mondo. Ho provato allora a fare delle attività con l’iPad e con la LIM: qualcosa andava meglio,
ma il ragazzino che affrontava quei compiti non era lo stesso che descriveva con passione la trama
dei propri videogiochi preferiti. In seguito è stato inserito in un gruppetto di lavoro (insieme ad
altri ragazzini con diagnosi di disturbo specifico di apprendimento, DSA) per il potenziamento del
metodo di studio e la partecipazione, ma è sempre stato “distante”. Un giorno, molti mesi dopo,
mentre si parlava di YouTube, R. dal nulla mi ha detto: «Io ho un mio canale». Ed ecco scoperchiato
un mondo: numerosi video, recensioni di videogiochi, trucchi, tutorial, tutto registrato da lui, con accurata progettazione, metodo, e chiarezza. Tutte capacità che R. non mostrava nella vita scolastica.
Il prossimo passo, allora, sarebbe stato quello di insegnargli a sviluppare il pensiero logico e pratico
attraverso un mezzo più adatto a lui, per farlo entrare in contatto con il proprio potenziale, e per
guidarlo nell’utilizzare queste stesse abilità nella vita di tutti i giorni. E questo è ciò che impariamo
dalla sua storia.
Quali considerazioni ti hanno lasciato esperienze come questa?
Dobbiamo riferirci alla tassonomia di Bloom, che resta la più valida in questo campo. Infatti essa
affronta i diversi obiettivi di apprendimento che un individuo può raggiungere, classificandoli uno
dopo l’altro in ordine di qualità. Alla base di tutto abbiamo obiettivi come ricordare e capire, che
sono le richieste cognitive fondamentali. Ma al livello più alto si trova la creatività, ossia la capacità
di produrre e operare tramite il pensiero divergente e l’intuito (o insight).
Noi, come educatori e insegnanti, vogliamo che i nostri alunni crescano come padroni della propria
conoscenza, e che possano averne una consapevolezza tale da manipolarla e utilizzarla per “fare”,
per “stupire”; vogliamo che riescano a esserne soddisfatti al di là di difficoltà visuospaziali che non
permettono loro di incolonnare le operazioni, o difficoltà ortografiche, o bisogni educativi speciali
di qualsiasi categoria.
Se per raggiungere questo l’insegnante deve progettare un compito in modo da far apprendere
gli studenti interattivamente e per scoperte, in un ambiente dove loro sono liberi di sperimentare,
sbagliare e capire, allora secondo la mia esperienza con ragazzi, educatori, e nella scuola 2.0, il
coding e la ludicizzazione/gamification sono due delle risposte corrette possibili.
“E SE…”: UN GIOCO CHE NON FINISCE MAI
Torniamo al nostro piccolo gioco del lido. Siamo partiti da una struttura molto semplice, che si è via via
complicata con nuovi livelli di programmazione. A una struttura ne abbiamo aggiunta un’altra. Questo è
il meccanismo dell’“e se…”. E se un cliente chiedesse…? E se un ragazzo ricevesse una telefonata? E se
sulla spiaggia ci fosse un pericolo? E se improvvisamente piovesse?
12
© De Agostini Scuola
Coding a scuola
Il ruolo del docente
A ogni “e se…” la programmazione si complica perché deve tenere conto di nuove strutture logiche che
rispondono a nuove condizioni. Qui interviene l’abilità del docente. Infatti, la sua capacità professionale non
consiste nell’insegnare qualche riga di codice o gli elementi di base della programmazione affinché i propri
allievi riescano a creare una sequenza che li conduce a soddisfare le richieste dei clienti di un lido. Sarebbe
troppo banale! Esistono numerosi servizi, applicazioni e siti attraverso i quali i ragazzi imparano a programmare senza alcuna conoscenza preliminare e senza che nessuno li indirizzi (per esempio SCRATCH)2. Il loro
mondo non ha bisogno di particolari guide e indicazioni, almeno per un primo approccio. L’insegnante si
occuperà invece proprio di questa complicazione della struttura della programmazione. Aiuterà gli studenti
a porre gli “e se…” corretti, a farli interagire fra loro. Solleciterà gli studenti a ragionare, a disegnare diagrammi di flusso, a ritagliare quadrati, cerchi e frecce di carta per simulare su un tavolo quello che accadrà
a livello di coding, ma prima che il codice sia scritto e prima che le azioni siano compiute.
Se gli studenti apprendono a programmare attraverso il metodo del trial and error (per tentativi ed errori),
l’insegnante li porterà a riflettere prima della prova pratica, ad aumentare il loro livello di astrazione e di
concettualizzazione.
Il compito del docente non sarà di correggere un listato (l’elenco di istruzioni di un programma) o una
serie di interazioni create attraverso oggetti, ma di lanciare agli studenti delle sfide che li aiuteranno a
impadronirsi della logica della programmazione. Queste sfide si fondano su metodologie induttive e di
problem solving e possono essere anche interdisciplinari o multidisciplinari, coinvolgendo così diversi insegnanti e discipline nella costruzione di un progetto di encoding.
COME E PERCHÉ PARTIRE DA UNA DIDATTICA INDUTTIVA
FONDATA SUI PROBLEMI E SULLE SFIDE
Il Challenge Based Learning
Una delle principali esperienze di apprendimento collaborativo – in cui gli insegnanti e gli studenti lavorano insieme per proporre soluzioni di problemi reali e impellenti e quindi per agire – è il Challenge Based
Learning. Il CBL fa parte di una lunga tradizione didattica fondata su metodi “induttivi”, che partono
dall’esperienza sul campo per trarre delle conclusioni generali: il PBL (Problem Based Learning)3 e l’Inquiry Based Learning, una efficace e nota metodologia di apprendimento delle scienze. L’Inquiry Based
Learning (IBL)4 è un metodo didattico di apprendimento fondato sulla ricerca, sull’osservazione, sulla formulazione di ipotesi, sull’analisi, cioè sul metodo scientifico. L’IBL è stato elaborato negli Stati Uniti dove,
nel 1996, il National Research Council l’ha definito il miglior metodo didattico per l’apprendimento delle
scienze5. Più tardi, nel 2007, la Commissione Europea lo ha adottato nel quadro del rapporto stilato da
Michel Rocard, il quale in seguito ha pubblicato Science Education Now: A Renewed Pedagogy for the
2 Uno dei principali linguaggi di programmazione attiva, a oggetti e intuitiva, che consente a chiunque di creare
una serie di interazioni (http://scratch.mit.edu/).
3 Il PBL nasce in Canada intorno agli anni Sessanta nel settore medico. Vedi: The Challenge of Problem Based
Learning, a cura di David Bound e Grahame E. Feletti, Routledge, New York 1997 (http://books.google.it/
books?id=vIUuAgAAQBAJ&printsec=frontcover&hl=it).
4 Sull’IBL, vedi: http://www.exploratorium.edu/ifi/index.html; Wynne Harlen, Progress in Science Inquiry Skills and
How to Help it, Lisbona, 15 settembre 2012 (http://www.cienciaviva.pt/img/upload/Aprender_ciencia_Wynne_
Harlen.pdf) e il progetto Inquire: (http://www.inquirebotany.org/it/) con esempi di attività nel campo della
botanica (http://www.inquirebotany.org/it/resources.html).
5 Vedi: NRC, National Science Education Standards, 1996.
© De Agostini Scuola
13
Coding a scuola
Future of Europe6. Questo documento riconosce la necessità di un nuovo approccio didattico allo studio
delle scienze, proprio attraverso il metodo IBL7 e uno dei modelli che si possono impiegare per implementare tale metodologia è il cosiddetto “modello delle 5e”8.
La “prova del joystick”, ovvero: l’importanza della sfida.
Il racconto di Nunzio Lo Regio, studente di liceo presso il Convitto di Avellino
Una delle mie passioni è la tecnologia e il motivo è che rende le cose più semplici, anche se è frutto
di un duro lavoro. Frequentando un liceo classico europeo, non ho mai avuto nel mio orario scolastico nemmeno un’ora di informatica. Probabilmente se avessi dovuto seguire delle lezioni di informatica, questa materia mi sarebbe sembrata meno interessante, avrei perso il piacere di scegliere
cosa fare, come e quando farlo e anche la soddisfazione di vedere realizzata una mia idea solo con
i miei mezzi, senza l’aiuto di nessuno. Il mio interesse per l’informatica penso sia iniziato quando da
bambino guardavo mio padre usare il computer, ed è stato amore a prima vista. Con il passare del
tempo ho capito che potevo utilizzare la tecnologia per fare di tutto e ho cominciato a pormi sfide
sempre più difficili, fino ad arrivare alla programmazione. Dopo la realizzazione di semplici giochi,
grazie alla musica elettronica (un’altra mia grande passione) ho capito davvero le potenzialità della
programmazione. La cosa è iniziata un po’ per gioco: mi serviva un controller per utilizzare alcune
funzionalità di un programma. Avevo con me un joystick per videogiochi e scherzando ho detto
a un mio amico: «Adesso uso il joystick per controllare questo programma». Perché non provarci
davvero? Dopo svariati tentativi e ore al computer è nata la prima bozza di codice che mi ha permesso di vincere questa sfida. La cosa che mi ha spinto a continuare, superando le difficoltà, è stato
l’amore per la musica, perché è questo che ci guida: la passione per quello che facciamo.
La tradizione dell’indagine
Compiendo un viaggio a ritroso, a loro volta i metodi del CBL, PBL e IBL sono stati ispirati dalle tecniche
di problem solving. Il problem solving aveva lo scopo di superare i classici compiti fondati sulla soluzione
di esercizi e di problemi che venivano presentati nei momenti di verifica. I tradizionali problemi ed esercizi,
infatti, mettono in gioco ciò che lo studente già conosce. L’idea invece era di problematizzare l’insegnamento attraverso la ricerca di soluzioni che non implicassero necessariamente l’appello a un bagaglio di
conoscenze già acquisito. Le soluzioni devono essere trovate attraverso la ricerca e la riflessione logica.
Così, per esempio, il Problem Based Learning propone di affrontare sistematicamente i contenuti disciplinari problematizzando l’apprendimento. A questo scopo fornisce agli studenti un problema “autentico”
6 UE, Science Education Now: A Renewed Pedagogy for the Future of Europe (http://ec.europa.eu/research/sciencesociety/document_library/pdf_06/report-rocard-on-science-education_en.pdf).
7 In Europa viene talvolta chiamato IBSE (Inquiry Based Science Education).
8 Il modello si basa sulle seguenti fasi: Engage – Explore – Explain – Elaborate – Evaluate. Lo studente si interroga
e pone domande in modo che l’attività inizi sempre da una sua curiosità (Engage). Poi raccoglie, organizza,
interpreta, analizza e valuta i dati (Explore). In seguito comunica in differenti modi e forme le conclusioni e le
scoperte, le generalizzazioni a cui è giunto (Explain). Infine applica le sue scoperte e le sue teorie per risolvere
problemi, prendere decisioni, svolgere compiti, risolvere i conflitti o stabilire dei significati (Elaborate). Gli
studenti in gruppo valutano le conoscenze, le competenze e le abilità che hanno acquisito (Evaluate). Una
sintetica ed efficace descrizione si trova sul sito dell’Università del Maryland (http://faculty.mwsu.edu/west/
maryann.coe/coe/inquire/inquiry.htm).
14
© De Agostini Scuola
Coding a scuola
da risolvere. Cioè un problema che esiste nel mondo reale. I metodi e le tecniche del PBL e di pratiche
analoghe sono diverse, ma tutte tendono a fare degli studenti dei soggetti attivi nella ricerca delle soluzioni. Infatti se il Problem Based Learning si struttura attorno a una presentazione che illustra il progetto,
l’idea e quindi la soluzione elaborata dagli studenti, dal canto suo il Design Based Learning si sviluppa
attraverso l’articolazione di un progetto che consente di risolvere un problema complesso.
In tutti questi casi di didattica attiva e induttiva abbiamo a che fare con processi metacognitivi (che insegnano a pensare come pensare) che aiutano gli studenti ad assumere la padronanza del proprio apprendimento. Infatti tutte queste pratiche integrano anche gli strumenti necessari affinché lo studente sia in
grado di monitorare la sua stessa comprensione dei procedimenti di cui si occupa.
Workflow. Il coding in una metodologia induttiva
Se queste sono le metodologie più efficaci per affrontare il coding in classe con gli studenti, vediamo una
struttura di base che l’insegnante può sottoporre ai propri allievi:
t il docente dovrà creare un semplice gioco simulando un problema esistente nel mondo reale (non
una tartarughina che si muove sullo schermo, o un oggetto qualsiasi che si sposta e interagisce con
altri). Per fare questo potrà prendere spunto dai contenuti dei suoi colleghi. Per esempio il professore
di inglese gli può fornire un orologio al quale devono venire associate delle attività in lingua e delle
immagini. Se l’associazione è corretta, dovrebbe comparire una spiegazione;
t partendo dal problema (associare testi e immagini lungo una linea temporale) e impiegando metodologie induttive (scoprendo per esempio il significato del testo in lingua, che cosa viene prima e che
cosa viene dopo e perché), l’insegnante costruirà una semplice mappa o un diagramma di flusso con
gli studenti, prima di passare alla programmazione vera e propria;
t in seguito il docente imposterà con gli allievi gli script di programmazione e ne analizzerà con loro la
logica e le proprietà verificandone la correttezza;
t infine l’insegnante rifletterà sull’intero procedimento e introdurrà nodi concettuali come il concetto di
variabile, di struttura di controllo ecc., che riguardano i nuclei fondanti della programmazione.
© De Agostini Scuola
15
Coding a scuola
IL CODING IN AMBITO MULTIDISCIPLINARE
E INTERDISCIPLINARE
Come si possono affrontare i temi della programmazione in un contesto multidisciplinare nel quale, per
esempio, lo studente possa portare un’esperienza integrata di attività di coding, sviluppata insieme ad
altre discipline, al suo esame di fine ciclo, oppure a una presentazione ufficiale, a un concorso, o a un
evento?
Qui riportiamo un esempio di workflow che coinvolge più discipline nella preparazione di un reportage
sull’antico Egitto.
Un esempio di workflow multidisciplinare più complesso.
Diventiamo reporter multicanali
Impostiamo un’attività didattica di tipo multidisciplinare che comprenda attività di coding insieme
ad altre discipline quali geografia, scienze, storia, inglese e matematica.
Scegliamo un role-play (un gioco di ruolo) che sia il filo conduttore dell’attività. Compiamo un
viaggio nell’antico Egitto per diventare reporter multicanali. Il nostro obiettivo sarà di produrre dei
reportage che uniscano diversi temi disciplinari. Svolgeremo numerose attività correlate a questi
temi.
Qui sotto suggeriamo il compito da eseguire per ciascuna disciplina e indichiamo alcune applicazioni di riferimento per tablet e smartphone.
Geografia
L’insegnante recupera le immagini necessarie con un’applicazione che simula un mappamondo,
come World Atlas.
t Scarichiamo World Atlas del National Geographic (http://social.zune.net/redirect?type=phone
App&id=4abd2110-d6d6-df11-a844-00237de2db9e; https://itunes.apple.com/it/app/nationalgeographic-world/id364733950?mt=8) o un’altra app che mostri le informazioni sui singoli Stati
simulando un mappamondo. Esploriamo il mappamondo con un dito. Osserviamo come sono
presentate le informazioni. Scattiamo uno screenshot dell’Egitto mantenendo la visualizzazione
del mappamondo.
t Importiamo lo screenshot in un’app per prendere appunti come Evernote (https://www.evernote.com) o Notability (https://itunes.apple.com/it/app/notability/id360593530?mt=8) per annotarlo a mano libera o per inserire altre informazioni in forma di schema o disegno. Scriviamo
anche una didascalia e aggiungiamo un breve testo. Utilizziamo il modulo di navigazione Internet per inserire una pagina Web che tratti di un tema quale l’orografia dell’Egitto.
Scienze
L’insegnante con i suoi allievi disegna alcuni volti di antichi egizi usando applicazioni per creare
identikit.
t Con app come Face Creator Free (https://play.google.com/store/apps/details?id=com.idicreative.
facecreator) o FaceKit (https://itunes.apple.com/it/app/facekit-gratis/id520866753?mt=8) creiamo l’identikit del volto di un antico egizio e di un’antica egizia. Importiamolo nelle nostre note
e scriviamo le informazioni che abbiamo rintracciato sulla costituzione fisica di questo popolo
(altezza media, caratteri somatici ecc.).
16
© De Agostini Scuola
Coding a scuola
Storia
L’insegnante lavora con i suoi studenti per rappresentare la sala di un museo dove sono conservati
antichi reperti egizi, traendo ispirazione dagli ambienti del celebre Museo delle Antichità Egizie di
Torino (http://www.museoegizio.it).
t Creiamo due scenari di un museo all’interno del quale sono conservati reperti dei primi importanti ritrovamenti di epoca napoleonica. Registriamo lo screenshot di ciascuno scenario.
Inglese
L’insegnante crea con i suoi studenti un breve fumetto in lingua che ha come tema la vita di un
giovane egizio.
Montiamo ogni scena con un’applicazione per creare fumetti come Comic Life per Mac e Windows (http://plasq.com/apps/comiclife/macwin/) o Strip designer (https://itunes.apple.com/it/app/
strip-designer/id314780738?mt=8). Inseriamo i dialoghi e le didascalie che raccontano la storia in
lingua inglese.
Coding
L’insegnante stimola l’apprendimento dei principi base della programmazione con applicazioni di
gioco che permettono di assemblare gli script come mattoncini, rendendo così visivamente chiara
la costruzione di una parte di codice.
t Siamo sulle rive del Nilo, e con un’applicazione come Pocket Frogs (https://play.google.com/
store/apps/details?id=com.mobage.ww.a435.pocketfrogs_android&hl=it; https://itunes.apple.
com/us/app/pocket-frogs-free-pet-farming/id386644958?mt=8) vogliamo stabilire le condizioni
che determinano la vita e la proliferazione delle rane e degli animali in quell’ambiente. Allo stesso tempo con Hopscotch (https://itunes.apple.com/it/app/hopscotch-programming-designed/
id617098629?mt=8) impariamo semplici diagrammi di flusso e un po’ di inglese. Mostriamo
che si può utilizzare la condizione “if” per costruire semplici procedure con Scratch. Scattiamo
una foto dello schermo e la importiamo nel programma di appunti per annotarla spiegando la
procedura che abbiamo utilizzato.
t Con Mind Map (https://play.google.com/store/apps/details?id=com.takahicorp.MindMap) o Inspiration Maps (https://itunes.apple.com/it/app/inspiration-maps/id510031612?mt=8) creiamo
una semplice mappa sia grafica sia logica, utile anche per DSA. Scattiamo la foto e la importiamo nel nostro quaderno per raccontare quello che abbiamo fatto.
Matematica
t Cerchiamo l’immagine di una piramide e con Explain Everything (https://play.google.com/store/
apps/details?id=com.morriscooke.explaineverything; https://itunes.apple.com/it/app/explaineverything/id431493086?mt=8) creiamo un filmato didattico che spiega alcune caratteristiche
matematiche delle piramidi. Il filmato sarà composto da immagini, disegni a mano libera, collegamenti a pagine Web.
Gamification e coding
Creiamo un piccolo gioco didattico che unisce tutti questi elementi. Vengono presentate immagini,
nomenclatura, pulsanti interattivi da associare per determinare l’operazione corretta (vedi il capitolo: “Programmare interazioni e giochi con applicazioni conosciute”).
Conclusione
Presentiamo il lavoro a fine anno, lo pubblichiamo sul sito della scuola come Web app, oppure i
ragazzini lo portano agli esami come tesina multidisciplinare.
© De Agostini Scuola
17
Coding a scuola
NON C’È CODING SENZA INTERFACCIA, SPECIALMENTE
IN CAMPO EDUCATIVO
Quando nel Settecento la porcellana si diffuse alla corte di Sassonia, nessuno sapeva veramente che farsene
e tutti la usavano per dare vita agli stessi oggetti che precedentemente si scolpivano nella pietra. Solo col
tempo si imparò a sfruttare la plasticità di quell’impasto di caolino e altre sostanze per inventare forme del
tutto nuove prima di cuocerlo in forno. A quel punto l’Europa venne invasa da migliaia di oggetti di porcellana.
Considerate che l’interfaccia di una qualsiasi applicazione è come la porcellana alla corte di Sassonia: si
modella bene, ma è difficile utilizzarla in modo davvero intelligente. Inoltre la maggior parte delle persone
conoscono poco questo ambito dell’informatica. L’interfaccia è ciò che appare quando si lancia un sistema
operativo, un’applicazione, una presentazione multimediale. Per effettuare i suoi calcoli, un computer utilizza
i numeri binari 0 e 1 (linguaggio macchina) che compongono il codice della programmazione (coding). L’interfaccia è ciò che trasforma le serie di numeri, i listati o gli oggetti della programmazione in immagini, testi,
filmati, grafica e suoni. L’interfaccia è una specie di diaframma, di porta di comunicazione con l’elaboratore.
Anche un eBook interattivo e multimediale come un Multi Touch Book (http://www.apple.com/it/ibooksauthor/gallery.html) richiede un complesso lavoro di sviluppo informatico che viene reso coerente da
un’interfaccia che lega i contenuti fra loro. Così in questo eBook il lettore può scegliere di associare alla
lettura di una poesia anche immagini consultabili contemporaneamente, giochi e percorsi alternativi, e il
prodotto acquista nuove chiavi di lettura.
Tutto questo non sarebbe possibile senza la rappresentazione simbolica e grafica costituita da un’interfaccia. Detto in altri termini: non può esistere una programmazione che implichi una manipolazione di
dati senza la sua interfaccia, non può esistere codice senza rappresentazione, non possono esistere listati
logici senza una grafica che li renda fruibili.
Programmare non vuol dire solo stilare una lista di istruzioni
Esistono due modi per affrontare il coding: o si ritiene che significhi semplicemente far muovere una tartaruga avanti e indietro sullo schermo (come nel linguaggio di programmazione LOGO di qualche anno fa:
http://it.wikipedia.org/wiki/Logo_(informatica)), o disegnare un cerchio, o effettuare un calcolo, oppure si
ritiene che il coding abbia un senso per i nostri studenti solo se produciamo un oggetto concreto destinato a un pubblico, un oggetto che deve essere fruito realmente. Nel primo caso compiamo un’operazione
fine a se stessa, un puro esercizio di stile al quale lo stile mancherà sicuramente, perché prima di occuparsi
dell’eleganza della programmazione, bisogna masticarne di codice informatico! Nel secondo caso invece
svolgiamo un compito nel real word che stimola i ragazzi attraverso le sfide che noi proponiamo. In questo secondo caso è indispensabile ragionare sulla rappresentazione dell’oggetto, su chi ne deve fruire, sul
modo di presentare il prodotto. In sostanza è impossibile non occuparsi della progettazione dell’interfaccia.
Consideriamo anche che esistono importanti motivazioni educative e culturali che ci devono spingere a
non ignorare questo problema. Il nostro universo comunicativo si basa sull’immagine, sull’associazione
della parola alla fotografia, su elementi grafici e in movimento e anche sul gioco e i livelli di interazione.
Questo tipo di comunicazione diventa lo strumento di una cultura poliedrica, cosicché oggi un’app o una
pagina Web raccolgono diversi contributi strettamente integrati fra loro. Ciò che unisce questi contributi
e i canali di riferimento sono proprio le interfacce, cioè il modo in cui i dati sono rappresentati per chi ne
fruisce. Per questo il lato multidisciplinare dei prodotti multimediali – che impiegano testi, film, grafica,
musica all’interno di una forma data – è parte integrante della stessa identità dell’oggetto prodotto, è il
modo in cui l’oggetto viene riconosciuto.
18
© De Agostini Scuola
Coding a scuola
ITunes U è un’applicazione gratuita che raccoglie contributi messi a disposizione da oltre 3000 atenei di tutto il mondo. L’Università
di Pisa, per esempio, ha reso disponibili i suoi seminari di informatica umanistica (https://itunes.apple.com/it/itunes-u/seminari-diinformatica-umanistica/id426146844?mt=10).
Come può un insegnante aiutare i suoi studenti a costruire
efficaci interfacce?
Anche un docente che non sa disegnare e non ha competenze con le interfacce può però insegnare
agli studenti a occuparsi di questo aspetto.
Prima di tutto può invitarli a ragionare ponendo le domande appropriate. A chi è destinato l’oggetto che si vuole costruire? Quali sono i gusti di questo target? Quale ambiente deve rappresentare?
Quali colori sono più adatti all’oggetto? Come disponiamo gli elementi nello spazio in modo che
siano visibili? Come facciamo a spiegare in che modo si usa il nostro oggetto? Dobbiamo scrivere
un tutorial? L’oggetto è sufficientemente intuitivo da essere utilizzato con facilità?
Queste e tante altre domande concorreranno ad aiutare i ragazzi a riflettere su questi aspetti e
quindi a operare delle scelte. Per aiutarli a riflettere possiamo invitare i nostri studenti a creare un
diagramma di flusso con un’applicazione per disegnare mappe concettuali e mentali.
Per disegnare i progetti e per schizzare le strutture di gioco delle attività possiamo avvalerci di
diverse applicazioni, specialmente per fare disegni e prendere appunti. Per chi predilige uno stile
informale, che piace molto agli studenti (e che, progettando un gioco, è coerente con il contesto),
le app più conosciute e apprezzate sono:
t PenSupremacy per Android (https://play.google.com/store/apps/details?id=com.apking.ultipen);
t Penultimate per iOS (https://itunes.apple.com/it/app/penultimate/id354098826?mt=8);
t Paper 53 per iOS (https://itunes.apple.com/it/app/paper-by-fiftythree/id506003812?mt=8),
Bamboo Paper per Android (https://play.google.com/store/search?q=bamboo%20paper&c=apps)
o per iOS (https://itunes.apple.com/it/app/bamboo-paper-quaderno/id443131313?mt=8);
t Sketchbook Express per Android (https://play.google.com/store/apps/details?id=com.adsk
sketchbook hdexpress) o per iOS (https://itunes.apple.com/it/app/sketchbook-express-for-ipad/
id410871280?mt=8).
© De Agostini Scuola
19
Scarica

Coding Math genius estratto