Progetto AIDE (Coding con Scratch)

Aiutante

(Aide robot evolution - Aiutante robot evolutivo)

Il gioco del robot che si evolve

(robotica e linguaggi di programmazione)

Da un’idea di

Valentino Siciliano

Docente dell’Istituto Comprensivo di San Pietro in Guarano

Collaboratori esterni

Ing. Marco Iusi

Digital champion Codeweek

Dott. Francesco Bevacqua

Fisico presso la Facoltà di ingegneria “Federico II” di Napoli e Responsabile della Mediateca presso la Città della scienza.

Abstract

Il gioco consiste all’inizio nell’ideare su carta un robot virtuale molto semplice, che aiuta l’uomo a compiere delle attività. Dotato di un corpo-testa, AIDE ascolta e interpreta stringhe di comandi molto elementari, codificati dagli stessi alunni ed esegue movimenti base attraverso supporti dotati di servomeccanismi.

Questa fase viene preceduta da esperienze con altri linguaggi di programmazione rivolti agli alunni della scuola primaria e secondaria di primo grado, quali il LOGO, o quelli proposti da giochi come “Il labirinto” e “Scrach”.

Col tempo, al robot vengono implementati sempre nuovi componenti, hardware e software, con specifiche funzioni, attivate da nuove stringhe con cicli iterativi, condizioni, variabili e altro ancora.

In questo modo il robot si evolve: prima somiglia a un virus o a un batterio gigante che si muove in uno spazio bidimensionale, poi diventa sempre più complesso e articolato, in grado di correre, saltare e arrampicarsi… inizia ad assomigliare ad un animale. Ad un tratto cambia postura, impara, impara ad imparare, acquisisce la motricità fine degli arti superiori e così costruisce anch’esso oggetti, si replica.

I bambini o i ragazzi crescono con lui, condividendo le esperienze attraverso un lavoro di équipe e facendo un parallelo con l’evoluzione della vita sulla Terra. Si accorgono così come la natura ha lavorato nel corso di miliardi di anni e che quello che noi pensiamo o vorremmo fare è già accaduto.

Ma non finisce qui. Il robot viene dotato di nuovi dispositivi: sistemi di alimentazione, radar, telecamere a raggi infrarossi, propulsori! Il robot quindi si muove in uno spazio-tempo a quattro dimensioni.

C’è ancora di più: ogni classe di alunni oppure ogni gruppo di lavoro, rispettando determinate regole e sotto la supervisione di una guida, può far evolvere il proprio AIDE secondo le proprie idee ed esigenze, cambiargli anche il nome, in maniera tale che ci possano essere numerose generazioni di robot con funzioni anche diverse tra loro, per dare corso a una sorta di “robodiversità” con implicazioni tutte da sondare.

Come è avvenuto per i popoli della Terra, queste generazioni di robot potranno anche avere contatti e scambiarsi informazioni, progredendo insieme e dando luogo a una specie di tecnologia globale.

Motivazioni di fondo

1. “Il coding dà ai bambini una forma mentis che permetterà loro di affrontare problemi complessi quando saranno più grandi” Alessandro Bogliolo, docente all’Università di Urbino e «ambasciatore» per l’Italia della “CodeWeek”.

2. Come afferma Massimo Avvisati, responsabile didattico dell’area Kids di Codemotion, oggi gli alunni sono fruitori passivi della tecnologia. Col coding la situazione si capovolge. E ciò avviene anche per i docenti. Lo stesso fa anche un esempio illuminante: “Se in geometria hanno studiato l’angolo giro e nel videogioco che costruiscono devono ruotare un’astronave, ecco che riescono a dare un senso al concetto di 360 gradi”.

3. Il coding è incentivato dal MIUR che, in collaborazione col CINI - Consorzio Interuniversitario Nazionale per l'Informatica - propone l'iniziativa “Programma il futuro”.

4. La robotica ha un valore analogo al coding, essendone una coseguenza logica e rappresentandone l’implementazione fisica. E’ uno strumento potentissimo che consente a chi la studia di comprendere come funziona la nostra mente e il nostro corpo, di imparare a riflettere, di sperimentare, consentendo un intreccio interdisciplinare tra Italiano, Matematica, Scienze, Tecnologia, Informatica, Geografia (sistemi di coordinate), Educazione all’immagine; ma può essere coinvolta anche la Storia, perché tutto ha una storia. Anche le attività di laboratorio prendono una forma reale ed espressioni come problem solving e learn by doing trovano finalmente una collocazione.

