Coding per la geometria alla primaria

Utilizzare il coding per arricchire la didattica della geometria alla scuola primaria può essere molto divertente, fortemente motivante e soprattutto utile, sia per consolidare alcuni concetti dell'aritmetica e della geometria, che per introdurre la basi fondamentali della programmazione (o coding).

Quando parliamo di coding associato allo studio della geometria, non possiamo non citare la famosa Turtle graphics, di Seymour Papert, una grafica vettoriale realizzata mediante un esemplare di robot da lui creato che può essere programmato per disegnare figure geometriche disegnando pattern ripetuti.

La tartaruga combina semplici concetti di programmazione (come i comandi per spostarsi nelle quattro direzioni) con concetti più avanzati come variabili, cicli, ripetizioni, condizionali, parametrizzazioni e impiega un linguaggio originale di programmazione chiamato LOGO.


Prendendo a riferimento la Turtle graphics, è possibile, allora, impostare un’attività di coding da proporre alla scuola primaria (per le classi quarta e quinta), basata sull’uso del codice a blocchetti, ad esempio impiegando Scratch.

Per questa attività suggeriamo di prendere spunto dal libro Il mio primo libro di Coding, un testo per bambini, con una grafica accattivante e tante finestrelle. Pur essendo un libro semplice, contiene quasi tutti i concetti di programmazione importanti, sia che si faccia coding unplugged, sia che si decida di utilizzare programmi a blocchetti come Scratch oppure oggetti programmabili come Beebot.


Nella prima parte dell’attività consigliamo di introdurre i concetti fondamentali del pensiero computazionale:.


ALGORITMO

E' un elenco di istruzioni per eseguire un compito, un po’ come una ricetta (dal libro citato) ed è la parte più astratta del programma.

Immaginiamo di voler disegnare un quadrato, ecco l’elenco delle istruzioni che servono:

  • Appoggia la penna sul foglio

  • Disegna un segmento di una data lunghezza

  • Disegna un ulteriore segmento perpendicolare al precedente

  • Disegna un ulteriore segmento perpendicolare al precedente

  • Disegna un ulteriore segmento perpendicolare al precedente

  • Solleva la penna dal foglio

DIAGRAMMA DI FLUSSO

Prima di creare un programma, bisogna definire cosa dovrà fare. Potrebbe non essere facile, per questo i programmatori disegnano un diagramma di flusso (dal libro citato). Questa parte rappresenta l’equivalente grafico dell’algoritmo.

Nel diagrammi di flusso abbiamo i blocchi ellittici (rappresentano l’inizio/fine), i blocchi rettangolari (contengono istruzioni), i blocchi romboidali (contengono le domande e danno luogo alle biforcazioni).

Riprendendo l’esempio del quadrato, ecco l’immagine del diagramma di flusso.



PSEUDOCODICE

Come i diagrammi di flusso, esprime il processo computazionale. E’ un codice altamente leggibile (e personale), che non deve essere interpretato dal computer (dal libro citato).

Lo pseudocodice è simile ad un’attività unplugged da svolgere prima di scrivere il codice vero e proprio; con esso iniziamo a trasformare il pensiero in istruzioni un po’ più vicine al linguaggio di un computer, ma ancora altamente leggibili da parte di un essere umano.

Vediamo cosa succede nell’esempio del quadrato da disegnare:

  • situazione (blocco non ciclico)

  • penna giù disegna un segmento

  • gira di 90° in senso orario

  • disegna un segmento

  • gira di 90° in senso orario

  • disegna un segmento

  • gira di 90° in senso orario

  • penna su

CODICE

E' la codificazione dell’algoritmo in un codice comprensibile ad una macchina, a un computer o ad un ambiente di programmazione come Scratch.


Se inseriamo questo codice all’interno di Scratch, vediamo che, premendo il tasto a, viene disegnato il quadrato.



Poiché il codice dipende dal linguaggio di programmazione (nel nostro caso, usiamo i blocchetti di Scratch, in altri casi potremmo usare il linguaggio testuale), partendo da uno stesso algoritmo possiamo arrivare a risultati diversi, in base al linguaggio di programmazione che scegliamo.

