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.

   
     
   
Istituto Tecnologie Didattiche
Contatti: chioccariello@itd.cnr.it