Archivi tag: coding

Corso di Processing – lezione 03

 

Lo Schermo, i Pixel e le Linee in Processing

Prima di iniziare a programmare con Processing, è fondamentale comprendere come lo schermo venga rappresentato digitalmente e come possiamo interagire con esso attraverso il codice. Lo schermo del computer non è altro che una griglia di pixel, piccolissimi punti luminosi che compongono le immagini visualizzate. Ogni pixel ha una posizione ben definita, identificata da una coppia di coordinate (x, y).

Il Sistema di Coordinate in Processing

Processing utilizza un sistema di coordinate cartesiane leggermente diverso da quello scolastico:

  • L’origine (0,0) si trova nell’angolo in alto a sinistra dello schermo.
  • L’asse X cresce verso destra.
  • L’asse Y cresce verso il basso.

Questo significa che spostandosi a destra i valori di X aumentano, mentre spostandosi verso il basso i valori di Y crescono.

Risoluzione e Dimensioni della Finestra

Uno dei primi passi per lavorare con Processing è definire la grandezza della finestra in cui verrà disegnato il nostro codice. Per farlo, utilizziamo la funzione size(), che permette di impostare la larghezza e l’altezza della finestra in pixel:

size(400, 400);

Con questa riga di codice, Processing creerà una finestra quadrata di 400×400 pixel.

Disegnare un Punto e una Linea

In Processing, possiamo disegnare elementi grafici semplicemente utilizzando delle funzioni predefinite. Ad esempio, per disegnare un singolo punto nella posizione (200, 200) in una finestra 400×400 pixel, si usa:

size(400, 400);
point(200, 200);

Dovreste notare un punto di dimensioni di 1 pixel al centro della finestra, per rendere più evidente il punto aumentiamo le dimensioni del tratto con strokeWeight():

Per disegnare una linea che va dal punto (20, 30) al punto (300, 350) in una finestra 400×400 pixel, scriviamo:

Colori e Stili di Disegno

Processing permette anche di modificare l’aspetto degli elementi grafici. Possiamo cambiare il colore di una linea o di un punto con la funzione stroke(), specificando i valori di rosso, verde e blu (RGB):

inoltre, possiamo variare lo spessore delle linee con la funzione strokeWeight():

size(400, 400);
stroke(255, 0, 0); // Imposta il colore della linea su rosso
strokeWeight(4);
line(100, 100, 300, 300);

Questo codice disegnerà una linea più spessa rispetto a quella di default.

Capire il concetto di pixel, coordinate e linee è essenziale per lavorare con Processing. Con pochi comandi, è possibile creare strutture visive interessanti e gettare le basi per progetti più complessi. Sperimentare con point(), line() e stroke() aiuta a comprendere la logica del disegno digitale, un aspetto fondamentale per esplorare il Creative Coding e l’arte generativa.

L’importanza del punto e virgola in programmazione

Uno degli aspetti fondamentali della sintassi in Processing – e nella maggior parte dei linguaggi di programmazione – è l’uso del punto e virgola (;) per terminare un’istruzione. A differenza della scrittura tradizionale, in cui il punto segna la fine di una frase, in programmazione il punto e virgola serve a indicare al computer che un comando è stato completato.

È una regola essenziale da tenere sempre a mente, perché dimenticare un punto e virgola può causare errori nel codicee impedire al programma di funzionare correttamente. Mentre un essere umano può interpretare facilmente un testo anche se manca un segno di punteggiatura, un computer ha bisogno di istruzioni chiare e precise per eseguire il codice senza ambiguità.

Per chi è alle prime armi, può capitare spesso di dimenticare questo dettaglio. Fortunatamente, esistono strumenti come il debugger e i messaggi di errore nella console di Processing, che aiutano a individuare e correggere questi problemi. Con un po’ di pratica, il punto e virgola diventerà un’abitudine naturale nella scrittura del codice.

L’utilità dei commenti nel codice

I commenti sono uno strumento fondamentale in programmazione. Servono a spiegare il funzionamento di specifiche porzioni di codice, a lasciare note per sé stessi o a rendere il programma più comprensibile per altri sviluppatori. Anche se il codice può funzionare perfettamente senza di essi, i commenti aiutano a mantenerlo leggibile e organizzato, soprattutto nei progetti più complessi.

