Sperimentazioni didattiche: Pair Cooperative Learning

Fonte: Wikimedia

Come molti insegnati “di una certa età” 🙂 anche io mi trovo a ricoprire la funzione di docente tutor per colleghi neoassunti e con loro devo svolgere diverse attività: osservazione, insegnamento cooperativo nel condurre la lezione e molto altro.
Come proposta di attività di sperimentazione didattica mi sono inventato in questa settimana un metodo che nasce da un suggerimento del mio amico, compagno di studi e per anni compagno di lavoro, Paolo Sasso che durante una chiacchierata mi suggeriva di sperimentare a scuola una tecnica di organizzazione della produzione del software molto interessante che suo figlio sta utilizzando durante l’attività di “stage aziendale” remunerato che gli studenti delle università inglesi svolgono al 4′ anno di corso. Nel caso specifico si tratta di una progettazione di un software industriale sviluppato in team a distanza.

La tecnica utilizzata è quella del Pair programming, trovate indicazioni seguendo il link e da cui ho tratto per scrivere questo post. Si tratta di una tecnica di produzione del software agile condotta in coppia in cui due programmatori lavorano su una sola postazione.
I due programmatori, in modo periodico ed alternato assumono le funzioni di: conducente (driver) e navigatore (navigator).
Il conducente si occupa di scrivere il codice, mentre l’osservatore svolge il ruolo di supervisore e di revisione istantanea del codice.
Il conducente ha l’obiettivo di portare a termine una soluzione funzionante del problema, mentre il navigatore si occupa di segnalare errori o proporre alternative di soluzione al conducente e come indicato sopra i due programmatori cambiano spesso ruolo.

Come utilizzare questa metodologia durante lo sviluppo di un’attività di laboratorio a scuola?

Mi sono inventato una metodologia che ho chiamato: Pair Cooperative Learning che si basa sul Pair programming e a questo ho aggiunto un metodo per gestire i momenti in cui avviene lo scambio dei ruoli il tutto calato in una realtà didattica.
In realtà chiamarla forse metodologia è troppo, ma poiché mi diverte trovare strategie nuove di insegnamento mi piace elevarla al livello di metodologia 🙂

Ho sperimentato in questa settimana con la mia classe 4A Elettronica il metodo e ne ho perfezionato oggi, documentandone precisamente le fasi di azione in un mio documento personale. Condivido con voi il pensiero anche perché questa strategia sarà quella che mostrerò al collega neoassunto e che proporrò di sperimentare in alcune sue classi da solo ed insieme a me.

Per chi mi segue, sa che utilizzo da sempre la tecnica del Pomodoro per gestire il mio tempo di lavoro e in alcune occasioni anche il tempo di svolgimento delle esercitazioni che faccio svolgere in laboratorio agli studenti.

Lo sviluppo è quindi:

  • modalità di sviluppo: Pair programming;
  • modalità di gestione del tempo di lavoro: Tecnica del Pomodoro.

Ciò vuol dire che i ruoli si scambieranno ogni 25 minuti di attività in modalità Pair programming seguiti da 5 minuti di pausa vera in cui gli studenti devono riposare. Nei 25 minuti di lavoro in Pair programming non devono esserci distrazioni, quindi vietato chiedere: “Prof. posso andare a prendere un caffè?”, “Prof. posso andare al bagno?”, è vietato utilizzare smartphone e smartwatch, quindi bisogna allontanarli, non in tasca altrimenti si può venir distratti dalla vibrazione delle notifiche, ma riponendoli sulla cattedra o nello zaino personale.
Allo scadere dei 25 minuti ci saranno 5 minuti di pausa vera in cui riposarsi o andare al bagno.
Durante i 25 minuti non è possibile rivolgere domande al docente sulla svolgimento dell’attività, a meno che non si tratti di problematiche tecniche non conosciute dagli allievi. Dopo 4 pomodori (4 momenti lavorativi da 25 minuti) gli studenti sono obbligati a svolgere 15 minuti di pausa.

Per svolgere questa attività, adesso che sono in fase di sperimentazione, mi concentrerò su attività di laboratorio che possono essere iniziate e concluse in 2 o 3 ore continuative di lavoro.

Vantaggi rilevati:

  • concentrazione;
  • riduzione della distrazione;
  • capacità di suddivisione dei momenti produttivi da quelli di riposo;
  • imparare, a lungo termine, a valutare quanti “pomodori” sono necessari per svolgere una specifica attività;
  • percepire che si è protagonisti del proprio apprendimento;
  • percepire di aver risolto un problema;
  • cooperare con compagni di classe che solitamente non si sceglie per studiare e lavorare.

