IL
PROGETTO CAB
Il
progetto CAB ha affrontato il problema di come rendere possibile per i
bambini la programmazione di costruzioni cibernetiche, ad esempio di robot
dotati di sensori (di luce, contatto, temperatura ecc.) e attuatori (motori).

Rendere
accessibili ai bambini gli strumenti di controllo del comportamento di
una costruzione cibernetica è un problema aperto. Programmare non
è facile e molti pensano che sia un attività da delegare
a specialisti: se questo fosse vero dovremmo abbandonare l’idea
di un kit di costruzioni e limitarci alla progettazione di giocattoli
cibernetici con un grado forse elevato di interattività, ma sostanzialmente
non modificabili dai bambini. Noi pensiamo invece che una versione di
programmabilità, purché supportata da strumenti (ambiente,
linguaggio, ecc.) specializzati nella direzione delle caratteristiche
del problema da risolvere, sia possibile anche per i non programmatori.
Lavorare con i bambini implica, innanzitutto, ipotizzare che per loro
sia possibile gestire il livello di complessità insito nel controllo
del comportamento di un robot. Se questa ipotesi è verificata,
ha senso porsi il problema di costruire un ambiente di programmazione
per bambini. Nell’ambito del progetto CAB abbiamo verificato che
i bambini riescono a interagire con costruzioni robotiche laddove il contesto
sia ben strutturato.
Il
modello concettuale
Ma qual è il modello concettuale più adeguato alla definizione
dei comportamenti di un robot? Vediamo un esempio. Vogliamo che un veicolo
giri intorno a un baule a base quadrata. Un neofita tenderebbe a impostare
la soluzione come se avesse a disposizione un’automobile controllata
con un telecomando, e dal punto di vista della programmazione ad adottare
uno stile imperativo, proponendo la seguente soluzione: “Vai avanti
di un lato”, “Gira a sinistra di 90 gradi” e “Ripeti
queste due istruzioni per gli altri tre lati”, nello stile della
tartaruga Logo. Ma i robot sono dotati di sensori che consentono di “percepire”
l’ambiente circostante e reagire di conseguenza: programmare un
robot implica così gestire più sensori contemporaneamente
in tempo reale.
Se aggiungiamo, ad esempio, al nostro veicolo un sensore di contatto possiamo
affrontare il problema in modo radicalmente diverso, simulando il comportamento
di chi, trovandosi al buio, debba circumnavigare un ostacolo seguendone
il contorno con la mano. Il programma viene costruito mettendo in relazione
le informazioni che pervengono dai sensori con i comandi da far eseguire
ai motori. La relazione tra input e output sarà quindi: “se
il sensore tocca, accendi il motore dal suo lato e spegni quello dal lato
opposto; se non tocca, spegni il motore dal suo lato e accendi quello
dal lato opposto”.
L’orientamento
al dominio
Si è scelto di rappresentare i comportamenti dei robot per mezzo
di regole composte da condizioni per i sensori e da azioni per gli attuatori.
Una regola associa una condizione (un test sullo stato di un sensore)
a una sequenza di azioni (comandi per gli attuatori): ad esempio, “Se
il sensore di luce rileva un valore elevato di luminosità allora
accendi il motore”.

