Coding & Robotics Laboratorio di creatività digitale - Ing. Giuseppe Frisco - www.giuseppefrisco.altervista.org
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Coding & Robotics Laboratorio di creatività digitale Ing. Giuseppe Frisco www.giuseppefrisco.altervista.org
Sommario Premessa .................................................................................................................... 3 Approccio .................................................................................................................... 4 Contesto di riferimento .............................................................................................. 4 Perché insegnare la programmazione del computer ai Bambini? .............................. 5 Scratch 2.0................................................................................................................... 6 Destinatari .................................................................................................................. 6 Materiali ..................................................................................................................... 6 Risorse online ............................................................................................................. 6 Modulo didattico ........................................................................................................ 7 Risorse online ........................................................................................................... 18 Ing. Giuseppe Frisco|mbot (STEM Educational Robot Kit for Kids) Pag. 2
Premessa L’integrazione fra tecnologia e strumenti di uso quotidiano ha ormai raggiunto livelli di diffusione molto ampi. Già oggi, e ancor più nel prossimo futuro, tale integrazione “integra” computer e microprocessori negli oggetti, anche quelli più impensati, tanto da far perdere di vista il concetto di macchina “che può fare tutto” (All- purpose, era la A nella sigla che componeva il nome del vecchio linguaggio BASIC), e da fargli assumere un corpo (o meglio una serie di corpi, a seconda del caso), che avvalendosi di sensori e di attuatori gli consentono di entrare in diretta relazione con l’ambiente esterno. Questo continuo divenire rende il robot/computer simile ad un organismo naturale nel suo funzionamento (androide). Il computer, infatti, entra nell’ambiente che ci circonda, sia domestico, sia lavorativo; si evolve lasciando la sua attuale visione di macchina che produce un output riconducibile al programma che lo ha generato per una nuova realtà il cui comportamento non è il semplice risultato diretto del sistema, ma è la risultante di una continua interazione tra il sistema e l’ambiente (feedback). La macchina quindi si trasforma in un sistema dinamico complesso i cui risultati non sono completamente prevedibili né riconducibili completamente agli elementi che li hanno generati. Questa continua evoluzione ha come fulcro l’apporto umano, che determina i parametri entro i quali tale tecnologia possa evolversi. Questo genera problematiche e opportunità legate al processo educativo, che dovrà essere tale da formare persone in grado di far fronte alla tecnologia in evoluzione, non solo in maniera passiva (il semplice utilizzo), ma anche in maniera attiva, dando loro anche gli strumenti necessari per poter contribuire allo sviluppo tecnologico. Porsi in quest’ottica non è semplice: viviamo nell’epoca dei “digital natives”, come nel 2001 Prensky definì i ragazzi delle nuove generazioni: non tanto una generazione “nata imparata” rispetto alle tecnologie, quanto ragazze e ragazzi predisposti ad un apprendimento informale e poco mediato, che passa attraverso l’interazione con le tecnologie, abituati ad imparare da soli, abbandonando la conoscenza di ciò che è sotto la superficie a vantaggio dell’azione finale. Un’educazione indirizzata “all’agire” permette agli studenti non solo l’acquisizione di competenze tecniche legate alle macchine (programmazione, meccanica, elettronica, elettrica, comunicazione, gestione di reti…), di competenze legate alle scienze biologiche, biomeccaniche, fisiologiche, fisiche, matematiche, ma anche la promozione di attitudini creative, la capacità di comunicare e di cooperare lavorando in gruppo, perché dietro la macchina c’è sempre l’uomo. Ing. Giuseppe Frisco|mbot (STEM Educational Robot Kit for Kids) Pag. 3
Approccio Sappiamo che gli argomenti e i temi che si tratteranno, ahimè, non hanno molto spazio nell’insegnamento scolastico. Altresì sappiamo anche che il mondo non aspetta, e sempre più Paesi stanno inserendo la programmazione e la tecnologia nei programmi scolastici fin dai primi anni. E proprio per questo motivo che bisogna proporre nuove idee. Imparare mentre ci si diverte è la più potente motivazione per bambini e ragazzi alla conoscenza dell’ “inesplorato”. La logica del “coding” prevede la collaborazione nella soluzione di problemi, per il raggiungimento dei proprio obiettivi. Nel film Guerre stellari il maestro Yoda diceva: c’è fare. O non fare. Non c’è “provare”. Si impara facendo, sbagliando, rifacendo, discutendo in gruppo cosa non ha funzionato. Il gioco è la cornice ideale per l’apprendimento; ma lo stesso gioco ha bisogno di regole da rispettare, obiettivi da raggiungere, risultati da confrontare. Lavorare con una didattica attiva, in piccoli gruppi (mantenendo un rapporto massimo di 10:1 tra partecipanti e conduttore dell’attività): dal problem solving alla capacità di sviluppare un progetto insieme, sono le capacità più preziose. Contesto di riferimento Se la tecnologia è alla base della nostra vita quotidiana, quello che si vuole ottenere è insegnare ai ragazzi a "fare tecnologia" e non solo a usarla. Creare con la tecnologia divertendosi, stimolando la creatività, la logica, l'autonomia ma anche la capacità di raggiungere un obiettivo e lavorare in team. Imparare a programmare un computer non è soltanto l’acquisizione di una competenza e di una forma mentis che possono costituire una risorsa per la vita professionale dell’individuo; è anche, e soprattutto, l’opportunità di avvicinarsi all’universo digitale da un punto di vista consapevole, che non delega ad altri la scelta degli strumenti più opportuni per la propria crescita intellettuale ed espressiva. L’introduzione alla programmazione è inoltre una formidabile palestra di logica, che guida il ragazzo attraverso un percorso che passa per l’analisi, per la scomposizione dei problemi, per la verifica dei risultati, per l’organizzazione del pensiero. La realizzazione di un software o di un progetto di elettronica o di robotica, sono senza dubbio processi complessi, ma imparare a gestire la complessità rafforza le proprie capacità progettuali in ogni campo. Ing. Giuseppe Frisco|mbot (STEM Educational Robot Kit for Kids) Pag. 4
Perché insegnare la programmazione del computer ai Bambini? I motivi sono molteplici: Comunicare con le macchine Essere in grado di far eseguire ad un computer compiti complessi è una delle possibilità più vicine al concetto di “super poteri”. Fornisce al ragazzo nuove competenze per generare progetti e idee potenzialmente visibili da milioni di persone. Approccio non passivo ma attivo Pensare “tanto lui è un nativo digitale e non avrà problemi” è la cosa più sbagliata che si possa fare. Un bambino deve rendersi subito conto che il computer è un oggetto stupido che risponde a comandi intelligenti (ovvero quelli che IL BAMBINO decide), e che solo imparando quali sono i comandi, qual è la loro giusta sequenza, qual è il filo logico da seguire, otterrà gli effetti ricercati. Programmare un computer “insegna a pensare”. Videogiochi che passione Ogni genitore ha visto il proprio figlio passare ore davanti ad un videogame. Scratch 2.0 costituisce la possibilità di sostituire il gioco di altri e stimola il bambino a realizzare in autonomia il proprio gioco. L’apprendimento avviene pertanto realizzando videogame e animazioni, e nel frattempo sviluppando, sullo sfondo, le capacità logiche e progettuali necessarie. E’ semplice come imparare un linguaggio L’approccio con la tecnologia attraverso la “programmazione visuale” mette un bambino nelle condizioni di attivare logica matematica e di problem solving prima ancora di imparare a scrivere. Familiarità con la tecnologia Il bambino entra in contatto con la tecnologia sotto forma di gioco. Apprezzerà da subito le potenzialità di un computer concepito come uno strumento a sua disposizione. Si avvicinerà con curiosità al mondo dell’informatica, probabilmente unica certezza del suo futuro sviluppo professionale. Abbiamo bisogno di programmatori! Le previsioni indicano una crescita costante di ricerca di programmatori negli anni a venire. Senza contare che le professioni richieste dal mercato attuale non esistevano 10 anni fa. E’ indispensabile pertanto predisporsi rispetto ai trend futuri e attrezzarsi di conseguenza. Startup Saper programmare significa poter realizzare i Facebook o Google del futuro. Senza necessità di intermediari. Ing. Giuseppe Frisco|mbot (STEM Educational Robot Kit for Kids) Pag. 5
Scratch 2.0 Scratch 2.0 è un nuovo linguaggio di programmazione che rende semplice creare storie interattive, giochi e animazioni, e condividere le tue creazioni con gli altri del web. Scratch è sviluppato dal Lifelong Kindergarten research group dei Media Lab dell'MIT (http:// scratch.mit.edu). Il gruppo sviluppa nuove tecnologie che, seguendo lo spirito della costruzione e della pittura con le dita usate alla scuola materna, espandono le possibilità di disegnare, creare e imparare. Il software di Scratch è completamente gratuito e il codice sorgente è disponibile con licenza Scratch License. I loghi di Scratch sono di proprietà del MIT. GUARDA DENTRO Accedendo al sito di Scratch non è soltanto possibile giocare a uno degli oltre 4 milioni di giochi salvati sulla piattaforma, ma cliccando sul bottone “Guarda dentro” è possibile vedere con che codice sono stati realizzati. REMIX Una volta osservato con che codice sono stati realizzati è possibile, cliccando sul bottone “remix” iniziare la propria versione sviluppando da giochi di altri bambini. Destinatari Bambini della scuola primaria da 6 a 14 anni, possibilmente divisi su due fasce di età 6-10 anni (elementari) e 11-14 anni (medie). Per ogni gruppo viene adottato un modulo educativo differente. Per una migliore realizzazione del laboratorio i gruppi di bambini non dovrebbero superare le 7/10 unità. Materiali Per partecipare al corso è necessario disporre di un PC portatile/desktop abilitato alla connessione wi-fi. Non è necessaria particolare potenza di calcolo e può essere usato un sistema operativo Mac, Windows o Linux. Risorse online Su internet sono disponibili risorse di ogni tipo su Scratch 2.0. Il sito ufficiale prevede la una sezione per educatori e una per genitori. Sito ufficiale: scratch.mit.edu Ing. Giuseppe Frisco|mbot (STEM Educational Robot Kit for Kids) Pag. 6
Modulo didattico Il corso è stato organizzato in 5 sessioni da 2 ore l’una. L’articolazione delle varie attività viene modulata dal docente per ciascuna lezione per un massimo di due ore. Viene di seguito riportata l’attività preliminare di presentazione del corso. Presentazione Teoria: - Breve presentazione dei materiali e delle finalità del corso - Introduzione ai concetti di “Programmazione “ , “Linguaggio” e “Robotica” - Introduzione al montaggio del robot "mBot" (basato su Arduino); - Presentazione del linguaggio C++, Scratch 2.0 e mBlock; - Presentazione dei concetti fondamentali dell’ambiente di programmazione: lo stage, i comandi, l’area di sviluppo del codice Ing. Giuseppe Frisco|mbot (STEM Educational Robot Kit for Kids) Pag. 7
Modulo Didattico - lezione Ogni lezione è caratterizzata dalla seguente scaletta: Vengono di seguito riportate le attività previste. Primo giorno Teoria: Breve presentazione delle finalità del corso Introduzione ai concetti di “Programmazione “, “Linguaggio” e “Robotica” Informazioni sul montaggio in aula del robot "mBot" (basato su Arduino); Durante la prima lezione, un computer – robot verrà aperto al fine di mostrare i componenti principali che costituiscono un computer dal punto di vista hardware. L’obiettivo è spiegare loro che un computer contiene “sempre le stesse cose”. Pratica: Montaggio in aula del robot "mBot" (basato su Arduino). Ing. Giuseppe Frisco|mbot (STEM Educational Robot Kit for Kids) Pag. 8
Primo gioco Realizzazione di un gioco costituito da uno squalo che mangia il pesciolino che, in maniera randomica, nuota all’interno del gioco. Lo squalo deve essere mosso dal giocatore attraverso le frecce della tastiera. Quando il pesciolino viene mangiato deve emettere un suono e visualizzare un testo sullo schermo. Concetti affrontati: - Creazione di nuovi Sprite o utilizzo degli sprite della libreria (in Scratch ogni oggetto a cui assegnare istruzioni si chiama sprite) - Movimento degli sprite attraverso tasti prestabiliti (interazione) o attraverso istruzioni precise - Principi di interazione con l’utente (tasti, mouse, videocamera) - Introduzione all’utilizzo dei suoni Ing. Giuseppe Frisco|mbot (STEM Educational Robot Kit for Kids) Pag. 9
Secondo gioco Realizzazione di un gioco che prevede una gara di macchine che vanno ad una velocità differente decisa dal computer. La macchina che vince deve dichiarare di aver vinto. Concetti affrontati: - Creazione di costumi - Utilizzo di sfondi differenti - Assi cartesiani - Introduzione del concetto di ciclo - Introduzione al concetto di valore generato dal computer Esercizi a casa - volontario: - Migliorare il primo gioco aggiungendo altri pesciolini - Migliorare il secondo gioco inserendo nuove possibilità a piacere Ing. Giuseppe Frisco|mbot (STEM Educational Robot Kit for Kids) Pag. 10
Secondo giorno Teoria: Presentazione dei concetti fondamentali dell’ambiente di programmazione: lo stage, i comandi, l’area di sviluppo del codice Presentazione del sito di Scratch relativamente alla fase di registrazione e di creazione di un nuovo gioco Concetto di open source Introduzione a 360 gradi della piattaforma Scratch. Illustrazione delle librerie dei progetti degli altri. Concetto di remix, preferiti e salvataggio dei progetti Pratica: Primo gioco Programmare un frigorifero che contiene diversi sprite. Alla pressione di un numero da 1 a 9 deve succedere qualcosa agli alimenti del frigo. Saranno i bambini a decidere le azioni. Concetti affrontati: - Utilizzo della libreria di Scratch e disegno di nuovi sprite - Gestione delle dimensioni - Gestione dell’interazione con l’utente - Utilizzo dei suoni - Comunicazioni di espressioni di testo da parte degli sprite Ing. Giuseppe Frisco|mbot (STEM Educational Robot Kit for Kids) Pag. 11
Secondo gioco Realizzare un programma che scelga in autonomia un numero da 1 a 100. Il programma deve continuare a chiedere al giocatori di indovinare il numero e segnalare soltanto se il numero scelto dal computer è più alto o più basso. Una volta indovinato deve comparire il messaggio a tutto schermo che segnala la vittoria. Concetti affrontati: - Gestione di sfondi differenti - Introduzione alle variabili - Gestione di cicli - Utilizzo di operatori numerici - Concetti base di algebra Esercizi a casa: - Migliorare il primo gioco a piacimento - Migliorare il secondo gioco inserendo un contatore che registra il numero di tentativi. Se il numero non viene indovinato in 3 tentativi il gioco deve indicare “GAME OVER” Ing. Giuseppe Frisco|mbot (STEM Educational Robot Kit for Kids) Pag. 12
Terzo giorno Teoria: - Introduzione del linguaggio mBlock (software di programmazione grafico drag-and- sviluppato su Scratch 2.0: un modo veloce ragazzi per programmare, controllare dinamicamente il robot) . - Navigazione tra i migliori progetti realizzati da altri ragazzi - Spiegazione dell’albero dei remix Pratica: Primo gioco Realizzazione di un gioco che prevede che un cavallo debba muoversi all’interno del gioco e recuperare le monetine senza che un mostriciattolo lo prenda. Questo gioco deve essere realizzato in coppia con un alto bambino. Concetti affrontati: - Progettazione su carta del videogioco - Gestione di x e y - Interazione tra sprite e passaggio di variabili - Interazione con l’utente tramite tasti multipli Ing. Giuseppe Frisco|mbot (STEM Educational Robot Kit for Kids) Pag. 13
Secondo gioco Realizzazione di pong. Una barra colorata, mossa con il mouse o con i tasti, deve intercettare degli sprite che cadono dal basso. Se presi devono tornare verso l’alto. Un contatore deve registrare il numero di oggetti caduti e segnalare la fine del gioco quando il contatore arriva a dieci. Concetti affrontati: - Utilizzo delle variabili - Introduzione al concetto di clonazione dello sprite - Introduzione al concetto di funzione - Introduzione al concetto di cicli continui - Utilizzo della webcam - Sensori di movimento - Sensori di rumore - Operatori numerici (addizioni, sottrazioni, maggiore, minore, ecc) Esercizi a casa (volontario): - Realizzare un biglietto di auguri per il compleanno della mamma o del papà Ing. Giuseppe Frisco|mbot (STEM Educational Robot Kit for Kids) Pag. 14
Quarto giorno Teoria: La quarta lezione è dedicata alla robotica, uno dei trend tecnologici che senza ombra di dubbio caratterizzerà fortemente la tecnologia degli anni a venire. In questo modulo utilizzeremo uno strumento a supporto speciale: il robot mbot con componenti speciali (motori, sensori, ecc) programmabili con Scratch 2.0/mBlock. mbot (STEM Educational Robot Kit for Kids)è un kit contiene una base di appoggio, una base USB che si collega con il cavo al computer, ruote dentate, pulegge e ingranaggi, un motore e due sensori (di movimento e di inclinazione). mbot permette di creare modelli collegati al computer che fanno dei movimenti ma utilizzando gli appositi sensori. Oltre ai vari pezzi per costruire gli oggetti più vari e simpatici, è presente un software (a blocchi), molto semplice e intuitivo, che permette di effettuare la programmazione mBlock. Pratica: Primo gioco Il terzo gioco consiste in un'astronave in grado di muoversi in tutte le direzioni ruotando anche su se stessa. Scopo del gioco, sparare e distruggere tutti gli asteroidi salendo di livello e di difficoltà prima dello scadere del tempo. Ing. Giuseppe Frisco|mbot (STEM Educational Robot Kit for Kids) Pag. 15
Concetti affrontati: - Uso di variabili in diversi campi - Clonazione controllata dello sprite - Scambio di messaggi per controllare l'esecuzione del codice - Utilizzo di sprite con funzione proiettile - Logica di gioco più complessa Secondo gioco Realizzare un labirinto. Concetti affrontati - Sensori di movimento - Sensori di rumore - Operatori numerici (addizioni, sottrazioni, maggiore, minore, ecc) Esercizi a casa (volontario): - Realizzare un proprio gioco con due player Ing. Giuseppe Frisco|mbot (STEM Educational Robot Kit for Kids) Pag. 16
Quinto giorno - Programmazione robot mBot - Collegamento computer/robot - Trasferimento coding al microprocessore - pilotare il robot - Programmazione avanzata. Come vengono realizzati i siti web e i giochi - Illustrazione di piattaforme per imparare a programmare in autonomia Ing. Giuseppe Frisco|mbot (STEM Educational Robot Kit for Kids) Pag. 17
Risorse online www.giuseppefrisco.altervista.org Il sito del docente scratch.mit.edu Il sito ufficiale di Scratch llk.media.mit.edu Il sito ufficiale dei creatori di Scratch 1^ Edizione del corso Per informazioni o suggerimenti: giuseppe.frisco@gmail.com Ing. Giuseppe Frisco|mbot (STEM Educational Robot Kit for Kids) Pag. 18
Puoi anche leggere