Scrivere commenti è una buona abitudine, sia per chi sta imparando sia per i programmatori più esperti. Con il tempo, sarà interessante riprendere i primi programmi e confrontarli con quelli più recenti. Per questo motivo, molti programmatori inseriscono all’inizio del file informazioni come la data di creazione e l’ultima modifica, utili per tenere traccia delle evoluzioni del codice.

Processing permette di scrivere commenti in due modi:

  • Commenti su una singola riga: Si inseriscono scrivendo // prima del testo.

  • Commenti su più righe: Si scrivono racchiudendo il testo tra /* e */.

Ecco alcuni esempi pratici in cui i commenti vengono utilizzati per spiegare il codice:

Esempio 1: Creazione di una finestra e disegno di un punto

// Imposta la dimensione della finestra a 400x400 pixel
size(400, 400);

// aumenta le dimensioni del tratto per rendere visibile il punto
strokeWeight(10);

// Disegna un punto alle coordinate (50,50)
point(50, 50);

Esempio 2: Disegnare una linea con colore personalizzato

size(400, 400); // Imposta la dimensione della finestra

stroke(255, 0, 0); // Imposta il colore della linea su rosso
strokeWeight(3); // Aumenta lo spessore della linea

// Disegna una linea dal punto (20,30) al punto (180,90)
line(20, 30, 180, 90);

Esempio 3: Commenti su più righe

/*
Questo programma disegna un quadrato rosso al centro dello schermo.
Data di creazione: 23 febbraio 2025
Autore: Nome Cognome
*/

// Imposta la dimensione della finestra
size(400, 400);

// Imposta il colore di riempimento su rosso
fill(255, 0, 0);

// Disegna un quadrato 100x100 al centro dello schermo
rect(150, 150, 100, 100);

I commenti aiutano a rendere il codice più chiaro e comprensibile, sia per chi lo scrive sia per chi potrebbe leggerlo in futuro. Una buona pratica è sempre commentare il proprio codice, specialmente quando si lavora a progetti più complessi o si condivide il proprio lavoro con altri.

Robottillo:bit 3.0

Con la versione 2.0 del micro:bit, la confezione del kit include un pratico modello in cartone per tenere insieme il micro:bit e il pacco batterie. Questo contenitore può essere facilmente riprodotto seguendo il link che trovate allegato, ma poiché si deteriora velocemente con l’uso, ho deciso di realizzare un contenitore stampato in 3D più robusto e funzionale.

Qualche tempo fa ho progettato Robottillo:bit V2, un contenitore a forma di robottino pensato per essere resistente e adatto all’uso quotidiano. Su richiesta di alcune maestre, ho recentemente sviluppato due nuove versioni:

  1. Una versione tascabile ancora più semplice e pratica, che mantiene le funzionalità del modello originale in cartone incluso nel kit, ma con una maggiore resistenza e durata.
  2. Una versione indossabile che consente di collegare il micro:bit al pacco batterie grazie a un supporto stampato in 3D. Per questa versione è possibile utilizzare un cinturino con velcro o una fascia di stoffa da fissare al polso con un nodo. Lascio comunque alla fantasia degli studenti la possibilità di personalizzare il modo in cui indossarlo!

Seguendo il link potete prelevare i sorgenti per la stampa 3D.

Fatemi sapere se questi progetti vi sono utili! Nel caso abbiate necessità di modifiche o personalizzazioni, non esitate a contattarmi.

LEGO e creatività didattica: dalla Duck Challenge al Coding collaborativo

Come annunciato nelle scorse settimane, nei miei prossimi corsi proporrò sempre più frequentemente l’uso dei mattoncini LEGO come una strategia per stimolare la creatività e promuovere la collaborazione, integrandoli all’interno di attività di Escape Game didattico e Coding. Tra le attività che ho deciso di introdurre sia per studenti che per insegnanti vi sarà la “Duck Challenge”, un esercizio introduttivo appartenente al metodo LEGO® SERIOUS PLAY®.

Per rendere questa esperienza accessibile a un numero maggiore di partecipanti durante le sessioni in presenza, ho deciso di fornire i sei mattoncini necessari per la challenge stampati in 3D. Questa scelta non solo facilita la diffusione del metodo, ma permette anche di regalare i set ai partecipanti, favorendo l’uso successivo dei mattoncini in altri contesti didattici e creativi.

Online sono disponibili modelli di mattoncini già pronti per la stampa 3D, ma ho apportato alcune piccole modifiche ai mattoncini per migliorare la stabilità degli agganci tra i pezzi. A breve condividerò i file sorgente per consentirvi di replicare questa soluzione. Per rendere il set di mattoncini simile all’originale, ho acquistato degli occhietti adesivi online e li ho applicati su uno dei mattoncini. Sarà anche possibile, evitando di applicare gli occhi adesivi, di disegnare forme diverse degli occhi in modo che sia possibile far assumere espressioni diverse all’anatra.

