LABORATORIO DI CALCOLO canale 1

Docente coordinatore e verbalizzante: LORENZO ROVIGATTI

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

Prerequisiti

Il corso richiede la conoscenza dell'algebra di base.

Programma dell’insegnamento

Il corso illustrerà le nozioni fondamentali della programmazione e dell'analisi numerica per l’implementazione di semplici algoritmi di calcolo. Si discuteranno le principali istruzioni del linguaggio C che verranno utilizzate per la redazione di programmi di esempio di utilizzo dei metodi numerici, come la ricerca degli zeri di una funzione, l’ordinamento e l'integrazione numerica. Inoltre verranno introdotte nozioni di base di python per la creazione di grafici scientifici.

Dettaglio degli argomenti trattati nel corso:

- Rappresentazione di numeri ed altre entità.
- Linguaggi di programmazione.
- Istruzioni per il controllo di flusso del programma.
- Strutture di dati: array e stringhe.
- Puntatori
- Funzioni
- Funzioni di Matrici e Vettori
- Puntatori a Funzioni
- Applicazioni
- Alcuni elementi di programmazione in Python.

Testi di riferimento

1) Barone, Marinari, Organtini, Ricci-Tersenghi "Programmazione Scientifica", Pearson Education
2) Al Kelley and Ira Pohl "C: didattica e programmazione", Addison-Wesley
3) Ulteriore materiale è disponibile sul sito dei docenti o sulla pagina elearning del corso.

Modalità di svolgimento

Il corso consiste di circa 30 ore di lezioni frontali e 10 esercitazioni di 3 ore ciascuna tenute in laboratorio, durante le quali vieni chiesto agli studenti di sviluppare dei semplici codici C per risolvere esercizi relativi agli argomenti svolti durante le lezioni frontali e di applicare il python
per produrre analisi grafiche dei risultati. Nel caso in cui l'emergenza COVID dovesse protrarsi fino al semestre invernale, il corso si svolgerà' in modalità' mista in modo da ottemperare alle norme per il distanziamento sociale.

Frequenza

Gli studenti seguono le lezioni frontali per tre ore a settimana, e partecipano alle 10 esercitazioni settimanali divisi in piccoli gruppi.

Modalità di esame

Gli esami consistono in una prova pratica individuale. A ciascuno studente è fornito un testo simile a quelli forniti nel corso delle esercitazioni, con un problema da risolvere scrivendo un programma in C e graficando i risultati con Python. Durante l'esame si può consultare il libro di testo, gli appunti, i prontuari di Linux e Python o un manuale di C. Non sono ammessi altri ausili. Lo studente deve scrivere un programma secondo le indicazioni date. Per superare l'esame occorre conseguire un voto non inferiore a 18/30, ovvero lo studente deve dimostrare di sapere scrivere un programma funzionante in C per risolvere un semplice problema scientifico. La valutazione finale e il conseguimento dell’ eventuale lode dipendono dalla completezza della soluzione, dall' effettiva rispondenza del programma ai requisiti richiesti, dalla cura con la quale è stato scritto, dalle soluzioni tecniche adottate, dal livello di documentazione inserito e dall'efficienza. Chi sostiene l'esame nella sessione "invernale" (quella subito dopo che si è concluso il corso) ha diritto a un bonus che si attribuisce attraverso la partecipazione alle ultime due esercitazioni di laboratorio. In caso di erogazione di didattica a distanza, le modalità di svolgimento delle prove di esame e delle prove in itinere potranno subire delle variazioni per garantire una valutazione obiettiva e per tener conto delle diverse condizioni operative di svolgimento. Tali modalità verranno comunicate attraverso i canali ufficiali del corso.

  • 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