Risorse per fare coding a scuola: Google Computer Science Education

google-CS-education

Google ha appena lanciato un nuovo sito dedicato al mondo scuola: Google Computer Science Education una collezione di risorse e applicativi gratuiti per ogni livello di scuola che a mio avviso dovrebbe essere presa in seria considerazione da tutti i colleghi che intendono realizzare percorsi di coding con i propri allievi.

Allinterno troverete programmi di apprendimento e tool noti come: Blockly, Blockly Games, Coder e Pencil Code e proprio su questultimo vi consiglio di consultare le risorse e il manuale che oltre ad essere un libro uno splendido corso di coding, quindi se necessitate di un percorso didattico gi pronto per voi e i vostri allievi Pencil Code pu essere una buona soluzione.

Oltre ad imparare l’informatica, anche possibile utilizzare questo portale per esplorare le opportunit di borse di studio oppure dal link: Access Career Opportunities verificare le opportunit di lavoro offerte da Google.

Buon lavoro 🙂

Servono pomodori per la progettazione didattica?

Ecco il mio primo articolo da infortunato, bloccato letto per la rottura del tendine, situazione per certi versi interessante perché mi porta a riflettere su domande e dubbi dei tantissimi colleghi che ho incontrato sul mio cammino durante le attivit per la formazione dei neo immessi in ruolo e non solo degli scorsi mesi. Riflettevo che diversi lustri fa, quando ero un giovanissimo insegnante, nessuno mai mi parlò di tecniche di organizzazione, di modalità di comunicazione e apprendimento (dell’insegnante) per rendere più efficace il proprio lavoro.

Ma perché dico tutto ciò?
Durante uno degli ultimi incontri di formazione ho dato indicazioni su modalità di organizzazione e progettazione del proprio lavoro affermando più volte che prima di procedere in qualsiasi azione di progettazione didattica per i nostri allievi bisogna imparare ad organizzarsi, strutturare progetti ed imparare come progettare insieme ad altre persone.

Ma cosa centra lorganizzarsi con le tecnologie didattiche?

Nel mio Starter Kit del docente hi tech mostro strumenti di base che permettono proprio come imparare l’uso delle tecnologie didattiche, però l’azione dell’imparare richiede tempo e noi oltre ad essere docenti siamo mamme e papà con una nostra vita privata quindi per massimizzare la felicità di tutti, a scuola ed in famiglia è bene sfruttare il più possibile metodi e strumenti che evitanodi farci perdere tempo di lavoro.
Detta così qualcuno ora si aspetterebbe la soluzione a tutti i problemi del docente.

Non preoccupatevi non sarà così non sono così bravo, come gran parte degli esseri umani anche io ho imparato dai miei errori ed ho sperimentato tantissimo, soprattutto sul modo con cui mi relaziono ed imparo.

Ma da dove partire, come evitare distrazioni, rumore esterno che mi distoglie dalla mia azione?

Ho provato tantissimi strumenti, sono passato dalla progettazione con diagrammi di Gantt alla metodologia GTD, da qualche tempo uso la tecnica del pomodoro, tecnica che mi permette di avere intervalli di 25 minuti di concentrazione pura, azione che, se ci riflettete bene, è più o meno il tempo di attenzione pura (quando va bene) che hanno gli allievi in 1 ora di lezione frontale, almeno quella che in media ho rilevato.

Non ho inserito il metodo nel mio starter Kit, ma lo far in una prossima versione.

La tecnica del pomodoro è il modo con cui si svolge le mie attività di lavoro, a questa associo poi un’organizzazione dei progetti con metodologia GTD.

Ma cos’è la tecnica del pomodoro?

E’ un metodo molto semplice impiegato per la gestione del tempo, elaborato da Francesco Cirillo nel 1980.

Questa tecnica fa uso di un timer che scandisce intervalli di 25 minuti dedicati al lavoro, separati da brevi pause di 5 minuti.
Gli intervalli di lavoro da 25 minuti vengono chiamati pomodori.

Quindi concentrati sul lavoro senza nessuna distrazione (e-mail, messaggi WhatsApp, ecc..) con pause frequenti da 5 minuti, ciò dovrebbe aumentare lagilità mentale, riducendo la stanchezza (anche visiva).

Ovviamente i tempi indicati non sono obbligatori potrete voi stabilire la lunghezza degli intervalli, ma il mio consiglio quello di non aumentare il pomodoro, meglio se aumentate il tempo di pausa.

L’algoritmo si svolge in 5 passi, di cui 4 vengono iterati fino alla conclusione del lavoro.

