LEZIONI E FORMAZIONE DAI DOCENTI PER I DOCENTI

Scopri WeTurtle, la community di educatori dove trovare e condividere risorse innovative

home - progetti - Una classe intelligente con Scratch 3

Una classe intelligente con Scratch 3

Questo progetto prende spunto dall’attività Smart Classroom proposta da Dale Lane (con licenza CC BY-NC-SA 4.0) all’interno della piattaforma Machine Learning for Kids. Partendo dalla scheda proposta da Dale, in questo progetto troverete spunti e indicazioni su come realizzare...

  by Lorenzo Cesaretti
CATEGORIA
Coding
Scratch

Introduzione

Questo progetto prende spunto dall’attività Smart Classroom proposta da Dale Lane (con licenza CC BY-NC-SA 4.0) all’interno della piattaforma Machine Learning for Kids.
Partendo dalla scheda proposta da Dale, in questo progetto troverete spunti e indicazioni su come realizzare una prima attività di Machine Learning in classe.

In questo progetto l’obiettivo sarà realizzare una classe virtuale intelligente in grado di reagire a ciò che le verrà detto. Gli studenti saranno in grado di controllare i dispositivi virtuali all’interno della classe dando loro dei comandi. Per iniziare, programmeranno una serie di regole (usando l’if-then-else come struttura di controllo) così da gestire i comandi, e impareranno quanto questo approccio non sia efficace.
In seguito, insegneranno al computer a riconoscere comandi per dispositivi differenti, fornendo vari esempi per ognuno e applicando un approccio tipico del machine learning.
Questa attività può essere realizzata (nelle sue parti più semplici) a partire da una classe quinta primaria.
Consiglio di proporre gli spunti di maggiore complessità a studenti di scuola secondaria (primo e secondo grado in base al livello di difficoltà).

Il progetto può essere realizzato con Scratch 3 in circa 2 lezione da 90 minuti ciascuno. Ovviamente al termine delle 2 lezioni si potrebbe assegnare agli studenti un progetto da sviluppare in ulteriori ore di progettazione e sviluppo.

Vuoi leggere la lezione quando vuoi, anche offline?

Obiettivi e Competenze

  • Saper costruire un algoritmo basato su delle regole (sfruttando l’esecuzione condizionale di istruzioni, cioè la struttura if-then-else);
  • Comprendere i meccanismi alla base del machine learning;
  • Saper costruire un algoritmo basato su un approccio machine learning supervisionato;
  • Saper correggere eventuali errori all’interno dell’algoritmo machine learning supervisionato.
Perché è importante introdurre le basi dell’intelligenza artificiale e del machine learning? Lo spieghiamo in questo articolo.
Vuoi ripassare la differenza tra intelligenza artificiale, machine learning e deep learning? Ecco il contenuto che fa per te.

Strumenti

  • Scratch 3
  • Piattaforma Machine Learning For Kids
  • API IBM Watson

Metodologia didattica

Ancora non sei iscritto? Diventa una tartaruga digitale con centinaia di docenti da tutta Italia.

ISCRIVITI SUBITO!

Linee guida delle attività

Prerequisiti

Per poter proporre un progetto di questo tipo, l’insegnante educatore deve necessariamente aver svolto questi passaggi:

  • Iscrizione alla piattaforma Machine Learning For Kids: dopo esserti collegato al sito, clicca su Log In, Sign up, poi scegli l’opzione “A teacher or leader of a coding club”; poi potrai decidere se creare una classe in modo autonomo (senza il supporto di Dale) oppure se inviare via mail come informazioni il numero di studenti della tua classe e il nome della scuola / gruppo, chiedendo a Dale di impostare per te l’account classe. Se scegli questa seconda opzione devi solo aspettare che ti venga comunicata l’avvenuta creazione dell’account.
  • Se scegli di impostare autonomamente l’account classe, dovrai creare un account su IBM Cloud, creare le chiavi per le API di Watson Cloud services necessarie ad addestrare i modelli di machine learning (cliccando qui trovi il tutorial in inglese per entrambi i passaggi) ed infine inserire le chiavi create all’interno della piattaforma Machine Learning for Kids. Questi passaggi potrebbero scoraggiarti, ma ti assicuro che vale la pena di provare questo tool per dare la possibilità di capire meglio la progettazione dei sistemi intelligenti sempre più diffusi in tutto il mondo!
  • Per qualsiasi problema nell’eseguire questi passaggi scrivi a talent@weturtle.org e ti daremo supporto!
