- Docente: Francesco Giacomini
- Crediti formativi: 6
- Lingua di insegnamento: Italiano
- Moduli: Francesco Giacomini (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. 9244)
Valido anche per Laurea in Fisica (cod. 9244)
-
Orario delle lezioni (Modulo 1)
dal 16/09/2024 al 06/06/2025
-
Orario delle lezioni (Modulo 2)
dal 24/09/2024 al 05/06/2025
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 concorrenza e parallelismo
Cenni di software engineering e di strumenti a supporto
Testi/Bibliografia
Come introduzione al C++: B. Stroustrup, A tour of C++
Come referenza online: C++ reference
Libro di testo consigliato: B. Stroustrup, Programming: Principles and Practice Using C++, 2nd edition, Addison-Wesley
Alternativamente: 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
Ulteriori risorse online verranno comunicate a lezione.
Metodi didattici
Lezioni frontali ed esercitazioni obbligatorie in laboratorio.
Modalità di verifica e valutazione dell'apprendimento
L'esame consiste in due prove:
- 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.
- 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:
- 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.
- La qualità del design del programma intende valutare quanto il design dell'applicazione sia appropriato per risolvere il problema proposto.
- La qualità dell'implementazione del programma intende valutare l'applicazione corretta dei costrutti del linguaggio C++ nell'implementazione del programma.
- La correttezza del programma intende valutare quanto il comportamento del programma in esecuzione sia aderente a quanto specificato nella consegna.
- 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.
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.
Strumenti a supporto della didattica
La presentazione e gli esempi mostrati a lezione saranno disponibili in una repository Git (annunciata all'inizio delle lezioni).
Orario di ricevimento
Consulta il sito web di Francesco Giacomini
Consulta il sito web di Carlo Battilana
SDGs



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