Coding & Robotics Laboratorio di creatività digitale - Ing. Giuseppe Frisco - www.giuseppefrisco.altervista.org

Pagina creata da Alex Marra
 
CONTINUA A LEGGERE
Coding & Robotics Laboratorio di creatività digitale - Ing. Giuseppe Frisco - www.giuseppefrisco.altervista.org
Coding & Robotics
   Laboratorio di creatività digitale

             Ing. Giuseppe Frisco

       www.giuseppefrisco.altervista.org
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
Coding & Robotics Laboratorio di creatività digitale - Ing. Giuseppe Frisco - www.giuseppefrisco.altervista.org
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
Coding & Robotics Laboratorio di creatività digitale - Ing. Giuseppe Frisco - www.giuseppefrisco.altervista.org
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
Coding & Robotics Laboratorio di creatività digitale - Ing. Giuseppe Frisco - www.giuseppefrisco.altervista.org
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
Coding & Robotics Laboratorio di creatività digitale - Ing. Giuseppe Frisco - www.giuseppefrisco.altervista.org
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
Coding & Robotics Laboratorio di creatività digitale - Ing. Giuseppe Frisco - www.giuseppefrisco.altervista.org
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
Coding & Robotics Laboratorio di creatività digitale - Ing. Giuseppe Frisco - www.giuseppefrisco.altervista.org
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
Coding & Robotics Laboratorio di creatività digitale - Ing. Giuseppe Frisco - www.giuseppefrisco.altervista.org
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
Coding & Robotics Laboratorio di creatività digitale - Ing. Giuseppe Frisco - www.giuseppefrisco.altervista.org
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