Una volta effettuati questi passaggi potrai creare le credenziali per ogni studente all’interno della tua area riservata di Machine Learning for Kids.
Passiamo ora all’attività didattica! Per questo prima progetto su come introdurre il machine learning, troverai tutti i passaggi da effettuare (quasi come se fosse un tutorial).

È preferibile che i tuoi studenti abbiamo una conoscenza base del software Scratch, così da poter sperimentare liberamente con i nuovi blocchi che presenteremo di seguito.

Lezione 1

Potresti introdurre questa attività riflettendo con i tuoi studenti sull’espressione intelligenza artificiale, magari proponendo un brainstorming e raccogliendo le idee dei ragazzi. Potresti mostrare loro anche alcuni video di sistemi intelligenti moderni, come ad esempio Amazon Echo o Google Home (per chi ha visto Mamma ho perso l’aereo molto divertente il video con Macaulay Culkin).

Come fanno questi sistemi ad essere così intelligenti? Come fanno a comprendere la variabilità del linguaggio umano? Anche queste domande potrebbero essere uno spunto interessante per una riflessione iniziale prima di mettere mano al pc.

Presenta successivamente l’obiettivo di questa attività ai tuoi studenti: creare un assistente virtuale per la classe, che riesca a riconoscere i messaggi che gli vengono inviati gestendo alcuni dispositivi (un ventilatore ed una lampada).

Ecco passo-passo la procedura da realizzare durante la prima lezione; te la proponiamo sotto forma di tutorial, in modo che quando vorrai riproporre l’attività con gli studenti non avrai dubbi sui passaggi da effettuare!

1- Collegati al sito https://machinelearningforkids.co.uk/
2- Clicca su “Get started”
3- Clicca su “Log In” e inserisci il tuo username e la tua password (dovrai aver fornito ai tuoi studenti le credenziali di accesso).
4- Clicca su “Projects” (Progetti) sulla barra Menù in alto
5- Clicca sul bottone “+ Add a new project” (Aggiungi un Nuovo progetto).
6- Denomina il tuo progetto “smart classroom” (o “classe intelligente”) e imposta su “riconoscimento” (Recognising) l’opzione “text” (testo). Clicca su “Create” (Crea).

7- Dovresti vedere “smart classroom” (o “classe intelligente”) nella lista dei progetti. Clicca su di esso.

8- Iniziamo con un progetto già impostato in Scratch. Clicca su “Make”.

9- Clicca su “Scratch”
10- Clicca su “Scratch by itself”. La pagina ti avvertirà che il tuo progetto non è ancora pronto per essere utilizzato, ma cliccando su “Scratch by itself” si aprirà Scratch.
11. Carica il template Smart Classroom. Clicca Project templates e scegli Smart classroom.

12- Clicca sullo sprite “Classroom”, affinchè sia selezionato, come nella figura sotto.

13- Clicca sul tab Scripts e chiedi di costruire una sequenza che in base al comando inserito dall’utente, accenda o spenga il ventilatore e la lampada. Il modo più semplice è quello che vedi in figura seguente. Usando il blocco “invia a tutti …” con dei messaggi diversificati, si avviano o si interrompono delle animazioni caratteristiche per ognuno degli elementi presenti sullo stage.

14- Salva il progetto. Clicca su File, Save Project per salvare il progetto in un file nel tuo PC.
15- Clicca sulla bandiera verde per effettuare dei test.

16- Scrivi dei messaggi e osserva la reazione del sistema!
Prova “Accendi la lampada”, “Spegni la lampada”, “Accendi il ventilatore”, e “Spegni il ventilatore”. Dovrebbe funzionare correttamente. Scrivi qualche altro comando, e nulla dovrebbe accadere! Anche se commetti un piccolo errore nello scrivere le parole, non otterrai nulla.

Che cosa abbiamo fatto finora?
Hai programmato la classe virtuale per reagire a comandi usando un approccio basato su semplice regole.  Se volessi gestire comandi caratterizzati da diverse espressioni, dovresti inserire nuovi blocchi “se … allora …”.
Il problema è che avrai bisogno di predire esattamente quale comando riceverà l’assistente intelligente. Elencare ogni possibile messaggio potrebbe impegnarti all’infinito (e non abbiamo così tanto tempo). Ora, proveremo un approccio migliore: insegnare al computer a riconoscere i comandi da solo.

Lezione 2

1- Torna di nuovo su Machine Learning for Kids, effettua il log in, clicca su Projects e poi “smart classroom” (o il nome del progetto che avevi assegnato).
2- Dobbiamo raccogliere alcuni esempi per addestrare il computer. Clicca sul bottone Train.