Prerequisito aggiunto da me al metodo:

Definite con precisione lattività lavorativa (correggere i compiti, imparare ad usare un software ecc). Questa fase è importante perché un lavoro potrebbe essere suddiviso in sotto attività quindi identificate tutte le sottoattività, a questo punto il mio consiglio è quello di considerare ogni singola sottoattività come singolo lavoro in modo da semplificare il processo.

Passi da eseguire:

  1. Inizia l’attività.
  2. Impostate il timer a 25 minuti, in questo intervallo evitate il più possibile distrazioni. Se sopraggiunge una distrazione annotatela su un foglio e tornate subito a lavoro.
  3. Alla fine dei 25 minuti fermatevi prendetevi 5 minuti di pausa, non fate l’errore: “mi prendo altri 10 minuti per terminare questa fase fermatevi”.
  4. Dopo 4 pomodori (4 intervalli da 25 minuti) prendetevi una pausa più lunga, decidete voi, io in genere mi fermo per 15 min, il mio consiglio non superare i 30 min di pausa.
  5. Tornate al punto due azzerate il contatore dei pomodori, che ritorna ad 1 e procedete nuovamente.

Quindi un processo iterativo che terminaovviamente con la conclusione del lavoro.

On-line trovate numerosissimi software sia per computer desktop che per dispositivi mobili che vi consentono di utilizzare questa tecnica e vi aiutano a “scandire i pomodori. se volete saperne di pi consultate il sito ufficiale della tecnica del pomodoro.

Buon lavoro a tutti.

Raspberry Pi: come modificare il motore di ricerca di Epiphany da DuckDuckGo a Google

Poich ad uno studente bisognerebbe sempre dare una risposta dedicher alcuni post per rispondere a quesiti di carattere tecnico, sulluso di Arduino e di Raspberry Pi a cui non ho potuto dare esito durante levento che si svolto allIIS Cassata Gattaponi di Gubbio: C’era una volta un pezzo di legno.

Durante la lezione abbiamo visto come effettuare una prima configurazione del Raspberry Pi 3 e come utilizzarlo insieme ad Arduino per programmare DotBot. Lintera presentazione stata effettuata utilizzando un Raspberry Pi 3 collegato ad un proiettore su cui ho mostrato slide ed esempi e modalit di installazione e configurazione di sistema.
Durante luso a lezione alcuni hanno notato che effettuavo ricerche su internet usando Google direttamente inserendo le query di ricerca allinterno del campo dedicato allinserimento dellURL, funzionalit che non di default abilitata quando usate Epiphany (browser web che viene installato con Raspbian) che reindirizza invece su DuckDuckGo.

L’obiettivo che si vuole raggiungere quello indicato nelle due immagini che seguono:

search-engine-raspberry-pi-01

search-engine-raspberry-pi-02

Vediamo come effettuare la modifica del motore di ricerca.

Prima di procedere essenziale modificare il file: org.gnome.epiphany.gschema.xml utilizzando un qualsiasi editor di testo, io preferisco usare a terminale nano:

sudo nano /usr/share/glib-2.0/schemas/org.gnome.epiphany.gschema.xml

search-engine-raspberry-pi-03

Allinterno del file XML aperto individuate la parte di codice:


        'https://duckduckgo.com/?q=%s&t=raspberrypi'
        URL Search
        Search string for keywords entered in the URL bar.

Dovrete sostituire la linea:

'https://duckduckgo.com/?q=%s&t=raspberrypi'

con lURL che fa riferimento a Google:

'https://www.google.it/search?q=%s'

search-engine-raspberry-pi-04

ovviamente se desiderate potrete impostare qualsiasi motore di ricerca diverso da Google, dovrete ovviamente trovare la giusta URL e stringa di query.

Nella sezione che segue io ho preferito rendere commento la linea di codice originale per mantenere lo storico delle modifiche effettuate, il tutto diventer:



     'https://www.google.it/search?q=%s'
     URL Search
    Search string for keywords entered in the URL bar.

E importante che voi inseriate correttamente lURL con la parte finale “/search?q=%s che serve appunto per effettuare la ricerca del testo inserito, se non inserite questa ultima parte verrete semplicemente reindirizzati sulla home page di Google.

Dovrete ora eseguire tre passi per concludere tutta la fase di configurazione, a terminale digitate:

sudo apt-get install libglib2.0-bin

e successivamente:

sudo glib-compile-schemas /usr/share/glib-2.0/schemas

Riavviate Epiphany.

Buona sperimentazione a tutti 😃

Progetto automazione e internet of things con Raspberry Pi