La formazione delle coppie di lavoro può avvenire in diverse modalità e sarà funzione sul livello di competenze raggiunto da ogni singolo allievo, pertanto potrà avvenire:

  • in modo casuale per ogni esercitazione e la casualità la si può ottenere con un programma facendo attenzione che in ogni esercitazione si formino sempre coppie diverse;
  • a scelta da parte del docente scegliendo in funzione delle competenze degli studenti.

Per velocità di sperimentazione questa settimana la scelta delle coppie di studenti è stata fatta da me ed un’altro collega.

Applicherò questa strategia venerdì prossimo nella mia 5B Automazione in cui gli studenti dovranno risolvere un problema di automazione mediante l’uso di PLC Siemens. L’attività, nei primi 25 minuti, prevederà un’analisi del sistema mediante lo sviluppo di un diagramma di flusso e nei successivi 25 minuti la produzione del codice in LADDER o FBD dell’automazione che dovrà essere poi simulata. La conclusione deve avvenire durante due ore di lezione.

Il metodo ovviamente è applicabile anche ad altri livelli scolastici, potrebbero essere ad esempio lo sviluppo di un’attività di Storytelling con Scratch 3 per allievi di scuola media o dei primi anni delle superiori, o ancora potrebbe essere un’attività non informatica in cui il processo può essere condotto in Pair Cooperative Learning.

Spero che questa mia sperimentazione possa essere utile anche ad altri colleghi e nel caso di vostre variazioni e migliorie vi chiedo la cortesia di comunicarmele in modo che a mia volta possa adottarle nelle mie classi.

Grazie Paolo per il suggerimento.

Buona didattica a tutti 🙂

Attività STEAM con Scratch 3

Il corso guida a sviluppare in autonomia un percorso laboratoriale con attività Steam di Coding basato su Scratch 3 secondo modalità attive e inclusive attraverso la realizzazione di giochi interattivi, esperimenti scientifici sfruttando le nuove funzionalità di interfacciamento con dispositivi elettronici specificatamente pensati per la didattica, di facile utilizzo, che possono essere inseriti nelle discipline STEAM (Scienze, Tecnologia, Ingegneria, Arte e Design, Matematica).

Scratch è uno degli strumenti più interessanti per sviluppare attività di Coding, è un linguaggio di programmazione a blocchi, gratuito, che insegna a studenti di ogni età le basi della programmazione in una modalità creativa dando spazio ad immaginazione attraverso la produzione di programmi con forte contenuto interattivo. In Scratch l’utente si troverà ad assegnare funzionalità ad oggetti grafici mediante la realizzazione di programmi costituiti da blocchi grafici funzionali tra essi connessi ed i programmi agiscono su elementi grafici disegnati dall’utente oppure su dispositivi hardware connessi al computer e comandati attraverso Scratch 3.

Si analizzeranno in modo specifico istruzioni per manipolare applicativi e hardware esterno con cui gli studenti potranno programmare dispositivi fisici come BBC micro:bit, Lego Mindstorms EV3, Lego WeDo 2.0, Makey Makey, ma anche servizi web come come Google Traduttore.
Verranno forniti indicazioni per realizzare attività di scienze e matematica, ma anche realizzazione di giochi interattivi che interagiscono con il mondo reale, realizzazione di sperimentazioni in realtà aumentata e costruzione di attività per studenti con necessità specifiche.

Verranno fornite schede di lavoro, immediatamente spendibile in classe, che guideranno il docente alla sviluppo di esercitazioni con possibilità di personalizzazione in funzione delle esigenze didattiche.
L’intero processo di formazione sarà supportato da una piattaforma di formazione on-line appositamente predisposta, a cui saranno iscritti tutti i partecipanti al corso. In questo modo potranno essere rese disponibili risorse, schede di lavoro e lezioni.

Saranno svolti 4 incontri in webinar di 2 ore ciascuno, per un totale di 8 ore

  • Lunedì 6 dicembre 2021 – Dalle 17.00 alle 19.00
  • Martedì 7 dicembre 2021 – Dalle 17.00 alle 19.00
  • Lunedì 13 dicembre 2021 – Dalle 17.00 alle 19.00
  • Martedì 14 dicembre 2021 – Dalle 17.00 alle 19.00

Per maggiori informazioni sui contenuti del corso e iscrizione seguire il LINK.

Vi aspetto al mio corso 🙂

Creare un kit robotico educativo a basso costo – 2′ edizione


Dopo il successo della prima edizione sono felice di annunciarvi che questa settimana proporrò la seconda edizione del corso: Creare un kit robotico educativo a basso costo. Mostrerò nuovi robot realizzati in cartone controllati da BBC micro:bit. Darò inoltre indicazione su effettuare il controllo con Arduino e Raspberry Pi.