L’attività della “Duck Challenge” sarà inoltre propedeutica ai successivi percorsi di formazione sul Coding, in modo che i partecipanti possano migliorare la loro capacità di collaborazione in gruppo. In particolare, una delle attività di Coding previste consisterà nella creazione di un cronometro utilizzando una scheda BBC micro:bit. Questo cronometro, che visualizzerà i secondi sul display della scheda, potrà poi essere integrato direttamente nella “Duck Challenge”, fungendo da timer per i 60 secondi necessari alla costruzione delle anatre. In questo modo, i partecipanti potranno realizzare un’applicazione pratica del Coding, che potrà essere utilizzata per supportare un’attività collaborativa e creativa con i propri studenti.

Ma come funziona la “Duck Challenge”?

La “Duck Challenge” è un’attività introduttiva del metodo LEGO® SERIOUS PLAY® che coinvolge i partecipanti nella costruzione di un’anatra utilizzando sei specifici mattoncini LEGO®. Questo esercizio, apparentemente semplice, rivela la diversità di pensiero e promuove creatività, collaborazione e innovazione all’interno dei gruppi di lavoro.

Perché è utile in ambito formativo

L’attività offre numerosi benefici nel contesto educativo e formativo:

  • stimola la creatività: con un numero limitato di pezzi e un tempo ristretto, i partecipanti sono incoraggiati a pensare in modo non convenzionale per creare la propria versione di una papera.
  • Evidenzia la diversità di pensiero: nonostante l’utilizzo degli stessi sei mattoncini, le creazioni risultano uniche, dimostrando come ogni individuo interpreti e risolva problemi in modo differente.
  • Promuove la collaborazione: condividere e discutere le diverse costruzioni favorisce il dialogo e la comprensione reciproca tra i partecipanti.
  • Introduce il metodo LEGO® SERIOUS PLAY®: serve come introduzione pratica e coinvolgente alla metodologia, preparando i partecipanti a sessioni più approfondite.

Procedura per realizzare l’attività in classe

  1. Preparazione dei materiali: procurare per ogni partecipante un set identico di sei mattoncini LEGO®. Questi set possono essere assemblati utilizzando pezzi che già disponete, oppure stampandoli in 3D o ancora acquistarli già pronti.
  2. Introduzione dell’attività: spiegare ai partecipanti che avranno 60 secondi per costruire un’anatra utilizzando solo i sei mattoncini forniti. Non fornire ulteriori istruzioni o esempi, per stimolare l’immaginazione individuale.
  3. Esecuzione: avviare un timer di 60 secondi e invitare i partecipanti a iniziare la costruzione.
  4. Condivisione e discussione: al termine del tempo, raccogliere tutte le “paperelle” e mostrarle al gruppo. Incoraggiare una discussione sulle differenze tra le creazioni e su come ciascuno ha interpretato il compito.
  5. Riflessione: porre domande come: “Quali sfide avete incontrato?”, “Cosa avete imparato da questa esperienza?” e “Come si collega questo esercizio al lavoro di squadra e alla risoluzione dei problemi?”.

Attività ed esercizi aggiuntivi da proporre

  • Collaborazione di gruppo: dopo l’attività individuale, dividere i partecipanti in piccoli gruppi e chiedere loro di costruire insieme una papera utilizzando un set di sei mattoncini. Questo esercizio enfatizza l’importanza della comunicazione e della collaborazione.
  • Sfida creativa: fornire ai partecipanti un numero maggiore di mattoncini e chiedere loro di costruire un animale diverso o un oggetto specifico, promuovendo ulteriormente la creatività e il pensiero critico.
  • Discussione sulle applicazioni pratiche: dopo le attività, facilitare una conversazione su come le lezioni apprese possono essere applicate in contesti reali, come la risoluzione dei problemi, l’innovazione e il lavoro di squadra.

Sperimenterò e vi farò sapere 🙂

I miei corsi per Tecnica della Scuola: Carta Cartone e Coding – 3 ed.

Siamo giunti alla terza edizione del corso in cui utilizzo materiali poveri di facile reperibilità per proporre attività STEAM spero coinvolgenti. Come in ogni edizione aggiungerò nuove attività, suggerimenti e schede didattiche da utilizzare in classe.