iot433-01
E’ da tempo che sto pensando di ristrutturare il laboratorio di domotica che ho nella mia scuola, aggiungendo agli apparati di note aziende del settore, anche sistemi fortemente open e gratuiti a basso costo e facilmente espandibile in modo che gli studenti possano poi avere uno spettro pi ampio sulle tecnologie disponibili. Ovviamente il lavoro per riformulare la didattica in tal senso enorme e quindi il mio intento era quello di assegnare una serie di tesine di maturit ad allievi di buona volont 🙂 tesine da usare come mattoni di partenza per aggiungere nei prossimi anni scolastici argomenti nuovi.

Fortunatamente ho avuto l’occasione di conoscere alcune settimane fa via e-mail Rocco Musolino, un bravissimo programmatore che mi ha inviato la segnalazione del suo splendido lavoro, che parte della sua tesi di laurea magistrale e tratta appunto del controllo di sistemi a 433mhz mediante Raspberry Pi, quindi se desiderate sperimentare “un vero IoT” provate il lavoro di Rocco Musolino, io lo far certamente con le mie classi 4′ e 5′ elettrici.

iot433-02

Grazie quindi a Rocco, che mi ha inviato la sua recensione che vi allego, per vi invito alla consultazione del suo sito su cui trovate un tutorial ben dettagliato che vi guider passo passo all’installazione del sistema.

Nelle prossime settimane sul sito di Rocco Musolino il PDF della tesi con il lavoro completo.

iot433-03

Di seguito la sua presentazione.

Il progetto iot-433mhz nasce con l’idea di offrire una dashboard o “centralina” di controllo per sensori e attuatori funzionanti sulla frequenza 433mhz, gi largamente diffusi sul mercato.
La dashboard costruita usando interamente tecnologie per il Web e rilasciata sotto licenza MIT, open source.
Persino l’unit di controllo, che gestisce la comunicazione seriale con il gateway di trasmissione radio (un arduino connesso a dei moduli radio operanti a 433mhz) realizzato in Javascript e basato su Node.js.

Node.js garantisce alte performance e un supporto multipiattaforma: Windows, Mac, Linux. Quindi se sul vostro sistema possibile installare Node.js ed il suo gestore di pacchetti NPM, allora il software pu tranquillamente essere installato velocemente ed eseguito senza alcun problema.

Sulla pagina git ufficiale del progetto presente la documentazione che meglio spiega come effettuare l’installazione sui vari OS e le relative dipendenze necessarie.
Sulla pagina dedicata all’Hardware invece, una panoramica sui moduli radio consigliati e i dispositivi radio con cui il software compatibile.
Sono molti i dispositivi radio con cui possibile interagire, prese telecomandate, sensori di movimento piroelettrici e sensori per porte e finestre magnetici.

La peculiarit del progetto, oltre a garantire una pratica dashboard di controllo, in linea con le guidelines di google sul Material Design, quella di aver la possibilit di sviluppare parallelamente un sistema che si appoggi alle API offerte da iot-433mhz, per estenderne le capacit o personalizzarne i casi d’uso.
Ogni singola API documentata sulla repository ufficiale. L’interazione immediata e da poco sono stati introdotti i webHooks, componenti che similmente alle API, estendono le capacit del sistema, permettono di registrare una URL all’interno del sistema stesso e far si che venga richiamata al verificarsi di un evento.

Un’altra feature interessante sono le notifiche Telegram. Telegram uno dei pochi client di messaggistica che permette la creazione di Bot automatici. Ogni istanza di iot-433mhz installata su un PC in grado di comunicare con un unico back-end che gestisce per l’appunto l’interazione con il bot telegram. Attivare le notifiche telegram per il proprio account semplice, basta andare nelle Impostazioni copiare la stringa che appare e incollarla al bot @my_iot_bot. Dunque ogniqualvolta un’allarme armata scatter, il sistema attraverso il bot di telegram lo far sapere all’utente in tempo reale.

Il progetto iot-433mhz attualmente giunto alla versione 1.0.24, e viene costantemente aggiornata per risolvere bug o introdurre nuove feature.
E’ utilizzabile in “produzione” e si contano gi oltre 1000 download (npm), 104 stars e 7 fork. Che non affatto male considerando si tratti di un progetto nuovo, altamente specifico, pensato per hobbysti e in generale appassionati di automazione e domotica.

Controlliamo DotBot con Arduino

DotBot