La
facilità d’uso di questo sistema a regole dipende dalla disponibilità
di condizioni e azioni che incapsulino i dettagli del funzionamento dell’hardware
e siano direttamente operativi. A sua volta, l’usabilità
di condizioni e azioni dipende da assunzioni sul tipo di costruzione:
ad esempio, un veicolo con due motori può muoversi avanti e indietro,
girare a destra e a sinistra. Ciò permette di definire comandi
per il veicolo analoghi a quelli della tartaruga del Logo. Quindi, per
ogni tipologia di costruzione, l’ambiente di programmazione mette
a disposizione una serie di primitive (condizioni e azioni) specializzate.
L’ambiente di programmazione si presenta innanzitutto come un laboratorio
di progetti, che ospita sia la galleria di quelli già esistenti
che la possibilità di definirne uno nuovo. Un progetto, a sua volta,
contiene sia i programmi che la documentazione multimediale del lavoro
(foto, filmati, commenti sonori, testi) ed è composto da una o
più costruzioni. L’ambiente permette di definire tipologie
diverse di costruzioni per sostenere la specializzazione delle componenti
(comportamenti, condizioni e azioni). La scelta del tipo di costruzione
permette di fare delle assunzioni sulle sue componenti meccaniche. Ad
esempio, un veicolo è dotato di uno chassis con due motori e quindi
può muoversi e girare. Quando lo si dota di sensori appropriati,
il veicolo può seguire una serie di comportamenti predefiniti quali
“Segui una linea”, “Cerca la luce”, “Segui
un muro”. L’ambiente è capace di suggerire comportamenti
appropriati a seconda dei sensori usati in una data costruzione. Quando
si definisce un nuovo comportamento, solo le condizioni e azioni appropriate
alla configurazione hardware corrente sono presentate. Grazie a questo
meccanismo di specializzazione è possibile far evolvere l’ambiente
secondo le necessità dettate dagli specifici progetti dei bambini.
Il
supporto metacognitivo e sociale
Formalizzare mediante regole il comportamento di un robot ha importanti
implicazioni sul piano cognitivo e metacognitivo. Da un lato, la regola
reifica la relazione di causa-effetto e fornisce ai bambini e ai loro
insegnanti un importante strumento linguistico per astrarre i comportamenti
reattivi (“Se la temperatura aumenta, il robot accende il motore
della ventola”).
Dall’altro, l’immediatezza di interpretazione e la leggibilità
delle regole consentono non solo di parlare facilmente del problema, ma
anche, in retrospettiva, di ripercorrere i processi di soluzione messi
in atto (“… poi abbiamo aggiunto questa regola, per insegnare
al robot ad accendere il ventilatore quando fa caldo …”),
specie quando le scelte di programmazione effettuate non producono i comportamenti
attesi. Caratteristica tipica del lavoro dei bambini è, infatti,
quella di prefigurare un contesto ampio ed articolato dove le fantasie
prendono corpo ed evolvono coinvolgendo più attori. Un progetto
in evoluzione ha quindi bisogno di forme atte a sostenere la memoria del
lavoro compiuto, sia in termini di documentazione che di storia delle
scelte costruttive e programmatiche, eventualmente ripercorribile.
L’ambiente prefigura, inoltre, un contesto sociale d’uso articolato
su tre ruoli: i bambini, gli insegnanti, gli esperti. I bambini
collaborano tra loro e con gli insegnanti in tutte le fasi del lavoro,
dall’identificazione del problema all’invenzione di una soluzione
appropriata e alla sua realizzazione: discutono e si confrontano sulle
alternative possibili, ispezionano esempi e semilavorati, li modificano
nei parametri e nella struttura; esplorano le potenzialità e i
limiti della tecnologia; si impegnano in un processo iterativo di costruzione
socialmente condivisa in cui le ipotesi che emergono vanno soggette sia
al vaglio del gruppo, sia alla verifica sperimentale.
Gli insegnanti mediano tra bambini e tecnologia quel tanto che basta per
rendere fluido il processo, senza deprimere la creatività e la
motivazione dei bambini. Alcune funzioni di configurazione dell’ambiente
di programmazione sono finalizzate a renderlo adattivo rispetto alle esigenze
del gruppo e del particolare problema in esame: un insegnante può,
ad esempio, configurare facilmente l’interfaccia, cambiando le icone
e i nomi associati agli oggetti manipolati dal programma (azioni, condizioni,
comportamenti). Ma è anche possibile (e operativamente facile)
per un insegnante modificare diversi parametri di configurazione di azioni
e condizioni predefinite: ad esempio, i fattori di scala associati alle
durate temporali di azioni quali “Avanti” o le soglie di sensibilità
sui vari sensori.
Gli esperti nella programmazione di robot possono estendere ulteriormente
l’ambiente per integrare la definizione di nuove tipologie di costruzioni.
IL
PROGETTO “COSTRUIAMO UN ROBOT”
Il progetto “Costruiamo un robot”, realizzato nell’ambito
del bando del MIUR “Materiali per SeT”, ha sviluppato e sperimentato
materiali didattici con la partecipazione di otto scuole lombarde insieme
ad alcune università e centri di ricerca.
L’educazione al metodo scientifico nella scuola spesso si limita
alla riproduzione di esperimenti storicamente rilevanti, secondo una logica
che fa prevalere la trasmissione di conoscenze consolidate sulla loro
(ri)costruzione da parte dei soggetti che devono apprenderle.
Questa logica può essere ribaltata adottando una prospettiva costruzionista
per la quale l'apprendimento è il risultato di una relazione tra
le idee e la costruzione di oggetti ad esse correlate, da un lato, e il
confronto con gli altri che ne promuove la condivisione, dall’altro.
In questa prospettiva, l’uso di kit robotici rappresenta un elemento
di novità in quanto permette di creare le condizioni per realizzare
attività di laboratorio sperimentale in cui gli aspetti di invenzione
(l’apporto personale) e riproduzione (la ricostruzione
del sapere accumulato) siano nel giusto equilibrio.
Se poi a questa proposta educativa di scuola si aggiungono attività
extra-scolastiche come competizioni di robot, si crea una sinergia tra
studio e gioco, tra competizione e cooperazione che favorisce un apprendimento
motivato.
|
|