Un’interessante attività da proporre alle scuole secondarie di I e II è quella di debugging, cioè di ricerca di errori in un programma e di analisi predittiva. Si può, ad esempio, proporre uno pseudocodice o un codice di Scratch e chiedere agli studenti quale sarà il risultato e se ci sono errori. Tali attività unplugged possono essere svolte sia a mente, che sul foglio, che in modo cinestesico con il corpo.


Riflettendo su questa prima parte di lavoro, totalmente unplugged, possiamo notare come anche nella programmazione più avanzata non ci sia un confine così netto tra collegato e scollegato.


VARIABILI

Citando la definizione del libro: una variabile è dove memorizzi parole e numeri che possono cambiare (durante l’esecuzione del programma).

In un’attività come questa, è possibile introdurre in modo semplice e comprensibile questo concetto, ad esempio per gestire la dimensione della figura geometrica che vogliamo disegnare.

Nel nostro caso, abbiamo creato la variabile lunghezza lato, per indicare il numero di passi che effettua il cursore che disegna il lato del quadrato.

Ma come si creano le variabili in Scratch?

Semplice, entriamo nel menù variabili e liste (arancione), indichiamo il nome che vogliamo darle e decidiamo se mostrare o meno la variabile (tasto nascondi). Possiamo anche cambiarne il valore usando un cursore grafico (tasto destro del mouse>cursore).





L’ELEGANZA DEL CODICE: I CICLI

Osservando il codice fino ad ora scritto, notiamo che esso è costituito da una mera sequenza di istruzioni, risultando, così, poco elegante e poco snello.

In particolare, vediamo che alcune istruzioni vengono ripetute più volte nello stesso identico modo:













Possiamo, allora, introdurre il ciclo ripeti riferito ad una nuova variabile da noi creata, numero lati, alla quale assegniamo il valore di 4 (i 4 lati del quadrato).

Ecco come risulterà il codice:












Scrivendo il codice in questo modo, esso non solo diventa più più breve e più leggibile, ma è anche modulare e possiamo ripeterlo in strutture più complesse, che usano gli spazi, tramite la cosiddetta indentazione, permettendo un uso più razionale dell’area di lavoro.


CICLI ANNIDATI e OPERATORI MATEMATICI

Possiamo anche spingerci un po' più avanti, introducendo i concetti di rotazione e traslazione della figura geometrica e creando così pattern simili a quelli realizzabili con la Turtle graphics.

Inseriamo due cicli, uno dentro l’altro:














Se volessimo coprire un’intera rotazione di 360°, dovremmo inserire l’operatore matematico diviso e sostituire il numero 10 con 360°/15:




Il risultato sarebbe questa figura:










FUNZIONE

Possiamo, infine, introdurre il concetto di funzione, trasformando la parte di codice in cui sono contenute le istruzioni per la generazione della figura (il quadrato) in una funzione, chiamata forma.

Il primo passo è effettuare la definizione della funzione, entrando nel menù Altri blocchi > Crea un blocco, all’interno di esso possiamo inserire i parametri della funzione, nel nostro caso:

  • numero lati

  • angolo tra i lati

  • lunghezza lato


Ad essi potremo assegnare, di volta in volta, valori diversi, in base al nostro obiettivo.












Il codice e la figura generata:











Inoltre, possiamo inserire un elemento di casualità (generatività) nella generazione della figura geometrica, usando il comando numero a caso (applicato a numero lati, traslazione, rotazione e persino colore).












RISORSE

Suggeriamo una risorsa gratuita molto utile per affrontare gli argomenti trattati in questo post (simmetria, rotazione, traslazione, coordinate, numeri negativi, schemi, perimetri, somma di angoli, ecc…): ScratchMaths, una sezione di Scratch dedicata alla scuola primaria e secondaria di I grado dove vengono presentate attività analoghe a quelle da noi mostrate, con l’unica differenza che la figura su cui si lavora è un’immagine (in formato .png o .jpeg).



Per approfondire questo argomento, guarda la video lezione Coding per la matematica e geometria (Corso Coding per la primaria).


Vuoi certificare la tua formazione? Abbonati a PaLEoS!


© 2020 PaLEoS Srl
Via Sant'Angelo 25 - 50142 Firenze (FI)
Tel. 329-5983082 - info@paleos.it paleos.srl@pec.it
P.iva 06843880482 - Capitale Sociale € 39.000
Nr. iscrizione Registro Imprese Firenze: 660459

 | Privacy | Dove siamo