3- Clicca su “+ Add new label” e scrivi “fan on” (“ventilatore acceso”).  Clicca di nuovo, e crea un secondo gruppo chiamato “fan off” (“ventilatore spento”). Clicca di nuovo, e crea un terzo gruppo “lamp on” (“lampada accesa”). Clicca di nuovo, e crea un quarto gruppo “lamp off” (“lampada spenta”).

4- Clicca su “Add example” all’interno del gruppo “fan on”, e scrivi un modo per chiedere che il ventilatore venga acceso. Ad esempio, potresti scrivere “Per favore potresti accendere il ventilatore”.
5- Clicca su “Add example” all’interno del gruppo “fan off”, e scrivi un modo per chiedere che il ventilatore venga spento. Ad esempio, potresti scrivere “Vorrei spegnere il ventilatore ora”
6- Fai la stessa operazione per I gruppi “lamp on” e “lamp off”.
7- Ripeti gli step 4-6 finché non avrai aggiunto almeno sei esempi per ogni gruppo.
Sii creativo!
Prova a pensare a più modi possibili per esprimere lo stesso comando.

  • Per “fan on” potresti lamentarti per il troppo caldo.
  • Per “fan off” potresti lamentarti per il troppo freddo.
  • Per “lamp on” potresti lamentarti per il buio o per il fatto che non vedi.
  • Per “lamp off”potresti lamentarti per la troppa luce.

8- Clicca sul link “< Back to project”, poi clicca “Learn & Test
9- Clicca sul bottone “Train new machine learning model”. A patto che avrai raccolto sufficienti esempi, il computer dovrebbe imparare come riconoscere nuovi comandi dagli esempi che avevi scritto.

10- Aspetta che l’addestramento sia completo. Potrebbe impiegare uno o due minuti. Mentre aspetti, prova a completare il quiz sul machine learning a scelta multipla sul fondo della pagina.
11- Quando l’addestramento sarà completo, comparirà una casella di Test. Prova a testare il tuo modello di machine learning per verificare ciò che è stato imparato dal tuo computer. Scrivi un commando e premi INVIO. Dovrebbe essere riconosciuto correttamente come uno dei 4 comandi.
Prova con esempi che non avevi inserito nel PC in precedenza.
Se non sei soddisfatto di come il computer riconosce i comandi, torna allo step 4, e aggiungi nuovi esempi.  Assicurati di ripetere lo step 9 per addestrare il modello con i nuovi esempi!

12- Clicca sul link “< Back to project

Che cosa abbiamo fatto finora?
Abbiamo iniziato ad allenare un computer a riconoscere comandi.
Invece di provare a scrivere regole che siano in grado di fare ciò, lo stai realizzando raccogliendo esempi. Questi esempi vengono utilizzati per addestrare un modello machine learning.
Questa tecnica viene chiamata “supervised learning” (apprendimento supervisionato) perché stai supervisionando l’addestramento del computer (sei tu che fornisci gli esempi corretti al PC per ogni gruppo).
Il computer impara dai pattern (ricorrenze) che riconosce negli esempi che gli hai dato, come la scelta delle parole, e il modo in cui sono strutturate le frasi. Queste ricorrenze verranno utilizzate per renderlo capace di capire vari messaggi.

13- Clicca su “Make
14- Clicca sul bottone “Scratch 3”

15- Clicca su “Open in Scratch 3”. Questa pagina contiene istruzioni (in inglese) su come usare nuovi blocchi in Scratch.

16- Dovresti vedere nuovi blocchi nella categoria “More blocks” del tuo progetto.

17- Carica il progetto che avevi salvato in precedenza. Clicca su File, Load Project e scegli il percorso nel quale hai salvato il progetto della lezione 1. Clicca OK quando ti verrà chiesto di sostituire il progetto attuale.

Alcuni suggerimenti importanti:

  • Maggiore è il numero degli esempi che inserisci, migliore sarà il modo in cui il computer riconosce le tue istruzioni.
  • Prova ad inserire più o meno lo stesso numero di esempi per ogni commando. Se hai molti esempi per un comando, e non per gli altri, il computer potrebbe imparare che quel comando è più probabile, e così influenzerai il modo con cui riconosce i messaggi.
  • Prova a proporre una grande numero di differenti tipi di esempi. Ad esempio, assicurati di aver incluso alcuni esempi molto lunghi ed alcuni molto brevi.
