Hour of Code e Matematica

04/12/2017

L’Ora del codice è un’esperienza che coinvolge ormai milioni di studenti di tutto il mondo. L’obiettivo è quello di realizzare una lezione di introduzione alla programmazione della durata di un’ora.

In questo articolo cercheremo di vedere cosa possiamo fare in un intervallo di tempo così limitato, dando un taglio matematico all’esperienza digitale che vogliamo proporre in classe, toccando contemporaneamente alcuni concetti chiave del pensiero computazionale.

Sessanta minuti sono veramente pochi. Ci troviamo di fronte a una bella sfida. Non abbiamo il tempo di fornire grandi spiegazioni introduttive ai nostri studenti. Ci serve uno strumento intuitivo per poter giocare con i numeri. Abbiamo bisogno di Scratch.

Possiamo utilizzarlo online dal sito web https://scratch.mit.edu/ (cliccando su “Provalo”) o scaricarlo da questa pagina https://scratch.mit.edu/download.

La schermata iniziale di Scratch ha un aspetto molto “giocoso”, ma non dobbiamo fermarci alle apparenze. E in ogni caso il gatto ci può venire utile.

Potremmo fargli elencare i numeri naturali (0, 1, 2…).

No, non così (Figura 1).

 

 

 

 

 

 

 

 

Cerchiamo di costruire un algoritmo un po’ più complesso.

Identifichiamo la ripetizione (il blocco dire usato più volte). Inseriamo questo blocco in un ciclo ripeti. Possiamo anche decidere quanti numeri far dire al gatto: 10, 20… o farlo continuare all’infinito (Figura 2)?

 

 

 

 

 

 

 

Decidiamo per l’infinito (o comunque per tutto quello che riusciremo a fare in un’ora). In ogni caso c’è un problema. Abbiamo bisogno che il numero detto dal gatto cambi. Prima 0, poi 1, poi 2… Non deve dire sempre lo stesso numero, deve variare, insomma. Abbiamo bisogno di una variabile!

Con facilità (Figura 3) riserviamo un pezzetto di memoria del computer per i nostri scopi e lo chiamiamo “numero”.

 

Torniamo ai numeri naturali. Partono dallo zero. Poi, per trovare il successivo, basta aggiungere 1 al precedente (Peano ci perdonerà il nostro scarso formalismo, ma il tempo stringe).

Con Scratch abbiamo almeno due modi di realizzare tutto ciò, senza o con l’utilizzo del blocco di addizione contenuto nella categoria “Operatori” (Figura 4).

Scegliamo la forma a sinistra.

Ci viene in mente che il nostro gatto, novello Gauss, potrebbe calcolare la somma dei numeri che sta elencando e tenere aggiornato tale valore. Anche qui abbiamo bisogno di una variabile (“somma”) e di modificare lo script come in Figura 5.

 

Se un gatto ci sembra poco, potremmo duplicarlo (Figura 6) e mettere il nuovo gatto a destra del primo.

 

 

 

 

 

 

Per il gatto “Sprite2” potremmo costruire uno script un po’ diverso, ad esempio facendogli dire il doppio del numero che dice il gatto “Sprite1” (Figura 7).

E verificare se lo fa veramente (Figura 8).

Sì, il secondo gatto sta dicendo la tabellina del due, partendo dai numeri naturali elencati dal primo gatto.

Potrebbe facilmente dire la tabellina del 3 o del 4… e con un’altrettanto banale modifica possiamo anche entrare nel campo delle potenze di due (Figura 9) o in quelle di tre (Figura 10), che ovviamente il gatto conosce alla perfezione (Figura 11).

Potremmo usare tre sprite. Il secondo dice le potenze di due e il terzo quelle tre e osservare il ritmo con cui crescono i numeri detti dai gatti.

 

E questo è solo un inizio, perché con Scratch si possono implementare facilmente algoritmi anche di una certa complessità e sperimentare in maniera creativa partendo da tutti gli argomenti che i libri di matematica che propongono in una forma giustamente più rigorosa.

 

Note finali per programmatori più esperti

La sincronizzazioni tra i  gatti si sarebbe dovuta risolvere attraverso l’uso dei messaggi, la cui spiegazione avrebbe però messo in secondo piano le finalità matematiche di questo post.

 

 

 

 

© 2015-2017 De Agostini Scuola - P.IVA 01792180034 - De Agostini Scuola S.p.A. è certificata UNI EN ISO 9001 da RINA