Quando si pronuncia la parola simulazione, si sa, si pensa al “far finta”, e spesso con accezione negativa. Pensiamo a quante volte, da genitori o insegnanti, abbiamo immaginato che un ragazzo stesse “simulando” un mal di pancia per evitare una interrogazione…
In ambito statistico, invece, simulare significa applicare delle tecniche per “ricostruire alcuni aspetti della realtà”, in particolare quell’aspetto oggetto della nostra simulazione. E chissà se i ragazzi alla fine riusciranno a trovare una tecnica per ricostruire le coliche tipiche del vero mal di pancia?
Se guardiamo alla statistica, allora, simulare per esempio il lancio di una moneta non significa “far finta” di lanciarla, ma ricostruire l’esito del lancio (testa/croce), come se fosse stata lanciata veramente.
Le simulazioni nel gioco
Le tecniche della simulazione vengono utilizzate da tutte le applicazioni di gioco e si basano sulla generazione di numeri casuali, cioè su metodi per individuare sequenze di numeri appartenenti ad un certo intervallo, numeri aventi la caratteristica di essere equiprobabili, cioè di avere tutti la stessa probabilità di presentarsi.
Ad esempio, se volessimo simulare le estrazioni dei numeri nel gioco della tombola, i numeri casuali dovrebbero essere generati nell’intervallo da 1 a 90 e la tecnica di simulazione adottata dovrebbe garantire, proprio come accade quando infiliamo la mano nel sacchetto dei numeri, che ogni numero abbia la stessa probabilità degli altri di essere scelto.
Il grande matematico e informatico Donald E. KnuthDonald Ervin Knuth (Milwaukee, 10 gennaio 1938) è un informatico statunitense. Rinomato studioso di matematica (soprattutto di conoscenze che ora sono confluite nell'informatica), è professore emerito presso la Stanford University. Leggi ha codificato delle tecniche per la generazione di numeri casuali che si basano su formule e concetti matematici e che quindi ben si prestano ad essere eseguite da un computer.
In precedenza, John von NeumannJohn von Neumann, nato János Lajos Neumann, (Budapest, 28 dicembre 1903 – Washington, 8 febbraio 1957), è stato un matematico, fisico e informatico ungherese naturalizzato statunitense. Leggi, altro padre dell’informatica, aveva già compreso come la generazione di numeri casuali fosse alla base della simulazione di esperimenti delle più svariate tipologie (tra i quali purtroppo anche la costruzione della bomba atomica) e aveva realizzato una serie di tecniche classificate con il nome di “Metodi di Montecarlo”, proprio dal nome del famoso casinò.
Cosa c’entra la simulazione con il coding?
Tutti i linguaggi di programmazione e gli applicativi software mettono a disposizione del programmatore una funzione per la generazione dei numeri casuali, spesso nell’intervallo [0,1[, dove la simbologia matematica sta ad indicare che possono essere generati tutti i numeri compresi tra 0 incluso e 1 escluso.
Una proposta: simulare la pioggia
Proviamo a fare con i ragazzi questa attività: proviamo a simulare la pioggia, dapprima le gocce che la compongono e successivamente la traccia lasciata dalla loro caduta.
Per ricostruire un aspetto della realtà è necessario effettuare preventivamente delle osservazioni del fenomeno in modo da comprenderlo appieno.
Limitando quindi la nostra osservazione a una superficie ben definita su cui cadono le gocce di pioggia, si possono osservare alcuni aspetti:
- la dimensione di ogni goccia può variare
- non è possibile prevedere dove cadranno le prossime gocce
- le gocce cadono con frequenza non costante.
Si possono allora stabilire dei valori per i parametri di simulazione relativi a ciascuno degli aspetti osservati; ad esempio:
- la dimensione delle gocce sia al massimo di 2 mm
- la distanza massima tra una goccia e l’altra sia di 10 cm
- il tempo massimo che intercorre tra la caduta di una goccia e l’altra sia di 1 sec
Ovviamente, al variare dei valori assegnati ai parametri nel range fissato per ognuno verrà simulata una pioggia più o meno intensa.
Quindi, simulare la “pioggia” significa in realtà generare in modo casuale i valori per ciascuno dei tre parametri, cioè una terna (dim, dist, t).
Ma analizzando in modo più approfondito la questione, ci si accorge che generare il solo valore della distanza tra una goccia e l’altra non è sufficiente in quanto la prossima goccia si potrebbe trovare in un punto qualsiasi di una circonferenza centrata nell’ultima goccia caduta. Quindi la terna deve essere completata con un quarto elemento, l’angolo variabile tra 0° e 360°: (dim, dist, ang, t).
Quando però si passa all’implementazione vera e propria, cioè si sceglie un ambiente tecnologico di supporto per la realizzazione pratica della simulazione, l’algoritmo che si andrà a realizzare dovrà tener conto delle peculiarità e delle limitazioni introdotte dalla scelta effettuata.
Qui la scheda completa per provare questa attività usando una microbit. Buon divertimento!
Mi occupo di informatica da circa 40 anni con vari ruoli: studentessa
nella specializzazione Informatica dell'istituto tecnico industriale
quando ancora per programmare si perforavano le schede, poi
programmatrice sui mitici BCS dell'Olivetti, successivamente
Insegnante Tecnico-pratica nella stessa mia scuola. Posso quindi
affermare di essere stata testimone dell'evoluzione dell'informatica
sia dal punto di vista hardware che software.
Mi affascinano molto gli aspetti cognitivi dell'apprendimento e
quindi tutto quanto abbia a che fare con la didattica
dell'Informatica. Ho infatti collaborato con docenti dei vari gradi di
scuola per realizzare progetti informatici, sperimentando approcci
di vario tipo, anche unplugged, e sono stata formatrice per gli
aspetti della didattica digitale nei corsi per docenti neoassunti.
Per passione, ho collaborato come volontaria in un coderdojo.
Mi piace ricordare che la mia prima vera insegnante di informatica
è stata la mia mamma grazie al suo lavoro di sarta e di
ricamatrice.