5. Antefatto. Nel 1976 Seymur Papert, già collaboratore di Piaget, e Marvin Minsky, del Massachusetts Institute of Technology (MIT) di Boston, ebbero l’idea dell’uso di un elementare linguaggio di programmazione per fini didattici. Nacque così il linguaggio LOGO, che attraverso una lista di comandi faceva lavorare sullo schermo una tartaruga-robot. Rivolto agli alunni della scuola di base era finalizzato particolarmente al recupero di bambini disabili. Diversamente da Piaget il Papert era convinto che la cronologia delle fasi evolutive, sulle quali sono impostati tutti i gradi del nostro sistema scolastico, non fosse rigida, ma accelerabile. Anzi postulò che proprio il computer potesse ridurre i tempi entro i quali il bambino giungeva all’astrazione e alla generalizzazione.

Negli anni ’70 l’idea rimase confinata nei laboratori, ma negli anni ’80, con l’avvento dei personal computer, si diffusero varie versioni di LOGO. Agli inizi degli anni ’90 presero piede alcune versioni visuali di LOGO ancora oggi usate per far muovere i robot giocattolo della LEGO, i Mindstorm, dal titolo di un libro di Papert. Parallelamente, anche in Italia, il software continuò ad evolversi e la Garamond diede la possibilità di utilizzare MicroMondi, che consentiva di realizzare anche progetti multimediali.

Parallelamente però nella scuola di base lo studio e l’uso di un linguaggio di programmazione, che appartiene all’informatica, è stato spesso confuso con l’apprendimento dell’utilizzo di apparecchiature.

Nelle indicazioni nazionali del 2004 compare per la prima volta come disciplina l’informatica, associata alla tecnologia, ma le stesse fanno solo cenno a giochi didattici, internet, videoscrittura, grafica computerizzata, programmi per il calcolo e la geometria, apparecchiature multimediali.

Con le indicazioni del 2007 l’informatica diventa trasversale, e, quindi, sparisce come disciplina, anche se viene raccomandato l’uso di moderne apparecchiature.

La trasversalità permane nelle indicazioni del 2012, ma per la prima volta troviamo paragrafi specifici:

“Programmare ambienti informatici e elaborare semplici istruzioni per controllare il comportamento di un robot.”

“Quando possibile, gli alunni potranno essere introdotti ad alcuni linguaggi di programmazione particolarmente semplici e versatili che si prestano a sviluppare il gusto per l’ideazione e la realizzazione di progetti (siti web interattivi, esercizi, giochi, programmi di utilità) e per la comprensione del rapporto che c’è tra codice sorgente e risultato visibile”.

Scarsi però sono i supporti cui possono attingere alunni e docenti.

