Teoria e pratica del coding unplugged

Ogni anno si svolge a Urbino una Summer School universitaria dedicata al coding a scuola. L’edizione 2020 era dedicata al coding unplugged, senza dispositivi. Due delle attività didattiche principali erano dedicate a Teoria (lezioni mattutine) e Pratica (laboratori pomeridiani) del coding unplugged. Poiché l’edizione 2020 si è svolta in modalità mista con corsisti in presenza e a distanza (come avverrà per l’edizione di agosto 2021), ho l’opportunità di condividere le registrazioni delle 6 lezioni e dei 5 laboratori specifici visti dal punto di vista di chi seguiva da casa.

Ritengo che queste registrazioni possano essere utili sia a chi vuole farsi un’idea dell’argomento, sia a chi vuole approfondirne aspetti concettuali di attività note, sia a chi vuole sistematizzare la conoscenza di metodi e strumenti che ha già incontrato. Ritengo inoltre che l’approccio seguito, con laboratori svolti fisicamente muovendosi su una scacchiera a terra, sia di ispirazione a chi intende applicare il coding unplugged fin dalla scuola dell’infanzia.

Premessa: Cosa intendo per Coding unplugged

Per completezza e per chiarezza, premetto cosa intendo, in questo contesto, per coding e per unplugged.

Per coding si intende l’applicazione intuitiva di principi e metodi di programmazione. La programmazione presuppone che ci sia un esecutore ideale in grado di leggere, interpretare ed eseguire istruzioni tratte da un repertorio finito e non ambiguo. Compito del programmatore è quello di usare il repertorio di istruzioni, rispettando la sintassi di un linguaggio formale, per scrivere un programma che l’esecutore ideale sia in grado di eseguire, limitandosi a fare tutto e solo ciò che prevedono le istruzioni del programma. Quando l’esecutore ideale è una macchina (computer, robot, smartphone, …) il programma viene eseguito in modo automatico e l’esito dell’esecuzione ne rivela la correttezza. Esistono numerosi strumenti online di programmazione visuale a blocchi, che offrono a chiunque l’opportunità di praticare il coding provando l’emozione di programmare un esecutore ideale e di osservarlo in azione mentre esegue il codice. Se l’esito dell’esecuzione non è quello atteso, si mette mano al codice per aggiustarlo facendo debugging. La programmazione visuale a blocchi presenta un’interfaccia grafica molto intuitiva, in cui le istruzioni sono racchiuse in blocchi colorati ad incastro, che possono essere movimentati sullo schermo per comporli rispettando gli incastri. Questo garantisce per costruzione la correttezza sintattica, permettendo al programmatore di concentrarsi sul procedimento. Gli esempi più noti di piattaforme online di programmazione visuale a blocchi sono Scratch e Code.org. Vale inoltre la pena di menzionare Blockly, libreria per la creazione di interfacce di programmazione visuale a blocchi.

Il coding unplugged si basa sugli stessi principi, ma senza fare uso di dispositivi elettronici. Quindi anche il ruolo dell’esecutore ideale è svolto da una persona, che deve comportarsi come un robot eseguendo solo ed esclusivamente le istruzioni scritte nel programma.  Il coding unplugged ha numerosi vantaggi: 1) non pone barriere tecnologiche, può essere praticato dovunque con materiali fai-da-te o, addirittura, senza alcun materiale; 2) rende istruttiva non solo la scrittura del codice, ma anche la sua interpretazione ed esecuzione; 3) consente di porre tutta l’attenzione sul pensiero computazionale e sugli aspetti algoritmici, mettendo in secondo piano gli strumenti tecnologici; 4) può essere praticato a qualsiasi età, come gioco da tavolo, gioco di società, attività di gruppo o attività motoria; 5) a chi svolge il ruolo di esecutore ideale permette di comprendere a fondo la natura di computer e robot; 6) pone l’attenzione sulla separazione di ruoli tra programmatore ed esecutore ideale, che è l’essenza del coding. Ma ha uno svantaggio: non permette di verificare automaticamente la correttezza di un programma, la cui esecuzione è comunque affidata all’essere umano che svolge il ruolo di esecutore, muovendo una pedina o eseguendo in prima persona le istruzioni. Questo limite intrinseco, nella pratica del coding unplugged offre ulteriori opportunità di gioco, di sfida e di confronto. Tipicamente, nei giochi competitivi o collaborativi, sono le squadre avversarie o i propri compagni di squadra a dover prestare l’attenzione necessaria a verificare la correttezza di ogni mossa. Esempi di strumenti di coding unplugged sono: CodyRoby, CodyFeet e CodyColor. Ma sono attività di coding unplugged anche alcune forme di pixel art e qualsiasi riflessione su aspetti computazionali e algoritmici delle attività quotidiane.

Per approfondimento: A. Bogliolo, A scuola con CodyRoby, Giunti Scuola, 2020.

Lezione 0. Materiali e metodi

Lezione 1. Sullo stesso piano… CodyFeet e CodyColor


Laboratorio 1. CodyFeet e CodyColor

Lezione 2. Separiamo i due piani… CodyRoby


Laboratorio 2. CodyRoby

Lezione 3. Coding e pixel art


Laboratorio 3. Pixel art

Lezione 4. CodyRoby strutturato


Laboratorio 4. CodyRoby Strutturato

Lezione 5. Algoritmi quotidiani


Laboratorio 5. Algoritmi in cortile

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *