La fisica è una materia strettamente connessa con l'informatica, oltre che con la matematica.
Oltre un certo livello di complessità, i calcoli relativi a problemi di fisica vengono effettuati numericamente. Questo riguarda sia la fisica applicata alla tecnologia sia la ricerca di base. Le simulazioni numeriche sono uno strumento indispensabile sia nella fase di test di una nuova teoria che nelle fasi di progettazione e analisi di un nuovo esperimento.
È quindi utile e interessante utilizzare in sinergia le competenze acquisite nei corsi di fisica, matematica e informatica.
Questo può essere fatto in maniera "pratica" cercando di sviluppare dei piccoli progetti in autonomia (si intende che è comunque ammesso chiedere pareri/consigli agli insegnanti).
I linguaggi di programmazione che si possono utilizzare sono innumerevoli, e l'ideale sarebbe utilizzare quelli che vengono trattati nel corso di informatica. In realtà però, in generale, ciò che conta è l'ideazione dell'algoritmo alla base del programma. Il linguaggio è tutto sommato un dettaglio, anche se poi, oltre un certo limite di ottimizzazione, anche il più piccolo dei dettagli ha importanza.
javascript+HTML5
il javascript è uno dei linguaggi che vengono utilizzati per rendere "dinamiche" le pagine web, che sono scritte in html. L'accoppiata javascript+html5 secondo me è abbastanza interessante perchè
mi pare sia ormai diventata uno standard. Diversi siti che prima contenevano animazioni scritte in flash! (un programma "proprietario" della Adobe) stanno convertendo i loro contenuti in html5 (un esempio su tutti è costituito dalle applicazioni educative PhET dell'Università del Colorado).
come si può vedere dalle applicazioni PhET e dai giochi elencati in questa pagina, l'accoppiata html5+javascript permette di ottenere risultati veramente notevoli.
non ne sono sicuro, ma penso che anche i giochi sulla piattaforma di educazione della fisica "Science at Home" siano basati su javascript e HTML5. Notate che la squadra di Science at Home sta avendo molto successo e cerca giovani che vogliono unire l'interesse per la scienza, la programmazione e il gioco.
Il liceo Oriani non ha un progetto simile, non ha una "squadra" né (per ora) l'esperienza per creare giochi elaborati come quelli elencati qui sopra.
Però sicuramente tra gli studenti ci sono degli appassionati che possono realizzare progetti validi e interessanti, soprattutto se si riuniscono in squadre. Tenete presente che il lavoro di squadra e lo sviluppo autonomo di progetti (attività che vanno ad aggiungersi al lavoro che bisogna fare per la scuola) vengono valutate molto positivamente nei colloqui di lavoro.
Un progetto non è un compito. Può essere portato avanti con calma, dedicandogli un po' di tempo ogni giorno, o ogni settimana. È per definizione un lavoro "in evoluzione". Può capitare che a un certo punto ci si accorga che si è presa una strada "sbagliata" e che quindi il progetto è da "rifondare" completamente. Però anche il progetto più semplice, una volta finito, dà la sua soddisfazione.
Chi ha bisogno di riferimenti su html, css e javascript può dare un'occhiata ai tutorial del sito w3schools: html (con grafica), css, javascript.
grafica
Nelle applicazioni di tipo scientifico/tecnologico (e nei giochi) è molto utile avere una finestra grafica interattiva.
Al momento la soluzione più interessante e versatile secondo me è JSXGraph, un pacchetto sviluppato dall'Università di Bayreuth.
I risultati sono molto "professionali", a livello di quelli ottenibili con GeoGebra, con "costi computazionali" secondo me inferiori.
Gli altri approcci per lavorare con la grafica che ho sperimentato finora sono:
javascript+HTML5, con grafica interattiva in "canvas";
javascript+HTML5, con grafica interattiva in "SVG";
jsfiddle
Jsfiddle è una piattaforma che permette di "giochicchiare" con javascript e html5. Iscrivendosi si ha la possibilità di memorizzare "in cloud" i propri esperimenti (detti fiddle).
La schermata di jsfiddle è divisa in 4 quadranti principali. Tre servono alla programmazione e sono dedicati rispettivamente all'html (struttura della pagina) a javascript (comportamento "dinamico" della pagina) e a CSS (aspetto della pagina). Il quarto quadrante presenta il risultato.
I fiddle sono pubblici. Un buon modo di imparare è "aprire" un fiddle creato da qualcun altro e ispirarsi ad esso. Un progetto di un altro utente può essere addirittura "biforcato": se ne crea una propria copia per poi modificarla secondo le proprie esigenze. Insomma, bisogna "sporcarsi le mani".
Jsfiddle permette anche di collaborare in squadra, anche stando ciascuno a casa propria.
Chi è interessato a esplorare jsfiddle può consultare questa breve guida operativa di jsfiddle.
Includo alcuni fiddle che ho creato ultimamente. Sono sperimentali, perchè io non sono un esperto. I codici possono avere ancora qualche bug e non sono ottimizzati.
input e semplici operazioni: MWE (minimal working example) molto semplice, con commenti. Contiene gli elementi essenziali per creare una piccola applicazione alla fisica;
tabelline: Il programma propone una moltiplicazione, e il "giocatore" deve rispondere entro un certo tempo. C'è qualche problema con la schermata di "gameover" - il codice abbastanza commentato.
Il paragrafo seguente propone un elenco più completo di idee ed esempi.
Idee per progetti
In questa pagina trovate un elenco con qualche idea su cui basare dei semplici progetti. L'ispirazione viene principalmente dalla fisica, ma le applicazioni sono praticamente illimitate. Ovviamente altre idee e altri progetti sono incoraggiati. Alcuni
Problema con dati "casuali": la pagina web propone il testo di un problema formulato sulla falsariga di un classico esercizio da libro di testo. I dati però vengono generati "casualmente" dal codice js. L'utente deve inserire la sua risposta in un campo e validarla. Il codice fornisce un feedback sulla correttezza della risposta. In una versione più elaborata, il codice può fornire dei suggerimenti o una traccia completa di svolgimento.
Equilibrio termico tra due oggetti messi in contatto, in assenza di transizioni di fase. Input: massa, temperatura e calore specifico delle due sostanze (6 dati). Output: media ponderata delle temperature. Difficoltà: facile. Non comporta processi decisionali, se non qualche controllo sui dati inseriti dall'utente (le masse e i calori specifici devono essere positivi). Basta generalizzare il fiddle input e semplici operazioni.
Equilibrio tra due quantità dello stesso materiale in due fasi termodinamiche diverse. Input: massa, temperatura e calore specifico della sostanza nelle sue diverse fasi. Temperature di transizione. Calori latenti di transizione. Difficoltà: media. Comporta un po' di decisioni. Può essere basato sul fiddle input e semplici operazioni. Si può rubare qualche idea dal fiddle equilibrio termico con passaggi di stato.
Operazioni con numeri in notazione scientifica. Esempio di "gioco educativo" che può essere realizzato ispirandosi a quello sulle tabelline. Il programma sceglie due (o tre) numeri in notazione scientifica e una (o due) operazioni per combinarli. Si può iniziare con moltiplicazioni, divisioni e potenze. Il giocatore deve inserire il risultato (eventualmente col numero corretto di cifre significative). Ogni risposta garantisce un punteggio (risposta corretta/errata, o anche quanto "distante" dal vero risultato). Per rendere il gioco più "giocabile" (per esempio su un cellulare) si potrebbero accettare risposte in notazione informatica, eventualmente omettendo anche la E (per esempio (4,2e-5 o 4,2-5 per indicare 4,2·10-5). Difficoltà medio alta.
Equivalenze - aree e volumi. Esempio di "gioco educativo" che può essere realizzato ispirandosi a quello sulle tabelline. Al giocatore viene chiesto di convertire la misura di un'area o di un volume da un'unità a un'altra. Difficoltà medio alta.
Lettere greche. Gioco per imparare il nome delle lettere greche usate in fisica e matematica in maniera ludica. Struttura ancora da definire.
Prefissi standard. Gioco per imparare il nome e il valore dei prefissi standard usati in fisica in maniera ludica. Struttura ancora da definire.
Fenomeni periodici. Quiz a scelta multipla per imparare le relazioni tra proprietà di un moto periodico (T, ω, f, vmax, amax, A).
Fenomeni ondulatori. Quiz a scelta multipla per imparare le relazioni tra proprietà di un'onda (T, ω, f, v, λ, k).
Percentuali. Gioco per imparare a lavorare con le percentuali in maniera "ludica". Struttura ancora da definire.
Somma vettoriale. Gioco per imparare a lavorare i vettori in maniera "ludica". Struttura ancora da definire, ma fondamentalmente una generalizzazione di questo semplice gioco.
Misura della velocità della luce: simulazione interattiva dell'esperimento di Michelson (qui trovate tutta la spiegazione, ma la cosa importante è lo schema dell'apparato utilizzato)
Spin-off
Alcuni studenti hanno già colto la sfida lanciata qui sopra, e hanno intrapreso un proprio progetto. Siete liberi di contattarli per chiedere loro chiarimenti, aiuto o proporvi come collaboratori. In alternativa potete mettervi "in competizione" con loro, lanciando il vostro personale progetto, da soli o in squadra con altri.
PhysicsNOVA - progetto di G. Boccaccini (5CSA) e F. Bondi (5DSA). Il progetto è stato iniziato durante il quarto anno.