Come in ogni corso che svolgo verranno forniti sorgenti grafici per la realizzazione dei robot e schede didattiche di programmazione che potranno essere utilizzate in classe con gli studenti.

Presentazione del corso:

Mediante una metodologia laboratoriale, si forniranno competenze digitali finalizzate alla realizzazione di robot didattici a bassissimo costo permettendo al docente si strutturare un percorso di base per avvicinare gli studenti ai principi della programmazione e della robotica.
Il corso si sviluppa in 3 moduli e permetterà di costruire un robot partendo da zero.

  1. Il primo modulo introduce all’uso di BBC micro:bit ed alla programmazione con Blocks Editor, un tool grafico che semplifica l’utilizzo della scheda
    elettronica che controllerà il robot;
  2. Il secondo modulo introduce all’utilizzo modellazione 3D con TinkerCAD che permetterà di stampare in 3D le proprie creazioni, oppure generare i
    progetti necessari per realizzare i robot con compensato o cartone;
  3. Il terzo modulo mette insieme le due competenze consentendo la costruzione ed il controllo del proprio robot didattico.

Saranno svolti 3 incontri in webinar di 2 ore ciascuno, per un totale di 6 ore

  • Venerdì 19 novembre 2021 – Dalle 17.00 alle 19.00
  • Lunedì 29 novembre 2021 – Dalle 17.00 alle 19.00
  • Martedì 30 novembre 2021 – Dalle 17.00 alle 19.00

Per maggiori informazioni sui contenuti del corso e modalità di iscrizione seguire il link allegato.

Open PLC – Lezione 4 – installare OpenPLC Editor e realizzare un programma in LADDER

OpenPLC Editor consente di scrivere programmi PLC per il runtime OpenPLC. I programmi sono scritti secondo lo standard IEC 61131-3. L’editor è molto semplice da usare e supporta tutti e cinque i linguaggi definiti nello standard: Ladder Logic (LD), Function Block Diagram (FBD), Instruction List (IL), Structured Text (ST) e Sequential Function Chart (SFC).

Se avete scaricato la versione Windows di OpenPLC, l’editor viene installato automaticamente con OpenPLC runtime, nel caso comunque abbiate necessità di prelevare solo l’editor questo il link:

OpenPLC Editor v1.0 for Windows

Installazione Windows

Effettuate il download, scompattare il file zip, doppio clic su OpenPLC Editor.

Installazione Linux

Aprite il terminale e digitate le seguenti quattro linee di comando

sudo apt-get install git
git clone https://github.com/thiagoralves/OpenPLC_Editor
cd OpenPLC_Editor
./install.sh

Quando l’installazione termina troverete un collegamento all’applicazione dal menù delle applicazioni.

Realizziamo il primo programma

Per illustrare il funzionamento riprenderò il medesimo esempio presente sul sito di riferimento e sul medesimo circuito realizzeremo altre semplici automazioni.

Gli esempi proposti presuppongono una conoscenza di base sulla programmazione in Ladder Logic (LD).

Sono necessari:

  • OpenPLC
  • N.2 pulsanti normalmente aperti
  • N. 1 LED

Per semplicità di utilizzo per gli studenti, lavoreremo a bassa tensione, 5V cc.

Si realizzi il seguente circuito:

Osservazioni

  1. +V è la tensione positiva del vostro dispositivo, +5V per Arduino, +3,3V per Raspberry Pi e +24V per un impianto industriale.
  2. Pulsante1 e Pulsante2 sono due pulsanti, R1 and R2 sono due resistori di pull-down che possono essere scelti con valori tra 1K Ohm a 10K Ohm. Se utilizzate un PLC industriale i resistori di pull-down  sono integrati all’interno del dispositivo pertanto i pulsanti Pulsante1 e Pulsante2 possono essere collegati direttamente agli ingressi dello slave, nel nostro caso trattandosi di una scheda Arduino saranno: %IX100.0 e %IX100.1.
  3. Fate attenzione che su Raspberry Pi, i primi due ingressi (%IX0.0 e %IX0.1) sono negati direttamente nell’hardware e ciò potrebbe causare qualche confusione, quindi per mantenere le stesse funzionalità del circuito indicato sopra potete, nel LADDER, usare contatti negati, oppure più semplicemente potete utilizzare due ingressi diversi come %IX0.2 e %IX0.3.

Per realizzare un nuovo programma aprite OpenPLC Editor e fate clic su File -> Nuovo

Continua a leggere

Open PLC – Lezione 3: Slave Arduino – configurare gli I/O

