LABORATORIO DI CALCOLO canale 4

Docente coordinatore e verbalizzante: SHAHRAM RAHATLOU

Obiettivi formativi


Laboratorio di Calcolo è un corso base di programmazione e di introduzione ai metodi numerici che vengono utilizzati in fisica. L'approccio è pratico e mira ad insegnare i concetti fondamentali della programmazione con una forte enfasi sulla attività laboratoriale. Rappresenta un importante veicolo per sviluppare le abilità analitiche e di problem-solving degli studenti. Più precisamente, il corso mira a fornire agli studenti abilità che saranno rilevanti per molti anni in futuro. Pertanto lo scopo principale del corso non è quello di fornire una educazione dettagliata in quelli che sono oggi, sul mercato o nella ricerca in Fisica, i principali strumenti di programmazione. Piuttosto mira a insegnare i principi generali che sono alla base di qualsiasi linguaggio di programmazione. La programmazione è un argomento pratico: lo scopo del corso è quello di insegnare agli studenti a scrivere semplici programmi effettivamente funzionanti. Le abilità che sono alla base della programmazione sono essenzialmente astratte ed è perciò cruciale riuscire a vedere strutture e schemi generali a partire da esempi specifici. E' anche essenziale essere in grado di pensare in modo logico e razionale, in modo da essere in grado di predire il comportamento di un sistema che si comporta secondo un set rigido e fisso di regole. Queste abilità sono sviluppate attraverse le attività pratiche ed infatti il corso utilizza un metodo di insegnamento basato sulla soluzione dei problemi. Scopo addizionale del corso è quello di insegnare le buone pratiche di lavoro: autostima, buon utilizzo del tempo, agire e pensare in modo razionale, imparare ad interagire con altri collaboratori. Alla fine del corso, lo studente avrà appreso il linguaggio C , il sistema operativo Linux e rudimenti di Python, come strumenti puramente funzionali allo sviluppo delle sue capacità di analisi e di descrizione di algoritmi usati per risolvere problemi di fisica. Conoscerà alcuni metodi di calcolo numerico tipici della fisica e li applicherà scrivendo semplici programmi.

OBIETTIVI SPECIFICI:
A - Conoscenza e capacità di comprensione
OF 1) Acquisire abilità logico-computazionali
OF 2) Acquisire i principi generali che sono alla base di qualsiasi linguaggio di programmazione.
OF 3) Comprendere i principi di funzionamento di un computer
OF 4) Comprendere algoritmi e metodi di calcolo numerico per risolvere problemi di tipo scientifico

B – Capacità applicative
OF 5) Risolvere problemi logici e/o analitici, nonché semplici casi di fisica generale elaborando algoritmi ottimali ed efficienti.
OF 6) Essere in grado di scrivere semplici programmi in C o in Python effettivamente funzionanti

C - Autonomia di giudizio
OF 7) Essere in grado di individuare strutture e schemi generali a partire da esempi specifici

D – Abilità nella comunicazione
OF 8) Saper interagire e collaborare con gli altri nel processo di problem-solving attraverso una comunicazione adeguata di idee, intuizioni e conoscenze

E - Capacità di apprendere
OF 9) Avere la capacità di apprendere nuovi algoritmi per risolvere problemi scientifici
OF 10) Capacità di apprendere nuove tecniche e linguaggi di programmazione

Risultati di apprendimento attesi

Capacità di scrivere programmi nel linguaggio C per la risoluzione di problemi numerici e fisici, utilizzando numeri casuali e algoritmi di integrazione numerica. Inoltre, sarà possibile utilizzare Python per la realizzazione di grafici e istogrammi.

Prerequisiti

Non sono richiesti prerequisiti specifici in termini di programmazione, ma ci si aspetta che gli studenti siano in grado di impostare un ragionamento logico e abbiano solide basi matematiche che consentano loro di interpretare formule complesse. Sono inoltre importanti la conoscenza del sistema binario e delle nozioni fondamentali di logica formale, anche se i concetti necessari saranno brevemente ripresi durante le lezioni.

Programma dell’insegnamento

Il corso illustrerà le nozioni fondamentali di programmazione e analisi numerica per lo sviluppo di semplici algoritmi di calcolo.

Verranno discusse le principali istruzioni del linguaggio C, utilizzate per la realizzazione di programmi di esempio che applicano metodi numerici, come l’interpolazione, l’integrazione numerica e la soluzione di equazioni differenziali.

Testi di riferimento

Barone, Marinari, Organtini, Ricci-Tersenghi "Programmazione Scientifica", Pearson Education
Al Kelley and Ira Pohl "C: didattica e programmazione", Addison-Wesley

Modalità di svolgimento

Le lezioni si svolgono mediante presentazioni alla lavagna, con il supporto del proiettore per mostrare programmi di esempio. Sono previste anche attività di laboratorio presso i centri di calcolo, durante le quali gli studenti sviluppano programmi sulla base di una traccia, proprio come avverrà nell’esame. Infine, vengono utilizzati strumenti di polling online per mantenere alta l’attenzione e valutare il livello di comprensione della classe durante le lezioni.

Frequenza

La frequenza alle lezioni non è obbligatoria, ma è fortemente consigliata.

La partecipazione e la performance nelle sessioni di laboratorio forniscono un bonus per il voto finale.

Modalità di esame

L'esame consiste nella elaborazione di un programma sulla base di una traccia. Al voto si somma l'eventuale bonus accumulato nelle esercitazioni di laboratorio durante il corso.

Esempi di domande

• Generazione di numeri casuali secondo una distribuzione arbitraria f(x)
• Simulazione di processi stocastici, come il moto browniano o gli urti tra particelle elementari
• Esempi di integrazione numerica tramite il metodo Monte Carlo
• Calcolo di medie e deviazioni standard di campioni di dati simulati
• Creazione di grafici e istogrammi con Python

Obiettivi per lo sviluppo sostenibile - Agenda ONU 2030

  • Goal4
  • Goal8
  • Anno accademico2026/2027
  • Corso di studio a cui afferisce l’insegnamentoFisica
  • Codice insegnamento1035105
  • CurriculumFisica
  • Anno e semestre1º anno - 1º semestre
  • TipologiaAttività formative affini ed integrative
  • AmbitoAttività formative affini o integrative
  • SSDFIS/01
  • Presenza obbligatoriaNo
  • Linguaita
  • CFU6 CFU
  • Durata complessiva60 ore
  • Distribuzione delle ore24 classroom hours, 36 laboratory hours