Solo nel 2014, finalmente, con l’iniziativa “Programma il futuro” (http://www.programmailfuturo.it/) il MIUR, in collaborazione con il CINI – Consorzio Interuniversitario Nazionale per l’Informatica, “fornisce alle scuole una serie di strumenti semplici, divertenti e facilmente accessibili per formare gli studenti ai concetti di base dell'informatica”.

Più o meno insieme a questa iniziativa parte anche quella europea denominata Codeweek (codeweek.it/), che attraverso dei digital champions, ovvero degli ambasciatori informatici, introduce delle settimane di coding rivolte a tutte le scuole.

6. E’ come se allora venisse proclamato, dopo purtroppo quasi quarant’anni, l’enorme valore formativo di quelle attività che consentono di scoprire come la nostra mente e, al posto suo, un microprocessore, riesce a svolgere strabilianti funzioni.

Destinatari

Il progetto, pur rivolgendosi agli alunni più piccoli, partirà a regime con le classi III, IV e V della scuola primaria e coinvolgerà anche gruppi di alunni della scuola secondaria di II grado dell’Istituto Comprensivo “Luigi Settino” di San Pietro in Guarano (CS). Attività varie potranno interessare comunque tutte le classi.

Obiettivi formativi generali e processi coinvolti

Fondamentalmente è coinvolto il “pensiero computazionale”, col quale Jeannette Wing, nel 2006, indicò l’insieme di quelle procedure che portano alla soluzione di un problema trasferibile in altri contesti. A tale soluzione si giunge attraverso la scomposizione, la codifica e l’organizzazione dei dati secondo un determinato algoritmo.

Più analiticamente possiamo dire che il progetto mira ad attivare i seguenti processi:

· Riduzione dei tempi con cui bambini e ragazzi pervengono all’astrazione, alla generalizzazione, alla comprensione di modelli concettuali e alla costruzione di nuovi.

· Soluzione di problemi attraverso procedimenti creativi, divergenti, logici ed economici.

· Acquisizione del senso di relatività rispetto al mondo degli oggetti e delle azioni.

· Potenziamento delle funzioni iconiche e simboliche.

· Sviluppo di attitudini trasferibili in altri ambiti.

· Implementazione di una pedagogia dell’errore che escluda angosce e metabolizzi gli stress.

· Potenziamento delle abilità visuo-spaziali.

· Sfollamento percettivo.

· Segmentazione delle difficoltà, specialmente per quanto riguarda l’approccio apprenditivo degli alunni disabili.

· Miglioramento delle capacità organizzative e di ricerca.

· Simulazione di situazioni che permettono all’alunno di variare parametri e di verificarli.

· Attivazione di procedure con formulazione di ipotesi, rappresentazioni, scelte, cicli iterativi, condizioni, variabili, ecc.

· Cambiamento del rapporto tra alunni, insegnanti e sapere.

· Innovazione didattica.

· Introduzione di un apprendimento più attraente.

· Miglioramento dell'efficacia del processo di insegnamento-apprendimento.

· Interesse dei ragazzi per l'uso delle tecnologie per migliorare anche le competenze già eventualmente acquisite.

· Utilizzazione in genere di strumentazioni informatiche e acquisto di competenze specifiche.

· Orientamento in contesti sempre più complessi.

· Saper affrontare situazioni impreviste.

· Previsione di situazioni.

· Programmazione di esperienze.

· Modifica del proprio punto di vista.

· Adattamento a situazioni diverse.

· Lavoro collaborativo e interattivo.

· Possesso di un senso estetico.

· Impiego adeguato di strumenti.

· Maggiore personalizzazione dell’apprendimento.

· Possibilità di ricercare esperienze, di verificarle, di trarne spunto, di partecipare a esperienze collettive.

· Formazione di un alunno, non solo consumatore, ma anche creatore di informatica.

· Formazione di competenze trasversali.

· Confronto tra docenti finalizzato al raccordo tra i diversi ordini scolastici.

· Apprendimento per “costruzione” della conoscenza.

Obiettivi specifici di apprendimento

· Familiarizzare con alcuni linguaggi di programmazione particolarmente semplici e versatili che si prestino a sviluppare il gusto per l’ideazione e la realizzazione di progetti (giochi, programmi per la soluzione di problemi) e per la comprensione del rapporto che c’è tra codice sorgente e risultato visibile.

· Produrre semplici modelli o rappresentazioni grafiche del proprio operato.

· Prevedere le conseguenze di decisioni o comportamenti.

· Utilizzare comunicazioni procedurali e istruzioni tecniche per eseguire, in maniera metodica e razionale, compiti operativi complessi, anche collaborando e cooperando con i compagni.

· Accostarsi a nuove applicazioni informatiche relative al coding esplorandone le funzioni e le potenzialità.

· Programmare ambienti informatici e elaborare semplici istruzioni per controllare il comportamento di un robot.

· Favorire un uso critico e riflessivo della tecnologia.

· Individuare applicazioni e collegamenti fra le diverse discipline.

· Sviluppare negli studenti il gusto per la scoperta.

· Sperimentare attività di peer tutoring.

· Sperimentare attività di peer collaboration.

· Sperimentare attività di learn by doing.

Conoscenze

Le conoscenze che seguono verranno adeguate ai livelli dei diversi gruppi-classe. Quanto previsto potrà essere anticipato, se possibile, nei livelli precedenti o svolto attraverso modalità di presentazione adatte all’età degli alunni.

Classi I-II-III primaria

Coding

· Concetti di flusso, linguaggio, istruzione, ripetizione, variabile, condizione, programma.

Robotica

· Motori, ingranaggi, leve, sistemi di alimentazione).

· Unità programmabile (processore, memoria).

Classi IV-V primaria

Coding

· Concetti di flusso, istruzione, stringa, ripetizione, variabile, condizione, salto, programma, sottoprogramma e relativa codifica.

· Struttura fondamentale del linguaggio macchina.

Robotica

· Unità programmabile (processore, memoria fissa e temporanea – RAM–).

· Sistemi spaziali di riferimento.

· Sistemi di alimentazione (breve storia).

· Breve storia degli automatismi.

· Parti passive: articolazioni, ingranaggi, giunti, leve, sistemi di trasmissione, sistemi idraulici, sistemi di locomozione.