Questo tutorial è la prima bozza di parte delle lezioni di “Alfabeto Arduino con DotBot” per l’apprendimento dell’uso di Arduino mediante lo starter kit open source per l’insegnamento del coding e della robotica che abbiamo chiamato DotBot.
Sperimenterò questa prima parte durante il corso di cui sarò relatore presso l’IIS Cassato Gattapone (Gubbio): “Apprendimento attivo con Raspberry Pi e Arduino”.

Nel tutorial che segue illustro un schema estremamente semplice per la realizzazione del controllo di DotBot effettuata con Arduino con i relativi sketch di esempio è può essere considerato la base di partenza per ogni sperimentazione basata appunto su Arduino.
Per il pilotaggio dei motori ho utilizzato l’Arduino Motor Schield R3 di cui ho già effettuato un tutorial nei giorni scorsi (Utilizzo dell’Arduino Motor Shields R3) ed è propedeutico a questa lezione.

Più avanti aggiungerò esempi pratici con ulteriori sensori e inoltre mostrerò come far funzionare DotBot come segui linea e utilizzando soluzioni con motorini passo-passo. Vi saranno ulteriori lezioni basate su Raspberry Pi 3 e programmazione in Python e successive approfondimenti sull’uso di ROS (Robot Operating System).

L’intero tutorial sarà basato sulle indicazioni costruttive di DotBot che trovate descritte nell’articolo: DotBot: lo starter kit open source per l’insegnamento del coding e della robotica che ricordo potete stampare in 3D seguendo le indicazioni che trovate nell’articolo.
In ogni caso se non avete stampato DotBot potrete tranquillamente applicarlo al robot che disponete.

Ricordo che la rotazione, senza il controllo dei numeri di giri, dipende dalla carica delle batterie, quindi per ogni test effettuare un controllo ed eventualmente modificare la variabile: “tempoRotazione” che potrete poi tarare mediante la funzione calibrazioneRotazione() che trovate nell’ultimo sketch proposto. La soluzione ottimale per il controllo preciso del robot prevede l’uso di motorini con encoder, che mostrerò in lezioni successive.

Ovviamente anche la soluzione proposta in questo tutorial risulta approssimata (ed anche dettata da un risparmio economico) ricordo che lo scopo è comprenderne il funzionamento del movimento di DotBot, lascio a voi i successivi perfezionamenti.

Potrete sostituire alle batterie che io ho utilizzato, batterie ricarrabili, o pacchi batterie con autonomia maggiore che potrete fissare utilizzando gli appositi fori predisposti sullo chassis

Componenti utilizzati

  • Arduino UNO R3
  • Arduino Motor Shield R3
  • Sensore ad ultrasuoni HC-SR04

Montaggio del circuito

DotBot-Arduino-01

DotBot-Arduino-02

DotBot-Arduino-03

Ribadisco, come già indicato nel tutorial: Utilizzo dell’Arduino Motor Shields R3 che sono state fornite due alimentazioni diverse una per la scheda Arduino ed una per i motori, per effettuare tale operazione è indispensabile effettuare il taglio del “Vi connect

Come evidenziato i due motori sono stati collegati con polarità invertita in quanto per muovere in avanti il robot le due ruote dovranno muoversi in senso opposto.

Negli esempio che seguono verranno di volta aggiunte nuove funzioni, la lista completa è la seguente:

setupDotBot()

Imposta i pin dell’Arduino Motor Shield

driveDotBot([motore], [direzione], [velocità], [brake])

La funzione è da leggersi in questo modo:
driveDotBot pilota il [motore] (0 per A, 1 per B) in senso [direzione] (0 o 1 – orario o antiorario) a velocità [velocità] (tra 0 e 255), [brake] attiva o rilascia blocco motore.
I motori vanno avanti fino a quando non gli verrà detto di fermarsi.

stopDotBot([motore])

ferma il motore [motore] (0 o 1).

rotazioneOraria()

gira il robot di 90° in senso orario

rotazioneAntioraria()

gira il robot di 90° in senso antiorario

distanzaOstacolo()

restituisce la distanza in cm dell’ostacolo rilevato

paragonaDistanze()

verifica la distanza dell’ostacolo che si trova a distanza maggiore dal robot

scegliDirezione();

sceglie la direzione da prendere in funzione della distanza a cui si trova l’ostacolo

La spiegazione del funzionamento d ogni parte del codice è inclusa all’interno dello sketch come commento.

Nota per lo studio:
i 6 sketch proposti variano solo nel loop per la realizzazione delle funzioni richieste, la variazione tra uno sketch e l’altro consiste nell’aggiunta di poche linee di codice, sarà quindi necessario effettuare uno studio preliminare di tutte le parti dello sketch 1.

Continua a leggere