Insegnare chimica fisica con dashboard
sviluppate in Python

Renato Lombardo

Dipartimento di Scienze e Tecnologie Biologiche, Chimiche e Farmaceutiche, Università di Palermo

e-mail: renato.lombardo@unipa.it

Indice

1. Introduzione

2. Applicazioni Interattive

3. Motivazioni e scopo

4. Dashboard web

5. Python e Plotly Dash

6. Implementazione

7. Impiego in classe

8. Conclusioni e futuri sviluppi

Riferimenti


Abstract. Mathematical models and graphs are essential in chemistry and other scientific disciplines, but their complexity can hinder student understanding. Interactive applications, such as dashboards, can simplify complex data and enhance comprehension. Python and Plotly Dash are effective tools for creating custom dashboards tailored to specific teaching needs. These dashboards proved useful for students with limited mathematical background, and they can also support active learning strategies and develop cross-cutting skills like programming. However, their effectiveness depends on integration into the teaching process and teacher guidance.

Keywords: Chimica fisica; didattica digitale; modelli; matematica; grafici; applicazioni interattive


1. Introduzione

I modelli matematici svolgono un ruolo cruciale nelle discipline STEM (scienza, tecnologia, ingegneria e matematica) permettendo di descrivere e prevedere il comportamento di un sistema in modo quantitativo e preciso. Di conseguenza, essi sono presenti in ogni ramo della chimica e sono di fondamentale importanza nella chimica fisica. L’uso di modelli matematici è strettamente interconnesso con le loro controparti grafiche, tipicamente sotto forma di grafici. Essi forniscono una rappresentazione visiva delle relazioni tra diverse variabili e quantità fisiche, rendendo più facile comprendere i principi generali e i modelli sottostanti.

Sebbene indubbiamente i modelli matematici e le loro rappresentazioni grafiche possano essere di grande aiuto nell’apprendimento della chimica, molti studenti faticano a impiegarli in modo efficace [1]. Spesso, la mancanza di un adeguato background matematico è uno dei motivi principali [2]. Di conseguenza, alcuni studenti affrontano lo studio di questi modelli con un approccio mnemonico, piuttosto che cercare di capire i fenomeni che essi descrivono.

2. Applicazioni Interattive

Tipicamente, i libri di testo utilizzano grafici statici per presentare le informazioni, spesso facendo affidamento su esempi specifici con parametri ottimali. Ciò può rendere difficile per gli studenti comprendere appieno il materiale e valutare come i cambiamenti in diversi parametri influenzino il comportamento del modello. Potrebbe essere possibile superare alcuni di questi limiti e allo stesso tempo promuovere l’apprendimento attivo, utilizzando applicazioni interattive che possono essere uno strumento efficace per lo sviluppo delle corrette competenze e che possono essere utilizzate per una varietà di attività didattiche. Infatti, si è osservato che, in alcuni casi, le simulazioni al computer e metodi di insegnamento visivo sono più efficaci dei metodi di insegnamento tradizionali nel trasmettere la conoscenza in modo diretto, concreto e conveniente [3, 4].

Negli ultimi decenni, si è registrato un significativo sviluppo nell’uso di applicazioni web interattive per l’insegnamento delle STEM. Con l’avvento di Internet e la diffusione di computer e dispositivi mobili, educatori e sviluppatori hanno trovato modi innovativi per creare esperienze di apprendimento interattive per gli studenti e, infatti, su Internet esistono molte piattaforme che forniscono contenuti interattivi per la didattica nelle discipline STEM come PhET Interactive Simulations [5], Khan Academy [6] e molte altre.

3. Motivazioni e scopo

Sebbene esista una vasta gamma di applicazioni interattive, in alcuni casi potrebbe essere preferibile sviluppare un’applicazione personalizzata che sia più adatta a un uso specifico.

Spesso è difficile trovare applicazioni esistenti che si adattino adeguatamente al proprio programma e stile di insegnamento. Inoltre, l’utilizzo di app provenienti da fonti diverse può essere scomodo e può introdurre incongruenze nell’interfaccia, nella notazione e nell’esperienza utente complessiva.

Al contrario, le applicazioni personalizzate consentono agli insegnanti di garantire che i contenuti siano adattati al loro specifico programma, permettendo così un’esperienza di apprendimento più coerente e completa. Inoltre, sviluppando applicazioni personalizzate è possibile mantenere un’interfaccia utente, un design e una notazione coerenti per tutti i materiali didattici.

Idealmente, lo sviluppo e la manutenzione di tali applicazioni dovrebbero essere il più semplici e diretti possibile. L’obiettivo è fornire agli educatori strumenti e framework intuitivi che richiedono una conoscenza di programmazione minima, consentendo loro di creare applicazioni personalizzate, pur non possedendo eccessive competenze tecniche. Semplificando il processo di sviluppo, gli insegnanti possono concentrarsi maggiormente sul design didattico e sulla creazione di contenuti, assicurando che l’applicazione sia in linea con il loro approccio pedagogico.

In aggiunta, l’impiego da parte degli utenti finali (gli studenti) non dovrebbe essere troppo complesso e dovrebbe essere facilmente adattabile a diversi dispositivi, come computer, tablet e smartphone, e in modo indipendente dal sistema operativo sottostante. Ciò garantisce accessibilità e pari opportunità a tutti gli studenti.

4. Dashboard web

Lo sviluppo di applicazioni personalizzate potrebbe passare dall’impiego di dashboard interattive.

Le dashboard sono applicazioni che presentano più visualizzazioni e controlli in una singola pagina web, consentendo la visualizzazione di dati e modelli anche complessi in modo semplice e comprensibile. I dati possono essere presentati in una gamma di formati, inclusi grafici, tabelle e diagrammi collegati tra loro, per creare un’esperienza coerente e interattiva rendendo più facile per gli studenti comprenderli e analizzarli.

In molti casi, le dashboard sono preferibili a un programma che risiede su un computer specifico, dato che sono accessibili da qualsiasi dispositivo con una connessione a Internet, e generalmente sono progettate per funzionare su più piattaforme, inclusi desktop, laptop, tablet e smartphone, adattando il loro aspetto a diversi dispositivi e dimensioni dello schermo.

Infine, gli aggiornamenti e i miglioramenti possono essere eseguiti facilmente e rapidamente dallo sviluppatore. Gli studenti avranno sempre accesso alla versione più aggiornata della dashboard senza dover scaricare e installare nulla sui propri computer.

5. Python e Plotly Dash

A seconda dell’applicazione e del livello di complessità desiderato, lo sviluppo e l’implementazione di un’applicazione interattiva può essere un compito impegnativo che potrebbe richiedere competenze di programmazione non banali. In linea di principio, esistono molti linguaggi di programmazione, framework di sviluppo e strumenti adeguati allo scopo. Non tutti, però, sono adatti per via della complessità di impiego (ad es., C, Fortran) o delle limitazioni in ambito scientifico (ad es., PHP, Javascript). Un possibile modo per superare i limiti sopra menzionati è utilizzare il linguaggio di programmazione Python [7].

Python è un linguaggio di programmazione ad alto livello, noto per la sua sintassi semplice e leggibile e la vasta gamma di librerie e framework disponibili. Essendo software libero il suo impiego è del tutto gratuito, come pure quello della maggior parte delle librerie disponibili.

Python offre funzionalità avanzate per l’elaborazione numerica e scientifica, l’analisi dei dati, la visualizzazione e la creazione di applicazioni interattive. Inoltre, esso si appoggia a un’ampia e attiva comunità di sviluppatori che fornisce supporto, documentazione, tutorial e risorse di apprendimento. Ciò rende questo linguaggio un’ottima scelta per gli educatori e gli sviluppatori che cercano di creare applicazioni interattive per l’insegnamento e l’apprendimento delle STEM. Infatti, Python è spesso il linguaggio di scelta per i corsi introduttivi di programmazione a scuola [8, 9] o nell’istruzione superiore [10], specialmente per gli studenti in discipline STEM come la chimica [11].

Plotly Dash [12] è un framework Python, basato sul web, per creare dashboard; sfrutta la popolare libreria Plotly [13], utilizzata per ottenere visualizzazioni interattive di dati, e il framework di sviluppo web Flask [14]. Questo framework fornisce una varietà di opzioni di personalizzazione nella visualizzazione. Sebbene sia possibile (e abbastanza facile) distribuire un’applicazione Plotly Dash su un server privato (come un computer personale, un server scolastico o universitario), esistono numerosi servizi pubblici di hosting che eliminano la necessità di mantenere il proprio server. Alcuni di questi servizi offrono un livello gratuito per un periodo limitato o una larghezza di banda adatta alla maggior parte delle esigenze.

6. Implementazione

Per testare la fattibilità di questo approccio, sono state sviluppate alcune dashboard nell’ambito di un insegnamento introduttivo di Chimica Fisica per studenti del primo anno di Scienze Biologiche dell’Università di Palermo. Sebbene ci sia un corso introduttivo di matematica al primo semestre, gli studenti spesso mancano di competenze sufficienti in questo campo e, di conseguenza, trovano la chimica fisica una materia molto impegnativa.

L’obiettivo era quello di utilizzare dashboard interattive per consentire agli studenti di sperimentare alcuni dei modelli che trovavano più complessi, rispetto alla rappresentazione matematica, e per i quali tendono ad affidarsi più alla memoria che al ragionamento. Questo è il caso della distribuzione di Maxwell-Boltzmann.

La distribuzione di Maxwell-Boltzmann, F(v), è una distribuzione di densità di probabilità che descrive la distribuzione delle velocità delle particelle, v, in un gas perfetto di molecole di massa m alla temperatura, T. Può essere scritta come:

F ( v ) = ( m 2πκT ) 3 4 π v2 e - mv2 2κT

dove k è la costante di Boltzmann. La distribuzione è solitamente rappresentata come un grafico di F(v) contro v.

Essendo F(v) la densità di probabilità, la probabilità di trovare una molecola con una velocità compresa tra v e v + dv corrisponde all’integrale:

P = v v+v F ( v ) v = v v+v ( m 2πκT ) 3 4 π v2 e - mv2 2κT v

che può essere rappresentato come l’area sotto la curva nel grafico. A ogni distribuzione corrispondono delle velocità caratteristiche: la velocità più probabile, vp, la velocità media, vavg, e la radice della velocità quadratica media, vrms.

Gli studenti spesso trovano difficile concettualizzare come la curva di distribuzione cambia al cambiare dei suoi parametri, m e T, e visualizzare il risultato dell’integrale nell’equazione (2). Pertanto, è stata sviluppato una dashboard con le capacità di:

L’implementazione del modello è piuttosto semplice in quanto consiste semplicemente in quattro funzioni: “MB”, che viene utilizzata per calcolare l’equazione (1) in un intervallo v specificato, a una temperatura T specificata, per una massa molecolare specificata M, e “v_p”, “v_avg” e “v_rms” che sono le funzioni utilizzate per calcolare le velocità caratteristiche a specifici valori di M e T. Il codice per il funzionamento della dashboard è un po’ più complesso, ma in grande parte può essere riutilizzato, in caso se ne vogliono costruire altre.

La figura 1 mostra l’aspetto tipico della dashboard su un monitor come quello di un personal computer o di un tablet. Nella parte superiore della pagina è presente un’intestazione contenente il titolo e il sottotitolo. Selezionando il pulsante “più informazioni”, viene visualizzata una breve descrizione del modello, inclusa la sua equazione principale.



Figura 1. La dashboard sulla distribuzione di Maxwell-Boltzmann; vengono mostrate tre curve con differenti parametri e diverse impostazioni di visualizzazione


Plotly Dash supporta la sintassi Latex per mostrare formule matematiche. In linea di principio, questa area potrebbe anche presentare altre risorse come immagini, collegamenti esterni, ecc.

La parte inferiore della finestra è divisa in due aree: a sinistra si trovano i controlli, mentre a destra c’è il grafico. Ogni volta che si fa clic sul pulsante “Aggiungi grafico”, viene aggiunto un nuovo insieme di controlli a sinistra e un nuovo grafico sull’area a destra. Il grafico viene immediatamente aggiornato ogni volta che uno o più parametri vengono modificati, o se viene eliminato un grafico, facendo clic sul pulsante “Elimina”. I valori delle velocità caratteristiche per ogni grafico vengono aggiornati dinamicamente e, se si vuole, sono tracciati come linee tratteggiate sul grafico, come nel caso di He nella figura 1. È possibile calcolare la probabilità per un intervallo di velocità specifico e mostrare il suo valore mentre l’area corrispondente viene riportata sotto il relativo grafico.

Questo è il caso, nella figura 1, per la probabilità di trovare un atomo di He con velocità superiore a 2000 m s−1.

7. Impiego in classe

La dashboard è fornita agli studenti dopo la lezione che spiegava l’argomento, per consentire loro di esplorare il modello e creare nuove visualizzazioni, aiutandoli a sviluppare capacità di pensiero critico e a ottenere una comprensione più profonda di quanto discusso in classe.

Dopo che a lezione il modello è stato descritto sia da un punto di vista fisico che matematico, gli studenti trovavano sulla piattaforma Moodle le relative note della lezione e un link alla dashboard.

Sono stati anche assegnati alcuni semplici quesiti che potevano essere risolti con l’aiuto della dashboard:

Tali domande sono state progettate per incoraggiare gli studenti a usare la dashboard, modificare alcuni parametri ed esplorare come il risultato cambia (qual è la dipendenza dalla temperatura delle velocità caratteristiche?) e per stimolare la loro riflessione sul modello fisico (come si differenzia un campione di Cl2 da uno di O2?).

La maggior parte degli studenti ha usato la dashboard durante lo studio individuale a casa per cercare di rispondere ai quesiti proposti. Le domande e le risposte sono state poi impiegate come punti di partenza per un brainstorming in classe, guidato dal docente.

Gli studenti non hanno avuto problemi a rispondere ai quesiti dal punto di vista numerico. Era, però, importante impiegare questi risultati per stimolare le loro osservazioni e la discussione sul significato fisico del modello. Così, rispetto al primo quesito, si è potuto osservare che a 300 K la velocità media in un campione di He è quattro volte quella di un campione di O2, nonostante il rapporto fra le loro masse sia 1/16, e che tale rapporto è indipendente dalla temperatura considerata. Questo è verificabile anche per le altre velocità caratteristiche e ha permesso di rivedere le loro relative espressioni notando come tutte dipendano dall’inverso della radice quadrata della massa e che il resto dell’espressione è una costante (a T costante). Il secondo quesito è stata una occasione per riflettere sul significato dell’integrale come area sottesa alla curva e di discutere come essa si modifichi al variare della temperatura. Questo ha portato a proporre come ulteriore attività quella di riportare in grafico la probabilità P(v < 2000 ms1) contro T. Si è osservato così che l’effetto diventa sempre meno importante all’aumentare della temperatura, per via dello schiacciamento del picco e dello spostamento del massimo. Infine, l’ultimo quesito ha fornito la possibilità di riflettere sulla relazione fra velocità ed energia cinetica media (e quindi temperatura) in un campione. Inoltre, a parità di temperatura, un campione di Cl2 ha una distribuzione più “stretta” di un campione di O2 e, quindi, la probabilità si concentra in un intervallo più ristretto di velocità. La conclusione è stata pertanto che è più difficile trovare molecole con velocità molto diverse fra loro: da questo punto di vista Cl2 è un campione più omogeneo di O2.

Al di là delle specifiche osservazioni, tale attività è risultata molto utile per aiutare gli studenti a riconoscere la connessione fra la descrizione matematica e il modello fisico. Tuttavia, essa ha richiesto un tempo non indifferente, sia come impegno singolo degli studenti a casa che come impegno in classe.

8. Conclusioni e futuri sviluppi

Plotly Dash si è rivelato uno strumento comodo ed efficace per creare dashboard su misura per specifici ambienti di insegnamento e apprendimento. Sono state sviluppate alcune altre dashboard che descrivono altri modelli, quali il legame chimico, la miscibilità delle sostanze o l’entropia statistica secondo il modello di Ehrenfest. Altre sono in corso di sviluppo o modifica.

Da un breve questionario e alcuni colloqui informali, si evince che la maggior parte degli studenti ha trovato la dashboard abbastanza facile da usare e utile per lo studio. Essi ritengono che questi strumenti potrebbero essere anche uno strumento utile da impiegare in modo sincrono in classe, durante l’illustrazione del modello per la prima volta. Tuttavia, la maggior parte degli studenti non crede che sarebbe utile impiegarli senza aver prima ricevuto una descrizione del modello dall’insegnante. Ciò suggerisce che l’efficacia delle dashboard come strumento di apprendimento può dipendere dal modo in cui vengono integrate nel processo di insegnamento e dal livello di guida fornito dall’insegnante.

Nel presente caso, ci si è limitati all’impiego asincrono da parte degli studenti. Tuttavia, le dashboard si prestano facilmente ad altri approcci, come il supporto alla spiegazione in classe o strategie di apprendimento attivo più complesse, come flipped classroom, problem-based learning (PBL) o team-based learning (TBL), ecc., e possono anche essere utilizzate per sviluppare competenze trasversali a cominciare dall’ambito della programmazione e la matematica.

Riferimenti

[1] S. Van den Eynde, M. Goedhart, J. Deprez, M. De Cock, Role of graphs in blending physical and mathematical meaning of partial derivatives in the context of the heat equation, Int. J. of Sci. and Math. Educ., 2023, 21, 25-47 (https://doi.org/10.1007/s10763-021-10237-3).

[2] C. Rasmussen, K. Marrongelle, M. C. Borba, Research on calculus: What do we know and where do we need to go? ZDM Mathematics Education, 2014, 46(4), 507–515 (https://doi.org/10.1007/s11858-014-0615-x).

[3] L. Liu, Y. Ling, J. Yu, Q. Fu, Developing and evaluating an inquiry-based online course with a simulation program of complexometric titration, J. Chem. Educ., 2021, 98(5), 1636–1644 (https://doi.org/10.1021/acs.jchemed.0c01229).

[4] M. Ben Ouahi, M. Ait Hou, A. Bliya, T. Hassouni, E. M. Al Ibrahmi, The effect of using computer simulation on students’ performance in teaching and learning physics: Are there any gender and area gaps? Education Research International, 2021, 2021, ID 6646017 (https://doi.org/10.1155/2021/6646017).

[5] University of Colorado Boulder, PhET: Free online physics, chemistry, biology, earth science and math simulations, PhET Interactive Simulations (https://phet.colorado.edu/).

[6] Khan Academy, Khan Academy - Free online courses, lessons & practice (https://www.khanacademy.org/).

[7] L. Vaughan, Python tools for scientists: An introduction to using Anaconda, JupyterLab, and Python’s Scientific Libraries, No Starch Press, San Francisco, 2023.

[8] L. Grandell, M. Peltomäki, R.-J. Back, T. Salakoski, Why complicate things? Introducing programming in high school using Python, in Proceedings of the 8th Australasian Conference on Computing Education - Volume 52; ACE ’06; Australian Computer Society, Inc., AUS, 2006, pp 71–80.

[9] D. B. Jordaan, Board games in the computer science class to improve students’ knowledge of the Python programming language, in 2018 International Conference on Intelligent and Innovative Computing Applications (ICONIC); 2018; pp 1–5 (https://doi.org/10.1109/ICONIC.2018.8601207).

[10] A. Jayal, S. Lauria, A. Tucker, S. Swift, Python for teaching introductory programming: A quantitative evaluation, Innovation in Teaching and Learning in Information and Computer Sciences, 2011, 10(1), 86–90 (https://doi.org/10.11120/ital.2011.10010086).

[11] C. J. Weiss, A creative commons textbook for teaching scientific computing to chemistry students with Python and Jupyter Notebooks, J. Chem. Educ., 2021, 98(2), 489–494 (https://doi.org/10.1021/acs.jchemed.0c01071).

[12] S. Hossain, Visualization of bioinformatics data with dash bio, Proceedings of the 18th Python in Science Conference, 2019, 126–133 (https://doi.org/10.25080/Majora-7ddc1dd1-012).

[13] Plotly technologies, Collaborative data science (https://plot.ly).

[14] M. Grinberg, Flask web development: Developing web applications with Python, 2° Edizione, Oreilly & Associates Inc, Sebastopol, California, 2018.