18- Clicca sul tab “Scripts”, e crea uno script che possa sfruttare il modello di machine learning anziché le regole progettate in precedenza. Il blocco “recognise text … (label)” è un nuovo blocco aggiunto all’interno del tuo progetto. Se gli dai in input del testo, ti restituirà il nome di uno dei quattro gruppi (quello a cui appartiene il testo inserito) basandosi sull’addestramento effettuato in precedenza.

19- Clicca sulla bandiera verde per verificare il comportamento del sistema.

20- Fai dei test sul tuo progetto! Inserisci un commando e premi INVIO. Il ventilatore e la lampada dovrebbero reagire alle tue istruzioni.
Assicurati di inserire e provare messaggi che non avevi incluso nel training.

21- Salva il progetto. Clicca File, Save Project .

Che cosa abbiamo fatto finora?
Hai modificato il tuo assistente di classe intelligente in Scratch, utilizzando il machine learning invece di un approccio basato su regole (come in precedenza).  Addestrare il computer ad essere in grado di riconoscere istruzioni in autonomia dovrebbe essere più veloce rispetto a creare una lista di ogni possibile comando che potrebbe essere inserito.
Maggiore è il numero degli esempi che fornisci, migliore dovrebbe essere il riconoscimento delle istruzioni da parte del PC.

22- Lascia Scratch aperto (ci torneremo a breve) ma torna alla pagina Learn & Test all’interno del Training tool.
Inserisci un messaggio che non ha nulla a che fare con lampade o ventilatore all’interno della casella di testo.
Ad esempio, “fammi un sandwich al prosciutto”.

23- Guarda il livello di confidenza (confidence score), e verifica che sia molto basso. Confrontalo con il valore che ottieni con il comando “accendi la lampada”.  Questo è il modo che il computer utilizza per dirti che non è molto sicuro di aver capito il comando, perché non assomiglia molto a ciò che aveva imparato dagli esempi.

24. Torna su Scratch. Puoi aprire il tuo progetto salvato se hai chiuso Scratch per sbaglio.

25. Modifica lo script dello sprite “classroom” in modo che utilizzi il livello di confidenza: se il livello di confidenza è troppo basso, il sistema si potrebbe scusare dicendo di non aver capito! Una possibile soluzione potrebbe essere la seguente:

26- Clicca sulla bandiera verde e ripeti il test. Prova inserendo comandi che non hanno niente a che fare con lampade o ventilatori. Prova chiedendo che qualcosa di diverso venga acceso o spento. Verifica che il tuo assistente reagisca nel modo corretto.
27- Salva il progetto.

Abbiamo finito

Idee ed estensioni

  • Invece di usare solo un ventilatore e una lampada, puoi inserire un altro dispositivo per la tua classe intelligente?
  • 70% è il livello di confidenza corretto da utilizzare per decidere se il computer ha riconosciuto il comando? Sperimenta con differenti valori che funzionino bene per il tuo modello machine learning. Se scegli un numero troppo alto, il computer dirà “Scusa non sono sicuro di cosa hai detto” troppo spesso. Se scegli un numero troppo basso, il computer considererà corretti troppi messaggi che non c’entrano nulla.
  • Dai un’occhiata all’assistente intelligente che gli sviluppatori hanno creato per Amazon, Alexa: gli sviluppatori lo hanno realizzato allo stesso modo di come tu hai lavorato in questo progetto – creando etichette per i comandi che volevano riconoscere, e poi raccogliendo esempi di come questi comandi potrebbero essere formulati per addestrare Alexa ad essere in grado di riconoscere ed interpretare i vari messaggi. Trova un Alexa Skill che ti piace (nel sito qui sopra). Guarda i comandi che può riconoscere –tu come l’avresti addestrata?
Personalizza questa attività: per stimolare il problem solving non dare le soluzioni con gli script agli studenti! Per stimolare la creatività dopo aver fatto realizzare a tutti il progetto base, chiedi ad ogni gruppo delle personalizzazioni!

Riferimenti e links

Vuoi scaricare il tutorial originale in italiano rivolto agli studenti?
Clicca qui per il file in formato Microsoft Word (licenza CC BY-NC-SA 4.0).
Clicca qui per il file in formato PDF (licenza CC BY-NC-SA 4.0).

Grazie a Dale Lane per aver sviluppato la piattoforma Machine Learning for Kids e per aver preparato tante schede didattiche, tra cui Smart Classroom da cui questo progetto prende spunto!

Vuoi leggere la lezione quando vuoi, anche offline?



Hai letto la lezione? Che cosa ne pensi? Lascia un commento qui sotto!