· Periferiche di input: i sensori (parallelo con i sensi umani e animali).

· Periferiche di output: gli attuatori (motori e altro).

Classi I-II-III secondaria di primo grado

Coding

· Concetto di retroazione.

· Breve storia dei linguaggi di programmazione.

Robotica

· Concetto di porta logica ed esempi rudimentali di implementazione attraverso circuiti elettrici.

· Breve storia dell’elettronica: dalle valvole termoioniche ai transistor; dai microchip ai microprocessori.

· Parti passive: articolazioni, ingranaggi, giunti, leve, sistemi di trasmissione, sistemi idraulici, sistemi di locomozione.

· Periferiche di imput: sensori di posizione, di prossimità, di contatto, di temperatura, audio, RFID, di visione.

· Periferiche di output: gli attuatori (motori e altro).

· I diversi tipi di robot moderni usati nel campo dell’industria, dei servizi, della medicina, della sicurezza e delle esplorazioni.

· Breve storia dei robot.

· I robot nella fantascienza e nelle ricerche attuali.

Abilità

Classi I-II-III primaria

Coding

· Analizzare un problema e segmentarlo nei vari aspetti.

· Utilizzare il linguaggio iconico e quello testuale per rappresentare un algoritmo.

Robotica

· Riconoscere e descrivere le diverse parti di un kit.

Classi IV-V primaria

Coding

· Schematizzare e modellizzare un problema.

· Compilare semplice programma di istruzioni utilizzando ripetizioni, condizioni, variabili, salti e sottoprogrammi.

· Effettuare semplici operazioni col sistema binario.

Robotica

· Assemblare un kit robotico e programmarlo.

· Saper immaginare possibilità di sviluppo.

Classi I-II-III secondaria di primo grado

Coding

· Usare correttamente un semplice linguaggio di programmazione.

· Saper operare col sistema binario.

Robotica

· Progettare e implementare, sotto la guida di un esperto, un sistema robotico.

· Individuare e descrivere possibilità future di sviluppo.

Contenuti da proporre

(In maniera adeguata ai vari livelli)

· Uso ludico del codice sotto forma prima di blocchi visuali predefiniti da collocare in sequenze logiche.

· Creazione di animazioni.

· Storie interattive.

· Storia dell’hardware e del software.

· Rudimenti di elettronica digitale.

Prodotti finali

· Esperienze con linguaggi di programmazione rivolti agli alunni della scuola primaria e secondaria di primo grado, quali il LOGO, o quelli proposti da giochi come “Il labirinto” e “Scrach”.

· Completamento di percorsi previsti dall’iniziativa “Programma il futuro”.

· Ideazione su carta di un robot virtuale molto semplice (AIDE), che aiuti l’uomo a compiere delle attività e che ascolti e interpreti stringhe di comandi molto elementari, codificati dagli stessi alunni ed esegua movimenti base attraverso supporti dotati di servomeccanismi.

· Ideazione di un modello più evoluto di AIDE dotato di nuovi componenti, hardware e software, con specifiche funzioni, attivate da altre stringhe con cicli iterativi, condizioni, variabili e altro ancora.

· Implementazione da parte degli alunni della scuola secondaria di primo grado e sotto la guida di un esperto esterno di un vero robot, attraverso l’uso di schede elettroniche e altri componenti.

· Ideazione di un modello finale di robot articolazioni migliorate, sistemi di alimentazione, radar, telecamere a raggi infrarossi, propulsori…

· Tentativo di far evolvere AIDE secondo modelli diversi eventualmente proposti da più gruppi di lavoro.

· Elaborazione di una lista sequenziale di istruzioni che consentano di conseguire un obiettivo.

· Documentazione multimediale del lavoro svolto.

Strategie

Le competenze previste faranno leva su diversi approcci:

· Peer tutoring.

· Peer collaboration.

· Learn by doing.

· Problem solving (comprensione, previsione, pianificazione, monitoraggio, valutazione).

· Didattica laboratoriale, partendo da situazioni-stimolo e disponendo i banchi ad isole.

· Uso del metodo scientifico-sperimentale.

Attività

· Manipolazione di robot giocattolo programmabili (Mio robot della Clementoni, Mindstorms della LEGO, ecc.) meccanismi, oggetti d’uso comune.

· Proiezione di immagini, foto, filmati e animazioni relative all’argomento (ad esempio “Wall-e” della Disney o altro).