E’ possibile utilizzare una scheda Arduino come slave per espandere gli I/O di un dispositivo hardware su cui funziona OpenPLC. Questa operazione è particolarmente utile se state lavorando con OpenPLC in esecuzione su un computer Windows o Linux, in questo modo collegando una scheda Arduino potremo aggiungere un’interfaccia fisica di gestione degli I/O del nostro PLC.

La scheda Arduino può essere utilizzata solo come dispositivo slave, pertanto è essenziale impostare un host, ovvero avere un OpenPLC Runtime installato su un computer con sistema operativo Windows o Linux, così come visto nelle lezioni precedenti. Vedremo inoltre nella successiva lezione come installare OpenPLC su un computer Raspberry Pi e su un Raspberry Pi 400 ed utilizzare la GPIO come I/O del nostro PLC.

Effettuare l’upload del Firmware su Arduino

Selezionate la versione corretta del firmware (si tratta di uno sketch Arduino che deve essere eseguito) per la scheda che possedete, scompattate e caricatela sulla scheda Arduino:

Aggiungere lo slave ad OpenPLC

Installato il firmware sulla scheda e mantenendo la scheda connessa al computer con cavo USB, avviare il OpenPLC Runtime sul vostro computer, effettuate il login con le vostre credenziali. Accedere al menù “Slave Devices” e clic su “Add new device”:

Compilare tutti i campi, evitare caratteri accentati come ad esempio: ç, é, ó, ñ, selezionare la scheda Arduino utilizzata, la porta COM viene identificata automaticamente, in ogni caso se doveste avere dei problemi vi ricordo che la porta COM a cui è connessa la scheda può essere desunta dall’IDE di Arduino oppure verificando dal vostro sistema operativo, quali sono le periferiche connesse.

Avviate il PLC facendo clic su “Start PLC”. Se all’interno della dashboard di OpnePLC vengono visualizzati messaggi di timeout, non preoccupatevi è una situazione normale, tutte le schede Arduino hanno una funzione di ripristino automatico che riavvia la scheda ogni volta che viene effettuata una nuova connessione USB, quindi una volta che OpenPLC avvia una comunicazione, il primo tentativo di inviare un messaggio alla scheda fallisce perché la scheda Arduino si sta ancora avviando dopo un ripristino. Dopo pochi millisecondi la scheda è completamente operativa, dovreste vedete i LED Tx ed Rx lampeggiare, ciò identifica il funzionamento del sistema.

Mappa dei Pin

Nelle tabelle che seguono è indicata la mappatura dei pin per le schede Arduino Uno e Arduino Mega. La mappatura si riferisce all’ultima versione di OpenPLC, la v3.
Ricordate che, per quanto riguarda le schede Arduino, gli I/O hanno una numerazione che differisce da altri hardware.

Mappatura pin Arduino UNO

input digitali Arduino Pin OpenPLC I/O
2 %IX100.0
3 %IX100.1
4 %IX100.2
5 %IX100.3
6 %IX100.4
output digitali 7 %QX100.0
8 %QX100.1
12 %QX100.2
13 %QX100.3
input analogici A0 %IW100
A1 %IW101
A2 %IW102
A3 %IW103
A4 %IW104
A5 %IW105
output analogici 9 %QW100
10 %QW101
11 %QW102

Mappatura pin Arduino MEGA

input digitali Arduino Pin OpenPLC I/O
22 %IX100.0
24 %IX100.1
26 %IX100.2
28 %IX100.3
30 %IX100.4
32 %IX100.5
34 %IX100.6
36 %IX100.7
38 %IX101.0
40 %IX101.1
42 %IX101.2
44 %IX101.3
46 %IX101.4
48 %IX101.5
50 %IX101.6
52 %IX101.7
14 %IX102.0
15 %IX102.1
16 %IX102.2
17 %IX102.3
18 %IX102.4
19 %IX102.5
20 %IX102.6
21 %IX102.7
output digitali 23 %QX100.0
25 %QX100.1
27 %QX100.2
29 %QX100.3
31 %QX100.4
33 %QX100.5
35 %QX100.6
37 %QX100.7
39 %QX101.0
41 %QX101.1
43 %QX101.2
45 %QX101.3
47 %QX101.4
49 %QX101.5
51 %QX101.6
53 %QX101.7
input analogici A0 %IW100
A1 %IW101
A2 %IW102
A3 %IW103
A4 %IW104
A5 %IW105
A6 %IW106
A7 %IW107
A8 %IW109
A9 %IW109
A10 %IW110
A11 %IW111
A12 %IW112
A13 %IW113
A14 %IW114
A15 %IW115
output analogici 2 %QW100
3 %QW101
4 %QW102
5 %QW103
6 %QW104
7 %QW105
8 %QW106
9 %QW107
10 %QW108
11 %QW109
12 %QW110
13 %QW111

Buon Making (di automazione) a tutti 🙂