Il corso fornisce una guida completa su come integrare progetti STEAM innovativi e a basso costo utilizzando cartone e componenti elettronici semplici. Gli insegnanti impareranno a trasformare materiali di uso quotidiano in strumenti educativi coinvolgenti. Le aule e i laboratori innovativi sono veri e propri centri di allenamento mentale, dove l’azione diventa un mezzo per comprendere e costruire conoscenza. Questi spazi si trasformano in luoghi di incontro, formazione e collaborazione, promuovendo lo sviluppo di una comprensione multisensoriale della realtà. In questi ambienti, gli studenti imparano a osservare e interagire con il mondo non solo visivamente, ma anche attraverso il tatto, stimolando la loro creatività e il pensiero progettuale. L’apprendimento in questi contesti diventa un’esperienza olistica che coinvolge tutti i sensi e nutre la mente.

Il corso valorizza la manualità e la creatività, esprimibili attraverso l’uso di materiali semplici e sostenibili come carta e cartone, combinati con elementi elettronici educativi. L’obiettivo è proporre attività laboratoriali finalizzate allo sviluppo di un pensiero critico e rispettoso della diversità, promuovendo l’etica del riutilizzo e la consapevolezza ambientale. Le attività STEAM proposte incoraggiano gli studenti a esplorare e innovare in modo economico, aprendo la strada a un apprendimento responsabile e creativo.

Per ogni attività del corso, saranno fornite guide dettagliate che descrivono i passaggi necessari per costruire diversi oggetti, oltre a istruzioni per la programmazione a blocchi e l’uso dei materiali. Questo approccio mira a stimolare l’esplorazione autonoma e la creatività degli studenti. Utilizzando strumenti come BBC micro:bit, Makey Makey, Make Code, Scratch 3 e altre tecnologie, gli studenti potranno realizzare progetti coinvolgenti come giochi interattivi, strumenti di misura e strumenti musicali, sperimentando così il potere dell’innovazione tecnologica.

Il corso prevede quattro incontri webinar di 2 ore ciascuno, per un totale di 8 ore:

  • Venerdì 21 giugno 2024 – Dalle 17.00 alle 19.00
  • Lunedì 24 giugno 2024 – Dalle 17.00 alle 19.00
  • Martedì 25 giugno 2024 – Dalle 17.00 alle 19.00
  • Venerdì 28 giugno 2024 – Dalle 17.00 alle 19.00

Per le modalità di iscrizione al corso seguire il LINK.

I miei corsi per Tecnica della Scuola: Creare un Kit Robotico Educativo a Basso Costo 5′ ed.

I docenti di tutte le materie possono creare robot educativi a basso costo, senza farsi intimorire dalle innovazioni tecnologiche. Questo metodo promuove un apprendimento pratico, stimola la creatività e rende le lezioni più interattive e coinvolgenti.

Nell’ambito didattico, l’uso della tecnologia è ormai comune e parte integrante del paradigma educativo contemporaneo. La tecnologia non deve essere vista solo come un ausilio tecnico, ma come un elemento strategico della didattica.

In altre parole, la tecnologia non deve limitarsi a supportare l’insegnamento, ma può anche costituire una strategia globale di lavoro. Esempi di questo approccio includono l’insegnamento programmato, l’apprendimento automatizzato e la didattica a distanza. La tecnologia può diventare il soggetto stesso della didattica, come avviene con la robotica. In questa prospettiva, la robotica apre nuove opportunità educative.

Il corso si articola in 3 moduli e guiderà i partecipanti nella costruzione di un robot partendo da zero.

  1. Il primo modulo introduce l’uso di BBC micro:bit e la programmazione con Blocks Editor, uno strumento grafico che facilita l’uso della scheda elettronica che controllerà il robot.
  2. Il secondo modulo riguarda la modellazione 3D con TinkerCAD, che permetterà di stampare in 3D le proprie creazioni o di generare i progetti necessari per realizzare i robot utilizzando compensato o cartone.
  3. Il terzo modulo combina le competenze acquisite, consentendo la costruzione e il controllo del proprio robot didattico.

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

  • Giovedì 23 maggio 2024 – Dalle 17.00 alle 19.00
  • Lunedì 27 maggio 2024 – Dalle 17.00 alle 19.00
  • Giovedì 30 maggio 2024 – Dalle 17.00 alle 19.00

Per maggiori informazioni su contenuti e modalità di iscrizione seguire il link.