· Giochi di coding proposti da www.programmailfuturo.it e da codeweek.it - In particolare, si segnalano due iniziative, la Settimana Europea del Codice (10-18 ottobre 2015) e la Settimana Internazionale dell’Ora del Codice (7-13 dicembre 2015) -.

“Il MIUR, in collaborazione con il CINI – Consorzio Interuniversitario Nazionale per l’Informatica – ha reso disponibili alle scuole una serie di lezioni interattive e non, che ogni classe può utilizzare compatibilmente con le proprie esigenze e la propria organizzazione didattica. Gli strumenti disponibili sono di elevata qualità didattica e scientifica, progettati e realizzati in modo da renderli utilizzabili da parte di insegnanti di qualunque materia. Non è necessaria alcuna particolare abilità tecnica né alcuna preparazione scientifica. Il materiale didattico può essere fruito con successo da tutti i livelli di scuole”.

· Creazione di uno specifico linguaggio di programmazione.

· Analisi di un problema e progettazione su carta.

· Implementazione di progetti attraverso schede elettroniche (Arduino e Theremino) e altri componenti.

Mezzi e strumenti

· Il Labirinto, proposto da studio.code.org/hoc/1 , che attraverso i personaggi di Angry Birds, Zombie vs Plants e Scrat dell’”Era Glaciale”, e tramite dei blocchi di codice, propone la programmazione dei movimenti dei personaggi per conseguire un determinato obiettivo.

· Scracth, un ambiente di sviluppo visuale semplificato che consente la programmazione a oggetti per realizzare piccole applicazioni, giochi e storie interattive: occorre selezionare dei blocchi e inserirli in una lista, utilizzando una libreria di oggetti o importando fonti multimediali esterne. I lavori si possono condividere online.

· XLOGO, versione moderna del linguaggio di Papert.

· Mio robot, della Clementoni è un kit composto da microcontroller, led, servomotori e componenti vari che permettono di costruire un minirobot programmabile negli spostamenti e dotato di un metal detector.

· Robot programmabile Silverlit, della Dreoni giocattoli, in grado di rilevare ostacoli e di evitarli, e di essere programmato in modalità vigilanza e di interagire con gli altri robot e con un suo mini robot compagno.

· LEGO Mindstorms, che con un software di programmazione basato sulla GUI ROBOLAB, può essere usato per costruire modelli di sistema integrati con parti elettromeccaniche controllate da computer.

· Microcontroller Arduino, programmabile mediante un semplice software open source, che può essere collegato a vari sensori e motori e consentire con una minima spesa la realizzazione di un vero robot mobile.

· Datalogger Theremino, un sistema di acquisizione dati semplice ed economico

· PC, LIM e tablet.

· Motori DC a basso voltaggio.

· Sensori di vario tipo, led e altri componenti elettronici.

· Stampante 3D.

· Robot per le pulizie.

· Materiali di recupero.

Tempi di attuazione

Il progetto prevede attività di vario tipo che verranno svolte in diversi momenti dell’intero anno scolastico:

· Attività in orario antimeridiano, inserite nel normale curricolo, utilizzando eventualmente anche la quota locale del 20% del monte ore.

· Attività in orario pomeridiano, presumibilmente con gruppi di alunni della scuola secondaria di I grado.

Monitoraggio e documentazione

Gli interventi di cui sopra saranno regolarmente pianificati, documentati e monitorati:

· Il docente incaricato presenterà periodicamente al Dirigente, al Collegio dei Docenti e al Consiglio di Circolo piani di intervento e rapporti circa l’attuazione e la ricaduta delle attività preventivate.

· Il Collegio dei docenti si pronuncerà sulla validità delle iniziative e formulerà proposte affinché l’uso delle risorse possedute risulti sempre più funzionale.

· Si effettueranno indagini tra gli alunni e i genitori, per verificarne il livello di motivazione e il grado di coinvolgimento, nonché per accoglierne desideri e proposte.

· Verrà chiaramente preso in esame il materiale prodotto e ne verrà verificata la qualità dal punto di vista della sua significatività e della sua valenza oggettiva.

· I risultati e le ricadute verranno pubblicizzate attraverso incontri pubblicazioni.

Prime esperienze (2016)

AIDE 1

AIDE 2

AIDE 3

AIDE 4

AIDE impara

Lista comandi di AIDE

Assemblaggio di Mio Robot della Clementoni

Programmazione del robot

Partenza del robot

Le attività con Scrach - 2017/2018

(anche per altri progetti)

"Disegnogrammi"

Altri personaggi

Sfondi 3D

Prime implementazioni