81784 - PROGRAMMAZIONE PER LA FISICA (M-Z)

Anno Accademico 2025/2026

  • Docente: Carlo Battilana
  • Crediti formativi: 6
  • Lingua di insegnamento: Italiano
  • Moduli: Carlo Battilana (Modulo 1) Carlo Battilana (Modulo 2)
  • Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
  • Campus: Bologna
  • Corso: Laurea in Fisica (cod. 6639)

Conoscenze e abilità da conseguire

Al termine del corso lo studente possiede una conoscenza del linguaggio di programmazione C++ adeguata e sufficiente ad affrontare e risolvere semplici problemi di Fisica mediante programmi eseguiti al calcolatore. In particolare è in grado di compiere tutte le operazioni di acquisizione e scrittura di dati, sia in forma testuale sia in forma binaria, e di elaborarli secondo necessità, specialmente riguardo a esperimenti scientifici

Contenuti

Cenni di architettura degli elaboratori e di sistemi operativi

Linguaggio macchina e linguaggio di programmazione di alto livello

Perché usare il C++

Oggetti, tipi, variabili, costanti

Operare su oggetti tramite espressioni

Istruzioni per strutturare un programma

Definizione e uso di funzioni

Definizione di nuovi tipi

Sistema di input/output

Programmazione generica

Allocazione dinamica di memoria

La Standard Library del C++: contenitori e algoritmi

Polimorfismo dinamico (o programmazione object-oriented)

Prevenzione e gestione degli errori

Cenni di software engineering e di strumenti a supporto

Testi/Bibliografia

Libro di testo consigliato: B. Stroustrup, Programming: Principles and Practice Using C++, 3rd edition, Addison-Wesley

Alternativamente, anche se non aggiornato agli ultimi standard del linguaggio: B. Stroustrup, The C++ Programming Language, 4th edition, Addison-Wesley

Di quest'ultimo esiste anche una traduzione italiana: B. Stroustrup, C++ - Linguaggio, libreria standard, principi di programmazione, IV edizione, Pearson

Come referenza online: C++ reference

Ulteriori risorse online verranno comunicate a lezione.

Metodi didattici

Lezioni frontali ed esercitazioni obbligatorie in laboratorio.

La frequenza dei laboratori richiede la preventiva partecipazione di tutti gli studenti ai moduli 1 e 2 di formazione sulla sicurezza nei luoghi di studio, fruibili in modalità e-learning.

Modalità di verifica e valutazione dell'apprendimento

L'esame consiste in due prove:

  1. Progetto riguardante l'implementazione di un programma C++ secondo indicazioni date a lezione. Il progetto è svolto in parte durante le ore di laboratorio, in parte in autonomia. Il progetto può essere svolto in gruppo, fino a quattro persone.
  2. Colloquio orale riguardante la discussione del progetto e domande teoriche e pratiche sugli argomenti svolti a lezione.

La valutazione del progetto si basa su cinque criteri:

  1. La qualità della relazione intende valutare la capacità della relazione di accompagnare il lettore nella comprensione del programma e nelle scelte di design e implementative.
  2. La qualità del design del programma intende valutare quanto il design dell'applicazione sia appropriato per risolvere il problema proposto.
  3. La qualità dell'implementazione del programma intende valutare l'applicazione corretta dei costrutti del linguaggio C++ nell'implementazione del programma.
  4. La correttezza del programma intende valutare quanto il comportamento del programma in esecuzione sia aderente a quanto specificato nella consegna.
  5. L'originalità della soluzione intende valutare il rispetto della consegna e l'esplorazione di strumenti, librerie, tecniche aggiuntivi.

In base al grado di soddisfacimento, ogni criterio sarà valutato secondo la scala: insufficiente, sufficiente, buono, ottimo. Per accedere all'orale è necessario che ogni criterio abbia una valutazione almeno sufficiente. La valutazione media dei criteri (usando la corrispondenza sufficiente = 18, buono = 22, ottimo = 26) costituisce il voto di accesso al colloquio orale.

Maggiori dettagli sui temi progettuali e sulle modalità di consegna del progetto saranno comunicati nel corso dell'anno. A scopo indicativo sono disponibili le descrizioni per gli anni precedenti.

Scopo del colloquio orale è innanzitutto la conferma della valutazione del progetto, discutendo del contributo dello studente allo stesso. Ulteriori quesiti di contenuto teorico/pratico, migliorativi del voto di accesso, sono mirati a valutare la profondità di comprensione dei concetti appresi a lezione e la loro applicabilità alla soluzione di problemi.

Valgono gli adattamenti previsti per le studentesse e gli studenti con bisogni speciali.

Strumenti a supporto della didattica

Tutto il materiale utilizzato durante le lezioni frontali, le esercitazioni e i laboratori sono disponibili in repository Git presso un'organizzazione su GitHub.

Link ad altre eventuali informazioni

https://github.com/Programmazione-per-la-Fisica

Orario di ricevimento

Consulta il sito web di Carlo Battilana

SDGs

Istruzione di qualità Imprese innovazione e infrastrutture Consumo e produzione responsabili

L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.